我想使用父div中的所有可用空间来居中div
看看this jsfiddle。使用这种方法,无论父级的宽度如何,div都将浮动在中心位置,在行的远端创建了大量的空格。
但是我想让第一个和最后一个黄色的盒子分别粘在左边和右边上,中间的那个应该漂浮在中间
当我调整父div的大小时,子div应该自动调整
有可能吗?
另一个问题,是一个延续,我可以从标记中删除“行”div并仍然获得相同的结果吗?
HTML:
<div class="container">
<div class="row">
<div>Row 1 1</div>
<div>Row 1 2</div>
<div>Row 1 3</div>
<div>Row 1 4</div>
</div>
<div class="row">
<div>Row 2 1</div>
<div>Row 2 2</div>
<div>Row 2 3</div>
<div>Row 2 4</div>
</div>
</div>
CSS:
body{
margin: 0;
padding: 0;
}
.container{
border: 1px solid #2aF1E2;
overflow: hidden;
}
.row{
margin: 10px;
border: 1px solid #2351E2;
overflow: hidden;
text-align: center;
}
.row div{
margin: 10px 0 10px 0;
display: inline-block;
width: 100px;
border: 1px solid #eac300;
padding: 5px;
text-align: initial;
}
答案 0 :(得分:2)
您所看到的内容称为 Flexbox 。无论如何,如果你买得起包装纸,我想你可以利用它。
但是使用Pure CSS你可以这样做:
<强> HTML 强>
<div class="container">
<div class="row">
<div class="wrap left"><div>Row 1 1</div></div>
<div class="wrap mid"><div>Row 1 2</div></div>
<div class="wrap mid"><div>Row 1 3</div></div>
<div class="wrap right"><div>Row 1 4</div></div>
</div>
<div class="row">
<div class="wrap left"><div>Row 2 1</div></div>
<div class="wrap mid"><div>Row 2 2</div></div>
<div class="wrap mid"><div>Row 2 3</div></div>
<div class="wrap right"><div>Row 2 4</div></div>
</div>
</div>
<强> CSS 强>
.row div div{
margin: 10px 0 10px 0;
display: inline-block;
width: 100px;
border: 1px solid #eac300;
padding: 5px;
text-align: initial;
}
.wrap {width: 25%; float: left;}
答案 1 :(得分:1)
使用您现在拥有的标记,您可以使用Flexbox获得您想要的内容。
.container {
border: 1px solid #2aF1E2;
}
.row {
margin: 10px;
border: 1px solid #2351E2;
display: -webkit-box;
display: -moz-box;
display: -webkit-flexbox;
display: -ms-flexbox;
display: -webkit-flex;
display: flex;
-webkit-box-pack: justify;
-moz-box-pack: justify;
-webkit-flex-pack: justify;
-ms-flex-pack: justify;
-webkit-justify-content: space-between;
justify-content: space-between;
}
.row div {
margin: 10px 0 10px 0;
display: inline-block;
width: 100px;
border: 1px solid #eac300;
padding: 5px;
}
如果您要删除.row
元素,则必须使用百分比来确保您的商品排成4列。
答案 2 :(得分:0)
我不认为这是理想的但是:
body{
margin: 0;
padding: 0;
}
div{
margin: 0;
padding: 0;
}
.container{
border: 1px solid #2aF1E2;
overflow: hidden;
}
.row{
margin: 10px;
border: 1px solid #2351E2;
overflow:hidden;
text-align: center;
}
.row div{
margin: 10px 0 10px 0;
display: inline-block;
width: 100px;
border: 1px solid #eac300;
padding: 5px;
text-align: initial;
}
.row div:first-child {
float: left;
margin-left: 5px;
}
.row div:last-child {
float: right;
margin-right: 5px;
}
这是jsfiddle
更新
.row div{
margin: 10px 5% 10px 5%;
display: inline-block;
width: 100px;
border: 1px solid #eac300;
padding: 5px;
text-align: initial;
}
.row div:first-child {
float: left;
}
.row div:last-child {
float: right;
}
它仍然不能100%工作,例如当屏幕尺寸太小时会出现一些奇怪的现象,但我会期望使用百分比。