【问题标题】:Absolute positioning of li inside ul with cross-browser compatibilityli在ul内的绝对定位,具有跨浏览器兼容性
【发布时间】:2012-07-31 10:22:12
【问题描述】:

我有这样的事情:

<div style="width:1300px">
  <ul class="ul-length ul-textalign">
    <li class="li-horizontal"> A </li>
    <li class="li-horizontal"> B </li>
    <li class="fillgap"/>
  </ul>
</div>

我试图让最后一个 li 用一些背景填充该行的其余部分。我想避免根据前一个 lis 的长度指定 li 填充间隙宽度的代码。因此,我想让最后一个 li 处于绝对定位,并让它占据 ul 的整个宽度:

.fillgap {
  position:absolute;
  width:1300px; /* for some reason, width:100% is longer than the div width... */
  z-index:0;
}

.ul-length {
  with:100%;
}

.ul-textalign {
  text-align:left; /* fix for IE, prevents the absolute li from beginning at the center */
}

.li-horizontal {
   float:left;
}

在整个宽度上设置背景的最简单方法可能是设置 ul 的背景,但我不能这样做,因为它不符合预期的设计。我需要能够用 lis 做到这一点。而我上面的代码在 IE 中导致了一个问题:li fillgap 似乎保留在页面流中,因为它被放在前一个 lis 旁边,而不是在 ul 的开头...

有什么想法吗?

这是预期的结果(在歌剧中):

这是 IE 中的结果:

【问题讨论】:

    标签: css internet-explorer html-lists absolute


    【解决方案1】:

    position: relative 添加到.ul-length。这使得 li 上的 position: absolute 相对于 .ul-length

    这使您可以将 width1300px 更改为 100%;

    这是一个小提琴:http://jsfiddle.net/joplomacedo/5vykm/

    仍然,我不太清楚为什么您需要将position: absolute 添加到li。如果你想让它完全停留在原地,那为什么要position: absolute呢?

    【讨论】:

    • 您好,感谢您的回答。我添加了这个,但它并没有改变我的主要问题。检查我的帖子,我添加了图片。
    • 嗯,是的,我忘记了我把我的 lis 水平放置的事实。
    • 好的...它对我来说也很好用。但在我的应用程序中不起作用。我认为某些 css 文件中存在一些不兼容...
    • 抱歉,尚未阅读您的 cmets。如果您的网站在线,我可以看看。
    • 该网站不会上线,仅供私人使用。有没有办法让最后一个 li 只占用 ul 中的剩余空间?在我的 css 文件中找不到问题。
    【解决方案2】:
      .ul-length li{
            z-index:2;
            position:relative;
        }
    .ul-length li.fillgap {
        background: none repeat scroll 0 0 red;
        display: block;
        height: 100%;
        position: absolute;
        width: 100%;
        z-index: 1;
        top:0;
        left:0
    }
    
        .ul-length {
          with:100%;
          position:relative;
        }
    

    【讨论】:

      猜你喜欢
      • 2015-08-26
      • 2012-08-09
      • 2011-03-21
      • 2011-03-10
      • 2011-06-07
      • 2023-04-08
      • 1970-01-01
      • 2013-04-19
      相关资源
      最近更新 更多