一个有意思的方案(不借助后台和 JS ,只用 CSS 让一个列表编号倒序,你会怎么做())
作者:Manuel Matuzovic
译者:前端小智
来源:matuzo
有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。我正在做一个项目,其中有一个倒序的列表。列表创建时间降序排序的,这里我想在语义和视觉上都能体现出来(让列表显示对应的编号,编号越大表示是最新的)。网上做了一些研究,找到了一些有趣的解决办法,有些很好,有些就不那么好了。
本文 GitHub https://github.com/qq449245884/xiaozhi 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
最终结果类似如下:
- C
- B
- A
HTML中的
reversed
属性
简单,最直接的解决方案是HTML中的reversed
属性。
- C
- B
- A
【一个有意思的方案(不借助后台和 JS ,只用 CSS 让一个列表编号倒序,你会怎么做())】
文章图片
reversed
属性是一个布尔属性,reversed
属性规定列表顺序为降序 (9, 8, 7...),而不是升序 (1, 2, 3...)。reversed
属性除了 IE 大多数的浏览器都支持,如果你只想要解决方法,用这种就够了。如果你好奇还有哪些实现方式,请继续阅读。
HTML中的value属性 另一种方法就是使用 value 属性:
- C
- B
- A
文章图片
这种方式虽然比较冗长,但我们对列表也有更多控制权,比如,我们还可以这样操作:
- C
- B
- A
文章图片
最好还是不要这样做,因为跳过数字可能会让用户感到困惑。
CSS 自定义的 counter() 第三种方式就是使用CSS的
counter
计算器, 要倒序计数器的顺序,我们有两件事要做:将计数器重置为非0的值,并以负数递增计数器。
- C
- B
- A
ol {
counter-reset: my-custom-counter 4;
list-style: none;
}ol li {
counter-increment: my-custom-counter -1;
}ol li::before {
content: counter(my-custom-counter) ". ";
color: #f23c50;
font-size: 2.5rem;
font-weight: bold;
}
文章图片
如果我们不知道确切的列表数量,则可以将
counter-reset
属性移到HTML中:
- C
- B
- A
ol {
list-style: none;
}ol li {
counter-increment: my-custom-counter -1;
}ol li::before {
content: counter(my-custom-counter) ". "
}
一些文章建议使用Flexbox或类似的技术来反转 CSS 中列表顺序。我们不应该这样做,因为它看起来是正确的,但 DOM 的顺序保持不变。在 CSS 中改变顺序对DOM顺序没有影响。
- A
- B
- C
ol {
display: flex;
flex-direction: column-reverse;
}
文章图片
页面上看好像是我们想要的结果,但你按 F12 打开调试模式,检查该 DOM 的顺序,你会我发现 DOM 的顺序是 “ABC”而不是“CBA”的顺序渲染列表。 另外,如果我们复制并粘贴列表,浏览器可能会以其原始顺序
“ABC”
复制它。另外我还在 StackOverflow 上找到的另一个非常有创意的解决方案。其结果与Flexbox的解决方案类似,但也有更多的缺点(例如,它会干扰滚动)。
- A
- B
- C
ol {
transform: rotate(180deg);
}ol > li {
transform: rotate(-180deg);
}
当然这估计在绝望中没办法了,才会这么做,我们最好还是不要这样搞。
本期的分享就到这了,感谢的大家的观看,我们下期分享在见过。
人才们的 【三连】 就是小智不断分享的最大动力,如果本篇博客有任何错误和建议,欢迎人才们留言,最后,谢谢大家的观看。
代码部署后可能存在的BUG没法实时知道,事后为了解决这些BUG,花了大量的时间进行log 调试,这边顺便给大家推荐一个好用的BUG监控工具 Fundebug。
原文:https://dzone.com/articles/ht...
交流
有梦想,有干货,微信搜索 【大迁世界】 关注这个在凌晨还在刷碗的刷碗智。
本文 GitHub https://github.com/qq44924588... 已收录,有一线大厂面试完整考点、资料以及我的系列文章。
文章图片
推荐阅读
- 热闹中的孤独
- JAVA(抽象类与接口的区别&重载与重写&内存泄漏)
- 放屁有这三个特征的,请注意啦!这说明你的身体毒素太多
- 一个人的旅行,三亚
- 布丽吉特,人生绝对的赢家
- 慢慢的美丽
- 尽力
- 一个小故事,我的思考。
- 家乡的那条小河
- 《真与假的困惑》???|《真与假的困惑》??? ——致良知是一种伟大的力量