我正在尝试(可能有点鲁莽)在CSS中重现Douglas Crockford所说的底部值。
什么是底值?
在Javascript中,底部值为undefined
和null
。
我可以使用自定义数据属性:
data-my-custom-attribute=""
并且我可以给它一个null值(使用Unicodeu+2400
):
data-my-custom-attribute="␀"
在CSS中,我可以引用任何为空的自定义数据属性:
[data-my-custom-attribute="␀"] {
[... CSS PROPERTIES HERE...]
}
接下来,我要部署一个与此JavaScript相当的:
if (myCustomAttribute !== null) { ... }
但我似乎不能引用任何非空的自定义数据,因为如下所示:
[data-my-custom-attribute!="␀"] {
[... CSS PROPERTIES HERE...]
}
无效且无效。
已确定:
[data-my-custom-attribute!=“”]
不起作用,我突然想到:
[data-my-custom-attribute]:不([data-my-custom-attribute=“”])
实际上是有效的(如果没有其他问题,我会坚持这样做)。
工作示例:
null
div {
display: inline-block;
width: 100px;
height: 100px;
margin-right: 12px;
}
.rectangle {
display: block;
width: 450px;
height: 60px;
margin-top: 12px;
background-color: orange;
}
[data-my-custom-attribute="red"] {
background-color: red;
}
[data-my-custom-attribute="yellow"] {
background-color: yellow;
}
[data-my-custom-attribute="blue"] {
background-color: blue;
}
[data-my-custom-attribute="␀"] {
border-radius: 0;
background-color: black;
}
[data-my-custom-attribute]:not([data-my-custom-attribute="␀"]) {
border-radius: 50%;
}
html lang-html prettyprint-override"><div data-my-custom-attribute="red"></div>
<div data-my-custom-attribute="yellow"></div>
<div data-my-custom-attribute="blue"></div>
<div data-my-custom-attribute="␀"></div>
<div class="rectangle"></div>
null
然而,
[data-my-custom-attribute]:not([data-my-custom-attribute="␀"])
感觉又尴尬又冗长。真的没有更好的了吗?
不幸的是,没有更简洁的方法了。即使是jQuery的[att!=val]
选择器(这些年来一直是jQuery独有的)也不要求属性匹配,所以您仍然需要将其与[att]
配对。
我知道这是对底部值概念的实验,但为了完整性起见,我要补充一点,在HTML(以及扩展到CSS)中,最接近空属性值的东西要么是空字符串(自定义数据属性的默认值),要么是完全缺少该属性。实现所需结果的惯用方法是选择空字符串或完全省略属性,并在CSS中分别使用相应的[data-my-custom-attribute=“”]
或:not([data-my-custom-attribute])
选择器,在JS中分别使用if(myCustomAttribute===“”)
或if(myDiv.dataset)===false)
。
问题内容: 做这样的事情的语法是什么: 基本上,我想选择具有属性和属性的元素: 元件如以下应该 没有 被选择: 问题答案: 简单会很好。它实际上在标准文档中有很好的描述: 可以使用多个属性选择器来引用元素的多个属性,甚至可以多次引用同一属性。 在此,选择器匹配所有SPAN元素,这些元素的“ hello”属性的值恰好为“ Cleveland”,而其“再见”属性的值恰好为“ Columbus”: 附带
具有特定属性的HTML元素样式 具有特定属性的HTML元素样式不仅仅是class和id。 注意:IE7和IE8需声明!DOCTYPE才支持属性选择器!IE6和更低的版本不支持属性选择器。 属性选择器 下面的例子是把包含标题(title)的所有元素变为蓝色:[title] { color:blue; } 属性和值选择器 下面的实例改变了标题title='runoob'元素的边框样式:[title=r
问题内容: 是否可以通过CSS5的HTML5数据属性(例如)来选择元素? 问题答案: 如果您想使用属性选择器,请确定为什么: 我可以链接到文档中介绍各种可用于各种场景的属性选择器。请注意,尽管自定义数据属性是“新的HTML5功能”, 浏览器通常在支持非标准属性方面没有任何问题,因此您应该能够使用属性选择器对其进行过滤;和 您也不必担心CSS验证,因为CSS不在乎非命名空间的属性名称,只要它们不破坏
我正在尝试选择一些不在我的中的属性。这可能吗? 如何从中获取CatId和持久属性? 如果我将它们添加到组中,就像,那么我的结果就会混乱。 我可以使用获得其他属性,如,但这些属性不是计算值。 数据示例: 希望将结果按如下方式分组:
我有这个密码 此代码显示所有类别。我有 如何使ifadd attribute selected to select(在映射函数中)
问题内容: 我需要在CSS中使用属性选择器来更改不同颜色和图像上的链接,但是它不起作用。 我有这个HTML: 而这个CSS: 为什么背景不是红色的? 问题答案: 在href后面使用$。这将使属性值匹配字符串的结尾。