【发布时间】:2017-02-06 17:42:13
【问题描述】:
我想使用 calc() 相对于 .container 块对齐行中的列,但无法测量正确的宽度。
我使用了公式width: calc(100% / number of boxes – total margin size),但它并没有像我预期的那样工作。右侧可用空间过多。
我认为问题出在我的 css 上,但找不到确切的位置。希望得到您的帮助:)
附:将margin:0 设置为第一个.col-lg-4,但没有帮助。
现在的样子:
body, h1 {
margin: 0;
padding: 0;
font-family: "Lucida Console", Monaco, monospace;
font-size: 1em;
}
.container-fluid {
margin: 15px 25px 10px 25px;
border: 1px solid black;
}
h1 {
font-size: 1.75rem;
padding-bottom: 15px;
text-align: center;
}
.col-lg-4, .col-md-6, .col-md-12, .col-xs-12 {
box-sizing: border-box;
float: left;
margin-left: 5px;
background-color: #ddd;
padding: 35px 8px 0 8px;
border: 1px solid black;
position: relative;
}
.col-lg-4:first-child {
margin: 0;
}
.title {
position: absolute;
top: 0;
right: 0;
border: 1px solid black;
width: 100px;
text-align: center;
padding: 3px 10px 3px 10px;
font-weight: 500;
font-size: 1.25rem;
}
@media (min-width:992px) {
.col-lg-4 {
width: calc(100% / 3 - 10px);
}
}
@media (min-width: 768px) and (max-width: 991px) {
.col-md-6 {
width: calc(100% / 2 - 5px);
}
.col-md-12 {
margin-left: 0;
margin-top: 1%;
width: 100%;
}
}
@media (max-width: 767px) {
.col-xs-12 {
width: 100%;
margin-bottom: 1%;
}
}
.chicken {
background-color: pink;
}
.beef {
background-color: #c14543;
color: #fff;
}
.sushi {
background-color: #e5d198;
}
<div class="container-fluid">
<h1>Our Menu</h1>
<div class="row">
<div class="col-lg-4 col-md-6 col-xs-12">
<span class="title chicken">Chicken</span>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Pariatur voluptatem eos, ullam totam architecto vitae minima quis corporis vel. Eius aut tempore, recusandae ipsa temporibus fugiat placeat. Delectus, illum, totam. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Minima nam adipisci, vitae dolorem rem nesciunt, rerum commodi deleniti, deserunt, aspernatur veritatis esse maiores harum quis quasi. Laboriosam eligendi quam distinctio!</div>
<div class="col-lg-4 col-md-6 col-xs-12">
<span class="title beef">Beef</span>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Delectus repudiandae nihil voluptate architecto quasi reprehenderit aut quibusdam quam, omnis blanditiis repellendus hic numquam quia. Blanditiis illum porro magnam, obcaecati aperiam. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Similique, fugit. Quae assumenda, quisquam natus delectus molestias. Maxime quo quia, quae ratione nihil eum. Quo temporibus vel maiores, deserunt!</div>
<div class="col-lg-4 col-md-12 col-xs-12">
<span class="title sushi">Sushi</span>
Lorem ipsum dolor sit amet, consectetur adipisicing elit. Facilis quas culpa accusamus dicta, et numquam aspernatur optio neque voluptate ullam. At quos, dignissimos harum quod ipsa quam tempore cum! Ab. Lorem ipsum dolor sit amet, consectetur adipisicing elit. Optio est cumque, magni rem harum repudiandae error, totam quis ipsum eum, asperiores delectus recusandae, velit. Tempora eius minus vitae distinctio. Accusantium.</div>
</div>
</div>
【问题讨论】:
-
我建议在这里使用 flexbox,它非常适合这种布局。据我所知,它的支持与 calc 相同。
-
@Akxe 能否请您制作草稿,看看它如何与 flexbox 一起使用?我以前从未使用过它...
-
为什么
100% / 3可以33.33%? ...这样您可以控制小数的准确性,而不是不知道每个浏览器将如何截断/舍入它们 -
找到另一种解决方案来增加边距,避免
calc:stackoverflow.com/a/19010988/6625736