css 嵌套绝对定位图片如何实现自适应布局

html-css024

css 嵌套绝对定位图片如何实现自适应布局,第1张

一、float实现

html结构:

[html] view plain copy

<div class="left"></div>

<div class="right"></div>

<div class="center"></div>

css:

[css] view plain copy

.left,.right{

width: 200px

height: 300px

background-color: red

}

.left{

float: left

}

.right{

float: right

}

.center{

margin: 0 210px

height: 300px

background-color: blue

}

这种实现受外界影响小,但是对html结构有要求(center必须放在最后,left与right则无所谓),当界面缩小到一定程度时,right会被挤到下一行

二、position实现

html结构:

[html] view plain copy

<div class="left"></div>

<div class="right"></div>

<div class="center"></div>

css:

[css] view plain copy

.left,.right{

position: absolute

width: 200px

height: 300px

background-color: yellow

}

.left{

left: 0

}

.right{

right: 0

}

.center{

margin: 0 210px

height: 300px

background-color: blue

}

该法布局的好处,三个div顺序可以任意改变。不足是 因为绝对定位,所以如果页面上还有其他内容,top的值需要小心处理,最好能够对css样式进行一个初始化,如果不对样式进行初始化,则两边和中间的值会对不齐。 另外,随着浏览器窗口缩小,小于200px的时候,会发生重叠。

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。这可能也会有些复杂(因为可能不止两级,比如在内在内在内在内等等)。有必要多加练习。

你的html中只要有匹配这个选择器的dom结构就会自动出现有这个图片的。不过你这个css选择器太复杂了,需要类似下面这个结构才能匹配(为了简便,这里都是用的div标签,实际情况可能会很复杂):

<div class="public_nav_v3">

<div class="info_wrap">

<div class="info">

<div class="right">

<div class="login_box">

<div class="r_pic">

<div class="avatar_wrap">

<div class="frame frame_1">

......在最里面的这个div里就会出现那个图片了,当然这里很可能还要设定width、height等属性才行,总之就是这么个意思......

</div>

</div>

</div>

</div>

</div>

</div>

</div>

</div>