html - 我们如何使用伪元素实现类似列表的行为

标签 html css html-lists pseudo-element

因为我们在 html 中支持的列表装饰器类型很少。如圆圈、十进制圆盘等。 如果我们想要自定义列表装饰器,那么我们必须使用伪元素。 例如

 (a). Hi list item
 (b). hi there 

伪元素的问题是,当你的伪元素的计数器值达到下一个数字时,内容就没有正确对齐。 前任。对于数字计数器,最多 9 个内容对齐,但当 10 出现时,列表项内容向右移动。同样对于 100、1000 ...

为了解决这个问题,我使用了带有文本对齐的显示内联 block 。

  width: 30px;
  text-align: right;
  margin-right: 10px;
  display: inline-block; 

另一个问题是,当列表项内容溢出到下一行时,下一行从伪元素计数器开始的相同位置开始。

为了解决这个问题,我必须在 em 中使用文本缩进。但这也不是万无一失的解决方案。当计数器值和列表项文本都增加时,就会观察到轻微的错位。

我有几个问题。

    1. 要正确对齐伪元素,display-inline block 是唯一的选择吗?
    1. 我们如何使用伪选择器实现类似列表的行为。
    1. 我们可以使用哪些其他可能的 css 样式来对齐列表等内容。

如果我需要放置一些代码片段或未对齐的图像快照,请告诉我。

最佳答案

好的,我有这个解决方案,使用 table。所以你不需要使用边距或填充。也可以将 li 样式化为 ( x ) .li:before content

中使用它

ul {
    counter-reset: list;
    width:20%;
    display: table;
}
ul > li {
    list-style: none;
     display: table-row;
}
ul > li:before {
    content: "( "counter(list, lower-alpha) " ). ";
    counter-increment: list;
    display: table-cell; 
    text-align: right;
    width:100%;
}
<ul>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
    <li>some text</li>
    <li>some more text</li>
    <li>some further text</li>
</ul>

关于html - 我们如何使用伪元素实现类似列表的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50486474/

相关文章:

JavaScript 超时函数

html - 如何使 Medium.com 像导航栏一样

javascript - 添加具有不同样式和js的wordpress web模板

html - 下拉菜单在 Chrome 而不是 Firefox 中工作

html - 自动填充用户名/密码时如何防止 Chrome 更改字体?

html - header 无法正常运行 Firefox/Internet Explorer

html - CSS 用元素符号重新创建 LI,但不使用 LI

html - HTML/CSS 中允许的颜色名称

html - 浏览器溢出...如何确保跨浏览器,跨平台测试和兼容性

html - 多个UL的级别不一样