我正在尝试确定页面是否使用方向rtl还是ltr,我通过样式标签设置属性(在模板引擎中使用条件服务器端)示例https://jsfiddle.net/ud2f6hre/3/<body></body><style>body { direction:rtl;}body[direction="rtl"] td{ color:blue;}td {color:green;}</style><table><tr> <td>ABC</td> <td>ABCDEF</td></tr></table><input type="button" onclick="test()" value="Test"/><script>function test(){console.log(document.querySelectorAll('body[direction="rtl"] td'))}</script>为什么 document.querySelectorAll('body[direction="rtl"] td')返回一个空的 NodeList?您还可以看到第二个 css 选择器不会将颜色更改为蓝色
1 回答
波斯汪
TA贡献1811条经验 获得超4个赞
属性选择器根据元素的属性而不是应用于它们的样式来选择元素。
<body direction="rtl">
你的HTML 中没有。选择器不匹配。
类似的限制也适用于:dir()
伪类:
:dir() 伪类仅使用方向性的语义值,即文档本身中定义的值。它不考虑样式方向性,即由 CSS 属性(例如方向)设置的方向性。
添加回答
举报
0/150
提交
取消