2013-03-13 66 views
-3

假设我们有这个网站CSS:目标对儿童

<div class="a"> 
    <div>...</div> 
    ... 
    <div id="b">xyz</div> 
</div> 


<div class="a"> 
    <div>...</div> 
    ... 
    <div id="c">abc</div> 
</div> 

在url中针对其应用上#B一些风格是很容易做到与CSS:目标选择。 是否有可能在class =“a”的父div上应用一些样式?

+0

*“在#b上定位它时的风格”*你是什么意思? – Bigood 2013-03-13 10:31:25

+3

不,原因很简单,[没有办法选择父级](http://stackoverflow.com/questions/1014861/is-there-a-css-parent-selector)。 – BoltClock 2013-03-13 10:32:12

+0

你可以使用jQuery,但问题不明确 – Razmig 2013-03-13 10:33:26

回答

1

不,因为您需要一个CSS父级选择器。已经为此指定了CSS2CSS3中的任何内容。 CSS4确实(有点)parent selector(称为主题选择器)使用!符号,但没有浏览器支持它(还)。

0

您可以添加额外的id<div class="a">,并使其:

<div class="a" id="abc"> 

...并且仍然使用:target

+1

是的,但那会导致URL片段指向这个元素,而不是另一个,如果孩子必须有可能或不可取该ID或其他行为可能会受到影响,例如滚动或脚本。 – BoltClock 2013-03-13 10:33:44

+1

@otinanai,id必须是唯一的 – 2013-03-13 10:34:59

+0

查看我的编辑...现在好吗? – otinanai 2013-03-13 10:35:58

0

不,CSS级联(CSS =级联样式表),它不会上升。 您需要将样式显式应用于父元素。

你会更好地做类似@otinanai建议,并添加一个类到你的孩子div。例如

HTML

<div class="a"> 
    <div>...</div> 
    ... 
    <div class="aItem" id="b">xyz</div> 
</div> 

<div class="a"> 
    <div>...</div> 
    ... 
    <div class="aItem" id="c">abc</div> 
</div> 

CSS

.a { 
    border: 1px solid #000; 
} 
.aItem { 
    color: #999; 
} 

所以,你将使用类始终如一的风格元素。否则,您必须将D,E,F G的CSS写入Z,并仅将ID用于预订标记/ URL目的。