2013-08-05 97 views
1

我正在为一些共享相同父项的元素在CSS中编写一些规则。一些具有相同父项的孩子的CSS选择器

#parent_id li 
#parent_id label, 
#parent_id input, 
#parent_id select { ... } 

是否有避免重复父ID的替代语法?

+1

[http://stackoverflow.com /问题/ 8999568/CSS-是-IT-可能至选择 - 多不同-子元素中之父] [1] [1]:HTTP: //stackoverflow.com/questions/8999568/css-is-it-possible-to-select-multiple-different-child-elements-within-a-parent 此问题可能存在重复 – 2013-08-05 10:45:40

+0

'parent_id'包含除'li','label','input'和'select'元素以外的其他内容吗? – Spudley

回答

1

CSS native不支持这个。但是你可以使用SASS/LESS:

#parent_id { 
    label, input, select { ... } 
} 
1

在简单的css中是不可能的。试试LESS来实现这一点。

2

如果这些你选择元素的父元素中的所有元素,你可以只应用样式父元素:

#parent_id { 
    .... 
} 

风格在那里,都应当继承下来,让里面的元素它也获得了这些风格。

另一种选择可能是使用通用*选择:

#parent_id * { 
    .... 
} 

这将影响到所有的元素至少一个级别parent_id元以下,但不parent_id本身。如果您在parent_id中获得了纯文本,并且您希望不受影响,则可以使用该文本。

第三个选择是更改您的HTML标记,以便您要影响的元素有一个类。然后你的CSS可以简单地引用那个类。

(顺便说一句 - 是的,我知道LESS /上海社会科学院/等,但我没想到有在发布相同的答案EVERONE别的不多值)

+0

这不是级联。这是继承。并非所有样式都是继承的,所以只需在父元素上指定它们几乎总是不能保证工作。 – BoltClock

+0

@BoltClock - 你抓到我了;纠正了术语。你是对的,并非所有的风格都会被遗传,但对那些不是那样的人来说,我也给出了第二种选择。(他没有指定他使用的是什么风格,所以我认为最好提供这两种风格) – Spudley

+0

'#parent_id *'不会针对父级以下一级的所有元素,它会针对* any下任何*级别的* all *元素父母。如果仅针对元素的直接子元素是目标,则应使用'#parent_id> *'。 – Elise