代码之家  ›  专栏  ›  技术社区  ›  Gazzer

如何为列表中的项目添加背景色

  •  4
  • Gazzer  · 技术社区  · 14 年前

    我有一份有序的名单

    <ol>
    <li class="odd">Lorem ipsum dolor sit amet, consectetur ...</li>
    <li class="even">Some more text</li>
    </ol>
    

    看起来像这样:

    1. Lorem ipsum悲哀地坐在阿梅特的位子上,奉献给精英们,让他们暂时参与到劳动和大事业中来。我是维尼安人

    我希望列表有列表位置:外面,所以数字悬垂(就像他们在这一页上做的),但有每个列表项的背景(替代)覆盖数字以及。

    5 回复  |  直到 14 年前
        1
  •  5
  •   Karel Petranek    14 年前

    <ol>
    <li><div>Lorem ipsum dolor sit amet, consectetur ...</div></li>
    <li><div>Some more text ...</div></li>
    </ol>
    

    然后为div添加以下CSS:

    ol li div  {
      width: 100%;
      height: 100%;
      background-color: #FFAAAA;
      margin-left: -20px;
      padding-left: 20px;
    }
    

    这将移动div以显示在数字(即-20px值)下,并将其中的文本移回正确的位置(即20px值)。

        2
  •  2
  •   second    14 年前

    你能不能用list position:inside来代替outside,设置背景,然后用一个负的左边距把它推出去?

        3
  •  2
  •   Olly Hodgson    14 年前

    一个可以尝试的方法是 text-indent

    li {
        list-style-position: inside;
        text-indent: -1em;
        padding: 10px 2em;
        background-color: lime;
    }
    li.odd {
        background-color: aqua;
    }
    

    我使用了一个负文本缩进来拉出第一行文本,然后使用左填充将所有内容拉回到对齐状态。您可能需要稍微调整一下文本缩进和填充值。我只测试了带有一位数的列表项。

        4
  •  0
  •   terribleuser    9 年前
    display: block;
    

    下面是一个代码笔,演示如何设置列表项的样式: http://codepen.io/anon/pen/qdwGXa

        5
  •  0
  •   Manthan    6 年前

    <ol>
    <li class="odd">Lorem ipsum dolor sit amet, consectetur ...</li>
    <li class="even">Some more text</li>
    </ol>
    

    这里是CSS部分

    li.odd{
        background-color: #FF851B;
    }
    li.even{
        background-color: #FF4136;
    }