在div中水平居中ul的问题。该列表不包含任何文本,只包含图像。
我正在使用该列表在我网站的页脚中显示社交媒体图标。
认为这样做很容易,但我已经筋疲力尽了我能想到的所有方法,有人可以帮忙吗?我可能错过了显而易见的事:/
HTML
<div class="container">
<div id="footer">
<div id="social_media">
<ul>
<li class="youtube"><a href="#"></a>
</li>
<li class="flickr"><a href="#"></a>
</li>
<li class="googleplus"><a href="#"></a>
</li>
<li class="linkedin"><a href="#"></a>
</li>
</ul>
</div>
</div>
CSS
.container {
margin: auto;
max-width: 700px;
width: 700px;
}
#footer {
border:1px solid #000;
height:100px;
}
#social_media {
width: 100%;
display: block;
float:left;
}
#social_media ul {
display: block;
float:left;
padding: 0;
margin: 10px auto;
}
#social_media li {
list-style: none;
background: #000;
margin: 0 10px;
}
#social_media li a, #social_media li {
width: 44px;
height: 44px;
display: block;
float: left;
}
#social_media ul li.youtube {
background-position: -88px 0;
}
#social_media ul li.flickr {
background-position: -132px 0;
}
#social_media ul li.googleplus {
background-position: 0 0;
}
#social_media ul li.linkedin {
background-position: -44px 0;
}
答案 0 :(得分:3)
您可以在父text-align:center
上设置.container
,然后在width:100%
上删除float:left
和#social_media
,并将display: block
更改为display:inline-block
。
.container {
margin: auto;
max-width: 700px;
width: 700px;
text-align: center;
}
#social_media {
display:inline-block;
}
答案 1 :(得分:0)
您可以使用称为收缩包装的技术来完成此操作。这也适用于多个浮动的孩子。相关的风格是:
#footer > div {
float: right;
position: relative;
left: -50%;
}
#social_media {
position: relative;
left: 50%;
}
答案 2 :(得分:0)
因此,您必须定义margin: auto;
的宽度才能正常工作。这是做你想做的事情的好方法。
#social_media ul {
display: block;
padding: 0;
margin: auto;
width: 256px;
}
答案 3 :(得分:0)
另一个选项假设您根据LI的宽度知道UL的宽度应该是多少。它还假定根据您的模板设置元素的特定宽度。
只需将这些CSS更改为以下内容:
(删除浮动并添加宽度和溢出)
#social_media ul {
display: block;
overflow: hidden;
width: 256px;
padding: 0;
margin: 10px auto;
}