【发布时间】:2015-08-28 12:29:04
【问题描述】:
ul 标签非常通用,我一直在努力解决这个问题。
最初,我为ul 和li 标签定义了一个基本样式规则,用于处理所见即所得文本的通用文本块中的项目符号。
我正在使用 BEM,所以我想我只需向任何具有不同角色的 ul 添加一个类(比如说一个菜单,或者一个新闻缩略图列表等)
问题是我并不总是能够控制标记;我目前的问题是一个分页插件,它使用ul/li 结构,但不允许我向ul 添加类。
我正在使用 BEM,所以我真的不想使用后代选择器,尤其是元素选择器,但我意识到当我无法访问 ul/li 标记时,我可能需要这样做。
任何建议都将不胜感激 - 特别是在基本/休息规则方面,因为我在很多网站上都有 ul/li 列表,并且一劳永逸地想要掌握这个问题。
谢谢
【问题讨论】:
-
您的实际问题是什么?您可以使用 BEM 后面的类名来设置每个
<ul>的样式。当您无法将类附加到页面的某些元素时,您只能使用后代选择器。唯一的选择是通过 javscript 附加类,非常严格。 -
对不起,我知道这很啰嗦,但我的问题是最后一段。 js 不是一个可行的解决方案。如何仅使用后代选择器来定位 ul - 它必须是元素选择器?
-
您有多种选择。您可以使用这样的类型选择器:
.parent > ul或兄弟选择器.previous + ul或 pseduo 类,如果您确定 html 结构.parent :first-child -
如果你不能在你的 HTML 中添加自定义的“BEM 类”,就没有办法让它 100% BEM。