我需要像百分比宽度一样制作像“瓷砖”这样的div(使其与浏览器大小一致),但现在我有一个问题,当我设置边距并且两个瓷砖有50%时,它们是在彼此之下。我需要并排制作它们。这是我的代码:
HTML
<div id="contentContainer">
<div id="content">
<div class="bigTile"></div><div class="mediumTile"></div><div class="mediumTile"></div>
</div>
</div>
CSS
#contentContainer {
position: absolute;
left: 0px;
right: 0px;
height: 100%;
overflow: auto;
}
#content {
padding: 5px;
}
.bigTile {
display: inline-block;
background-color: orange;
width: 100%;
height: 50px;
margin: 5px;
padding: 0px;
box-sizing: border-box;
}
.mediumTile {
display: inline-block;
background-color: purple;
width: 50%;
height: 50px;
margin: 5px;
padding: 0px;
box-sizing: border-box;
}
这是jsFiddle:http://jsfiddle.net/dQMZ5/
知道怎么做吗?我想创造25%的瓷砖,但我坚持50%,我认为解决方案将是相同的......
答案 0 :(得分:1)
问题是“宽度:50%”定义了内容+填充+边框 - 边距的大小。即,然后将边距添加到已计算的宽度中。
并排将在两个条件下工作:
<div class="bigTile"><div class="content"></div></div>
我分叉你的jsfiddle以演示解决方案:
答案 1 :(得分:0)
我将如何做http://jsfiddle.net/jamestoone/dQMZ5/11/。这将为您提供相等的列宽。我已将利润率更改为百分比。虽然如果这个布局只适用于css3浏览器,你可以使用calc功能来表示width = 50%-20px。如果您想要那个解决方案,那么我可以提供它
<div id="contentContainer">
<div id="content">
<div class="big Tile"></div>
<div class="medium Tile"></div>
<div class="medium Tile"></div>
<div class="small Tile"></div>
<div class="small Tile"></div>
<div class="small Tile"></div>
<div class="small Tile"></div>
</div>
* {
-webkit-box-sizing: border-box;
-moz-box-sizing: border-box;
box-sizing: border-box;
}
#contentContainer {
position: absolute;
left: 0px;
right: 0px;
height: 100%;
overflow: auto;
}
#content {
padding: 5px;
}
.Tile {
float: left;
height: 50px;
margin: 1%;
}
.big.Tile {
background-color: orange;
width: 98%;
}
.medium.Tile {
background-color: purple;
width: 48%;
}
.small.Tile {
background-color: lightblue;
width: 23%;
}