怎样在CSS中嵌套

html-css031

怎样在CSS中嵌套,第1张

CSS结构好的话,没有必要使用过多的类或者标识选择符。这是因为你可以指定在选择符内的选择符,而不必使用CSS嵌套。(或者更好的说法,上下文选择符--译者著)

1、比如:

ExampleSourceCode

#top{  background-color:#ccc  padding:1em  }  #toph1{  color:#ff0  }  #topp{  color:red  font-weight:bold  }

2、这就减去不必要的类或者标识选择符,如果应用到像这样的HTML中:

ExampleSourceCode

<dividdivid="top"> <h1>Chocolatecurry</h1> <p>Thisismyrecipeformakingcurrypurelywithchocolate</p> <p>Mmmmmmmmmm</p> </div>

这是因为,用英文半角空格间隔选择符,我们指明了在标识id内的h1有“#ff0”的颜色,而p则是红色red和粗体bold。这可能也会有些复杂(因为可能不止两级,比如在内在内在内在内等等)。有必要多加练习。

之前遇到过 fixed 布局嵌套的一些场景, fixed 布局是针对 body 定位的,但是在某些特殊情况下,子级的 fixed 会受到父级 fixed 的影响,除了需要 z-index 来区分层级,还要注意 transform 的使用(貌似好多地方 transform 都会引发问题)

一般的场景是一个遮罩加一个弹框

效果是这样的

这个时候在内部的 children 再使用 fixed 布局时,就会被父级的 fixed 元素限制住

1、父级不使用 tansform

2、不进行嵌套

第一种方法(需要css3):

<style>

.div1 {width:400px height:300px border:1px solid #00f}

.div2 {display:inline-block width:150px height:200px border:1px solid #f00}

.div3 {display:inline-block width:150px height:200px border:1px solid #0a0}

</style>

<div class=div1>

<div class=div2></div><div class=div3></div>

</div>

第二种方法:

<style>

.div1 {width:400px height:300px border:1px solid #00f}

.div2 {float:left width:150px height:200px border:1px solid #f00}

.div3 {float:left width:150px height:200px border:1px solid #0a0}

</style>

<div class=div1>

<div class=div2></div><div class=div3></div>

</div>

第三种方法:

<style>

.div1 {position:relative width:400px height:300px border:1px solid #00f}

.div2 {position:absolute left:0 top:0 width:150px height:200px border:1px solid #f00}

.div3 {position:absolute left:152px top:0 width:150px height:200px border:1px solid #0a0}

</style>

<div class=div1>

<div class=div2></div><div class=div3></div>

</div>