我有2种类型的标签,标准标签(如第一行)和标签,其中包含输入字段。什么CSS规则可以让我选择全部<label>
但排除所有碰巧包含<input>
的标签?选择<label>但不包括<label>其中包含<input>
<label for="type">Some Label</label>
<label for="type">
<input type="checkbox" value="1" id="type">Some Label
</label>
我有2种类型的标签,标准标签(如第一行)和标签,其中包含输入字段。什么CSS规则可以让我选择全部<label>
但排除所有碰巧包含<input>
的标签?选择<label>但不包括<label>其中包含<input>
<label for="type">Some Label</label>
<label for="type">
<input type="checkbox" value="1" id="type">Some Label
</label>
这样做的最好方法是向它们或至少向它们中的一个添加不同的类。
CSS没有父级选择器,所以你不能检查包含其他javascript的元素。
一些背景资料:
CSS selector for "foo that contains bar"?
Is there a CSS parent selector?
CSS Parent/Ancestor Selector
Complex CSS selector for parent of active child
的 “相邻的兄弟” 选择应该工作,IF您正在寻找标签+输入对:
label+input
{
/* rules */
}
这会忽略你的l基本上是嵌套的输入,除非在标签之后碰巧有输入。
见SitePoint的CSS参考:http://reference.sitepoint.com/css/adjacentsiblingselector
@sameold这个问题,它不是IE6和7兼容。如果这对你来说不是问题,你可以为所有的标签定义样式,并将下一个标签(紧跟在之前或之前,不包裹)定义为输入。 – rcdmk
@rcdmk啊,真的。我已经养成了一种忘记这两种......坏习惯的坏习惯。 –
所以你有2个班'label'和'标签换input'吧? –
是的。正如我所说的,你不必创建第二堂课。您可以创建1个课程并将其应用于标签,而无需输入。 – rcdmk