使用CSS Sprite背景将UL导航水平居中

史蒂夫

我有一个使用精灵图像作为li背景的4元素水平列表,我一直试图将其放置在页脚div中。在这一点上,我认为我只是在圈子里随机奔跑,试图改变样式以获取它。这是相关的CSS和HTML:

#footer-share-links {
    width:400px;
    text-align:center;
    margin:10px auto;
    background:#FF6666;
    border: 1px solid red;
    height:36px;
}

#footer-share-links ul {
    padding:0;
    position:relative;
    list-style-type:none;
}
#footer-share-links li  {
    margin:0 auto;
    display:inline;
    float:left;
    text-align:center;
    position:absolute;
}
#footer-share-links li, #footer-share-links a   {
    height:36px;
}
#ftr_facebook   {left:0px;width:25px;}
#ftr_facebook   {background:url('sprites/spriteGlobal.2014-0001.png') 0 0;}
#ftr_twitter    {left:30px;width:26px;}
#ftr_twitter    {background:url('sprites/spriteGlobal.2014-0001.png') -25px 0;}
#ftr_gplus      {left:61px;width:26px;}
#ftr_gplus      {background:url('sprites/spriteGlobal.2014-0001.png') -77px 0;}
#ftr_linkedin   {left:93px;width:26px;}
#ftr_linkedin   {background:url('sprites/spriteGlobal.2014-0001.png') -51px 0;}

div上的背景和边框只是为了帮助我看到该框。HTML是:

  <div id="footer-share-links">
    <ul>
      <li id="ftr_facebook"><a href=""></a></li>
      <li id="ftr_twitter"><a href=""></a></li>
      <li id="ftr_gplus"><a href=""></a></li>
      <li id="ftr_linkedin"><a href=""></a></li>
    </ul>
  </div>

使用此方法,我从div中得到了一个居中的红色框,但是列表元素被推到了左边缘。如果我添加margin:0 auto; 对UL而言,它保持不变。如果我添加margin-left:100px,它的确会将其移向中心,但是除非绝对必要,否则我不想使用固定值。

马克·奥德(Marc Audet)

这是一种实现方法,请尝试以下CSS:

#footer-share-links {
    width:400px;
    text-align:center;
    margin:10px auto;
    background:#FF6666;
    border: 1px solid red;
    height:36px;
    line-height: 36px;
}

#footer-share-links ul {
    padding:0;
    margin: 0;
    list-style-type:none;
}
#footer-share-links li  {
    margin: 0;
    display: inline-block;
    width: 50px;  /* demo only */
    background-color: yellow; /* demo only */
}
#footer-share-links a {
    display: block; /* or inline-block */
}

演示:http//jsfiddle.net/audetwebdesign/yN5MP/

如前所述,删除所有浮子和绝对位置。

对于父容器#footer-share-links,将其设置为line-height等于该height值,这样,垂直居中就可以自己处理了。

ul元素上,确保将边距清零。

最后,在li元素上使用display: inline-block以便识别宽度。

您可以根据需要使用id名称来指定各个li元素的宽度

a元素(链接)上,用于display: block使链接占据li元素的宽度,以便链接具有足够的活动/控制区域。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类常见问题

使用bootstrap css将两个div水平并排居中对齐页面

来自分类Dev

使用CSS将Google表单居中

来自分类Dev

将水平CSS菜单居中

来自分类Dev

使用CSS将img居中

来自分类Dev

HTML / CSS-居中对齐UL导航菜单

来自分类Dev

CSS将背景图像水平居中,然后垂直重复?

来自分类Dev

CSS下拉导航栏将无法居中

来自分类Dev

无法使用CSS将块元素居中

来自分类Dev

如何仅使用CSS和HTML将响应式导航栏菜单居中?

来自分类Dev

CSS背景水平居中

来自分类Dev

如何使用CSS将链接元素水平居中?

来自分类Dev

使用CSS将* any *宽度水平居中

来自分类Dev

使用flexbox将多个图像水平居中

来自分类Dev

使用CSS将导航栏居中

来自分类Dev

如何使用CSS将文本导航栏居中

来自分类Dev

CSS将背景图像水平居中,然后垂直重复?

来自分类Dev

使用CSS将div等水平居中

来自分类Dev

CSS下拉导航栏将无法居中

来自分类Dev

如何使用CSS字段样式将Views字段在网格中水平居中

来自分类Dev

无法使用引导程序将<ul>居中于导航栏内部

来自分类Dev

使用iText的XMLWorker将表格水平居中

来自分类Dev

CSS-水平居中并使用纯CSS将元素向下推

来自分类Dev

水平导航栏中的文本(使用ul和li)未垂直居中

来自分类Dev

如何在 CSS 中水平居中导航菜单?

来自分类Dev

使用css水平居中项目

来自分类Dev

如何使用 CSS 将导航栏的文本居中?

来自分类Dev

使用 CSS Grid 将最后一项固定在水平导航菜单的右侧

来自分类Dev

如何使用填充垂直/水平居中 CSS 背景图像

来自分类Dev

使用 HTML/CSS 将导航栏居中