我的标记有些问题。所以,我有HTML:
<div id="wrapper">
<div id="content">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
和CSS:
#wrapper {
margin: auto;
margin-top: 10px;
width: 80%;
}
.item {
float: left;
margin: 0;
width: 320px;
height: 200px;
}
我认为.item div必须集中在父#wrapper和#content divs due margin:auto property,但它不起作用。我怎么能解决这个问题?
答案 0 :(得分:0)
你可以简单地使用display:inline-block
而不是float:left:
#wrapper {
margin: auto;
margin-top: 10px;
width: 80%;
text-align:center;
}
.item {
display:inline-block;
margin: 0;
/* width: 320px; /* not required, you can let width:auto */
height: 200px;
text-align:left;
}
答案 1 :(得分:0)
问题的真正原因是float left
div .item
。如果删除float:left
属性,则会删除自动保证金。
您希望将.item
div居中,而不是将其推到左侧。
现在这可能给你带来麻烦,因为事情不会像你想要的那样有效,因为你在那里的每个元素都浮动到左边。
你可以试试这个:
HTML:
<div id="wrapper">
<div id="content">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
CSS:
#wrapper {
margin-top: 10px;
width: 80%;
border:1px solid black;
}
.item {
margin: auto;
width: 320px;
height: 200px;
border:1px solid black;
}
答案 2 :(得分:0)
#content{overflow:hidden;}
或
#wrapper{overflow:hidden;}
你有div的“float:left”,但父级没有'haslayout'属性
答案 3 :(得分:0)
您必须使用不同分辨率的媒体查询来控制它。 你的HTML:
<div id="wrapper">
<div id="content">
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
<div class="item"></div>
</div>
</div>
的CSS:
#wrapper {
margin-top: 10px;
width: 100%;
}
#content{
width:80%;
margin:0px auto;
}
.item {
float: left;
margin: 0;
background:blue;
border:1px solid #000;
width: 200px;
height: 200px;
}
请参阅demo
对于不同的分辨率,您必须添加媒体查询并根据它们定义包装宽度和内容宽度。
@media only screen and (min-width: 768px) and (max-width: 1024px) { … }
@media only screen and (max-width: 768px) { … }
希望它会有所帮助。