html - <ol> <li> 奇怪的挑战 - 保持左边距

标签 html css

有一个巨大的 html 可用于生成 pdf。有很多部分带有编号的段落。它看起来像这样:

.list-number {
  float: left;
}

.list-content {
  padding-left: 18px;
  text-align: justify;
}
<div>
  <div class="list-number">7.</div>
  <div class="list-content">
    Fanta</div>
</div>
<div>
  <div class="list-number">8.</div>
  <div class="list-content">Coca Cola</div>
</div>
<div>
  <div class="list-number">9.</div>
  <div class="list-content">
    Coca cola</div>
</div>
<div>
  <div class="list-number">10.</div>
  <div class="list-content">Fanta</div>
</div>
<div>
  <div class="list-number">11.</div>
  <div class="list-content">Sprite</div>
</div>

现在我必须添加另一个部分。主要区别在于它是动态列表,所以我必须使用 ol li 标签。我做了这样的事情:

<ol>
  <li>Fanta</li>
  <li>Tea</li>
  <li>Coca Cola</li>
  <li>Fanta</li>
  <li>Tea</li>
  <li>Coca Cola</li>
  <li>Fanta</li>
  <li>Tea</li>
  <li>Coca Cola</li>
  <li>Fanta</li>
  <li>Tea</li>
</ol>

问题是两位数字 - 在 div 部分中,点后没有空格。如何制作 ol-li 列表来模拟相同的情况?

最佳答案

哇...我花了很长时间才明白你在问什么...无论如何,你可以使用自定义 counter而不是 OL 中的列表样式,并根据需要设置样式。

ol {
  counter-reset: number;         
  list-style-type: none;
}

li::before {
  float:left;  width:20px; 
  counter-increment: number;            
  content: counter(number) ".";   
}
<ol>
  <li>Fanta</li>
  <li>Tea</li>
  <li>Coca Cola</li>
  <li>Fanta</li>
  <li>Tea</li>
  <li>Coca Cola</li>
  <li>Fanta</li>
  <li>Tea</li>
  <li>Coca Cola</li>
  <li>Fanta</li>
  <li>Tea</li>
</ol>

最好的部分是您可以根据当前结构调整它:

body {
  counter-reset: number 7;
/*I set it at 7 for presentation purposes, most likely you'll want it at 0*/         
}

.list-number {
  float: left;
}

.list-content {
  padding-left: 18px;
  text-align: justify;
}


.list-number::before {
  counter-increment: number;            
  content: counter(number) ".";   
}
<div>
  <div class="list-number"></div>
  <div class="list-content">Fanta</div>
</div>
<div>
  <div class="list-number"></div>
  <div class="list-content">Coca Cola</div>
</div>
<div>
  <div class="list-number"></div>
  <div class="list-content">Coca cola</div>
</div>
<div>
  <div class="list-number"></div>
  <div class="list-content">Fanta</div>
</div>
<div>
  <div class="list-number"></div>
  <div class="list-content">Sprite</div>
</div>

关于html - <ol> <li> 奇怪的挑战 - 保持左边距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48351425/

相关文章:

javascript - 如何显示内联 "input"元素,被 div 包围

html - 如何放入相同的(标签)文本行 : input ? 图像

jquery - 日历表 css 问题

html - 如何正确修复导航栏?

css - JavaFX Tableview 使特定单元格着色

javascript - 如何将具有特定类的div的内容添加到其他页面?

html - 带有垂直文本的元素定位 - 悬停/绝对定位

html - 四个 Div 彼此在 Safari 中未正确显示

javascript - 如何在新浏览器中隐藏或更改鼠标光标?

javascript - 单击时更改表格行的颜色