繁体   English   中英

如何使用CSS设置第n个div样式

[英]How can I style the n-th div with CSS

我有这样的设计:

<body id="layout">
 <div id="section-header">
   <div class="widget" id="Pagelist1">
    <div class="widget-wrap1">
     <div class="widget-wrap2">
        <div class="widget-content">
        </div>
     </div> 
   </div>
   </div>
   <div class="widget" id="Pagelist2">
    <div class="widget-wrap1">
     <div class="widget-wrap2">
        <div class="widget-content">
        </div>
     </div> 
   </div>
   </div>
 </div>
</body>

要求:CSS始终以body#layout开头
如何为widget-content类( Pagelist2 ID的子类)设置样式?
我尝试过这样的样式,但是不起作用:
body#layout > #Pagelist2 > .widget-content {....}

我想设置类.widget-content样式

body#layout > #Pagelist2 > .widget-content {....}

由于“>”而不起作用,这意味着#Pagelist2必须直接是body#layout的子代。

body#layout #Pagelist2 .widget-content {...}

这会起作用

要么

#layout  #Pagelist2 .widget-content {....}

要不就

#Pagelist2 .widget-content {....}

它对您不起作用,因为您使用的是子选择器,而#Pagelist2并不是该主体的直接子代。

您正在使用子选择器 >

body#layout > #Pagelist2 > .widget-content 

如此,您的CSS会设置所有.widget-content元素的样式,这些元素是#Pagelist2直接子代,这些元素是body#layout直接子代,但您的HTML标记上没有此链。

您想要的选择器是

#Pagelist2 .widget-content {...}

但是我的body#layout哪里?

您不需要它,因为您的页面只能有一个 #Pagelist2才是有效的,正如您在ID选择器规范中所看到的。

一些较旧的浏览器不完全支持“>”。 因此,您可以删除它。

您可能要指定结构的完整路径。

body#layout #Pagelist2 .widget-wrap1 .widget-wrap1 .widget-content

或简化它

#Pagelist2 .widget-content

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM