2012-07-01 54 views
3

我有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没有父级选择器,所以你不能检查包含其他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

+0

所以你有2个班'label'和'标签换input'吧? –

+0

是的。正如我所说的,你不必创建第二堂课。您可以创建1个课程并将其应用于标签,而无需输入。 – rcdmk

2

的 “相邻的兄弟” 选择应该工作,IF您正在寻找标签+输入对:

label+input 
{ 
    /* rules */ 
} 

这会忽略你的l基本上是嵌套的输入,除非在标签之后碰巧有输入。

见SitePoint的CSS参考:http://reference.sitepoint.com/css/adjacentsiblingselector

+1

@sameold这个问题,它不是IE6和7兼容。如果这对你来说不是问题,你可以为所有的标签定义样式,并将下一个标签(紧跟在之前或之前,不包裹)定义为输入。 – rcdmk

+0

@rcdmk啊,真的。我已经养成了一种忘记这两种......坏习惯的坏习惯。 –

相关问题