【问题标题】:Wrong text indention for self numbered list when next to floating element浮动元素旁边的自编号列表的错误文本缩进
【发布时间】:2014-05-16 14:29:11
【问题描述】:

不知何故,我无法为我的自封列表编号找到解决方案。如果它们位于浮动元素旁边,则列表编号将被拉入图像的边缘。

列表编号应与列表周围的文本块内联。也许我错过了一些简单的事情。

HTML:

<article class="teaser">
<div class="image"></div>
<div class="text">
    <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr</p>
    <ol>
        <li>Number One</li>
        <li>Number Two</li>
        <li>Number Three</li>
        <li>Number Four</li>
        <li>Number Five<br/>has line-break</li>
        <li>Number Six</li>
        <li>Number Seven</li>
        <li>Number Eight</li>
        <li>Number Nine</li>
        <li>Number Hundred</li>
    </ol>
    <p>Lorem ipsum dolor sit amet, consetetur sadipscing elitr, sed diam nonumy eirmod tempor invidunt ut labore et dolore magna aliquyam erat, sed diam voluptua. At vero eos et accusam et justo duo dolores et ea rebum. Stet clita kasd gubergren, no sea takimata sanctus est Lorem ipsum dolor sit amet.</p>
    <ol>
        <li>Number One</li>
        <li>Number Two</li>
        <li>Number Three</li>
        <li>Number Four</li>
        <li>Number Five<br/>has line-break</li>
        <li>Number Six</li>
        <li>Number Seven</li>
        <li>Number Eight</li>
        <li>Number Nine</li>
        <li>Number Hundred</li>
    </ol>
</div>

CSS:

.image {
    margin-right: 20px;
    width: 220px;
    height: 280px;
    background: blue;
    float: left;
}
ol {
    list-style-type: none;
    padding-left: 25px;
    counter-reset: lis;
}
li {
    counter-increment: lis;
}
li:nth-child(n+10) {
    counter-increment: lis +91;
}
li:before {
    content: counter(lis)".\00a0";
    display: inline-block;
    margin-left: -25px;
    color: red;
    min-width: 25px;
}

FIDDLE

附:列表编号的最小宽度必须为 1-99,但必须像现在一样从 100-∞ 动态增长。

【问题讨论】:

  • 如果你考虑文本缩进,如果它旁边没有浮动元素,它会破坏列表
  • 无边距-右:20px;
  • 或list-style-position: inside;
  • 你能更精确地添加这些 20px 的位置吗?顺便说一句,我敢肯定,如果 list-style 为 none,则 list-style-position 不会影响任何事情。
  • .image { margin-right: 40px;宽度:220px;高度:280px;背景:蓝色;向左飘浮; }

标签: html css html-lists counter indentation


【解决方案1】:

overflow: hidden; 添加到您的ol CSS 定义中。

ol {
    list-style-type: none;
    padding-left: 25px;
    counter-reset: lis;
    overflow: hidden;
}

这样它的左填充不会合并到浮动图像中。

见:http://jsfiddle.net/eGpmd/5/

【讨论】:

  • 好的,现在列表如果再长就不能在图像周围流动,但它似乎是最好的解决方案。
  • 所以你的意思是你“接受这个作为最佳答案”? ;)
猜你喜欢
  • 1970-01-01
  • 2015-08-09
  • 2012-09-25
  • 1970-01-01
  • 2011-10-12
  • 2017-04-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多