保证金自动不是由宽度决定的

时间:2013-12-10 17:01:35

标签: html css

在我的rails应用程序中,我有一个容器,容纳1到4个包含产品图像/文本的div。如果有人在前一页中选择了1个产品,则有1个div,如果有人选择了2个产品,则为2个div,如果有人选择了3个产品,则为3个div。因此产品div的数量会根据情况而变化和变化。

我想要的: 容器及其div要居中。

如果有一个div,我希望它居中/ margin:auto, 如果有两个div我希望它们浮动/内联块和边缘居中, 我希望所有的div都是浮动的并且居中,但直到所有的div都填满了容器的宽度。

我试过边缘:自动容器,但我需要一个设定的宽度。如果我有一个设定的宽度,那么它将不会增长,具体取决于容器中有多少div。

image1 http://www.image-maps.com/uploaded_files/3201312101150184_div1.png

image2 http://www.image-maps.com/uploaded_files/3201312101150184_div2.png

image3 http://www.image-maps.com/uploaded_files/3201312101150184_div3.png

div内部容器的宽度不会改变。

我的问题与浏览器的宽度无关。

3 个答案:

答案 0 :(得分:1)

如果您的内部人员text-aligndiv,则可以在容器上使用inline-block

.container {
   text-align:center;
}
.container div.inside {
   display:inline-block;
}

答案 1 :(得分:1)

您可以为div设置displayinline-block,为容器设置text-aligncenter

请记住text-align是继承的,因此您需要在div上将其重新设置为所需的值。

答案 2 :(得分:0)

我知道这样做的唯一方法是使用

display: inline-block;
在div上

,它是容器。不要使用

float: left;

并设置

text-align: center;
容器上的

和它的父级。

margin: auto;只有具有明确宽度的div才能居中。自动增长的div没有明确的宽度,因此margin: auto;将无效。

白色空间

使用inline-block时要小心,因为浏览器会在标记中看到空白并将其渲染到页面,这会导致不必要的影响。只需确保修剪divs

之间的所有空白区域