您的位置:首页 > Web前端 > CSS

css中的权重计算,手风琴样式时遇到的问题

2017-04-02 14:34 435 查看
问题描述,想从图1写成图2的效果:



图1



图2

HTML的布局:

<div class="pic">
<ul>
<li class="pic1">
<a href="javscript:;">   <!--空链接用来跳转,但是不需要跳转-->
<div class="txt">
<p class="p1">作者 :潘安</p>
<p class="p2">文艺风的生活</p>
</div>
</a>
</li>

<li class="pic4">
<a href="javscript:;">   <!--空链接-->
<div class="txt">
<p class="p1">作者 :妮妮</p>
<p class="p2">这是一个风景</p>
</div>
</a>
</li>
</ul>
</div>

css中的样式:

.pic ul li{
float: left;
width: 100px;
height:375px;

}
.pic ul .pic4{
background-image: url("../layer/4.jpg");
width: 600px;             /*.pic ul li的权重比.pic4高,所以Pic4设置的不起作用,
权重是加和比较的,内联:1000
id:100
class:10
标签:1
所以这里设置
.pic ul .pic4   权重是21
.pic ul li      权重是10+1+1=12

}


分析:
因为灰色div(文字)宽度为100px,所以把li的样式设置为100px,则四个div默认都是100px,是图1的效果,
现在想让第四张图完全显示,所以直接写了
.pic4{********}


没有效果,想到这是权重惹的货!

====================================================================================================================================

关于权重的知识补充:

CSS权重是由四个数值决定:



图里是英文的,翻译一下,4个等级的定义如下:

第一等:代表内联样式,如: style=””,权值为1000。

第二等:代表ID选择器,如:#content,权值为100。

第三等:代表类,伪类和属性选择器,如.content,权值为10。

第四等:代表类型选择器和伪元素选择器,如div p,权值为1。

最后把这些值加起来,再就是当前元素的权重了。

权重算出来了,但是某个元素到底用哪个样式,还有3个规则,:

1,如果样式上加有!important标记,例如:
那么始终采用这个标记的样式。

2,匹配的内容按照CSS权重排序,权重大的优先;

可以看到,CSS权重只是决定应用哪个样式的其中一个步骤,不过这个步骤是最复杂的,上面已经说过了。

3,如果权重也一样,按照它在CSS样式表里声明的顺序,后声明的优先,例如:
最终胜出的是color: red。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: