css - 三大特性

1.继承性

祖先元素的关于文本的样式会遗传给后代元素,其它则不会。后代元素会继承祖先元素的关于文本的css样式(水平对齐、字号、字色、行高等)。但a元素不会应用继承来的color,这是因为父元素设置{ color:xx }虽然可以 遗传给子a元素,但子a元素的color有默认的定义(a:link:{ color:blue })。

2.层叠性

如果通过两个相同选择器设置了同一个元素的某个相同的css属性,按照css相同属性的出现顺序,后面的样式会覆盖前面的样式

div {
    width: 50px;
    line-height: 50px;
    text-align: center;
    color: #fff;
    font-weight: 900;
    margin: 10px auto;
}

#box {
    background: red;
}

#box {
    background: black; //覆盖了红色
}

<div id="box">H</div>

3.优先性(权重)

如果通过不同的选择器设置了同一个元素的同一个css属性,则浏览器在应用css样式时会判定选择器的权重,权重最大的会被首先考虑。

单个权重的计算

1.!important=∞(无穷大)
2.行内样式=1000,直接在html标签里通过style设置的样式
3.id选择器=0100 
4.类选择器=0010 
5.标签选择器=0001
6.*=0000

id=0100>html tag=0001,所以会应用id所设置的css样式,html标签选择器的样式被忽略

权重值0100
#box {
    background: red;
}
权重0001
div {
    background: black; //被忽略
}

<div id="box">H</div>

多个权重的计算

div {
    width: 50px;
    line-height: 50px;
    text-align: center;
    color: #fff;
    font-weight: 900;
    margin: 10px auto;
    background: red;
}

0100 id权重值
+ 0001 标签权重值
= 0101
#box span {
    background: #4800ff;
}

0001 标签权重值
span {
    background: black;
}

0101>0001,选择了#box span选择器的设置,span选择器被忽略
style>
ad>
y>
<div id="box">
    <span>H</span>
</div>

权重叠加没有进制,不是满十进一,而是满十向后补0

    0001
    0001
    0001
    0001
    0001
    0001
    0001
    0001
    0001
 + 0001
 = 00010
div div div div div div div div div a {
 color: red;
}

0100
#link {
 color: black;
}

*号选择器的权重是0000,但important的权重是无穷大
* {
 color: green !important;
}

最终选择了*号选择器的设置

父子权重计算

无论父的优先级的值有多高,子继承后就是0或none。

div{
      color:black !important;
}

a{
      color: red;
}

<div><a href="#" id="link">首页</a></div> //取red

通配符选择的是元素自身,此时通配符要大于从父元素继承的权重

body div{ color:red; }
*{ color:#000; }
<div><p>fuck gov</p></div> //p标签的color取值#000

  

Css - 学习总目录

Css - 三大特性的更多相关文章

  1. CSS.02 -- 样式表 及标签分类(块、行、行内块元素)、CSS三大特性、背景属性

    样式表书写位置  内嵌式写法 <head> <style type="text/css"> 样式表写法 </style> </head&g ...

  2. CSS三大特性(继承、优先级、层叠)之个人见解

    首先声明一下CSS三大特性——继承.优先级和层叠.继承即子类元素继承父类的样式,比如font-size,font-weight等f开头的css样式以及text-align,text-indent等t开 ...

  3. python 之 前端开发(CSS三大特性、字体属性、文本属性、背景属性)

    11.38 css三大特性 11.381 继承性 1.定义:给某一个元素设置一些属性,该元素的后代也可以使用,这个我们就称之为继承性​2.注意:    1.只有以color.font-.text-.l ...

  4. CSS 三大特性 层叠 继承 优先级

    css三大特性 层叠性: 如果一个属性通过两个相同选择器设置到同一个元素上,相同的属性就会出现冲突,那么这个时候一个属性就会将另一个属性层叠掉,采用的是就近原则 继承性: 子标签会继承父标签的某些样式 ...

  5. css三大特性及权重说明

    一.三大特性简述 层叠性: 后来的覆盖前面的 (长江后浪推前浪) 继承性: 子标签会继承父标签的某些样式 (跟文字有关的一般都会继承) 优先级: 设计到一个算法“css特殊性(Specificity) ...

  6. 前端面试 CSS三大特性

    CSS的三大特性 1.层叠性 代码由上向下执行,相同选择器设置到同一元素上,样式冲突的,会执行比较靠近html的样式,样式不冲突的情况下不影响 代码如下 <!DOCTYPE html> & ...

  7. CSS系列 (03):CSS三大特性

    层叠性 层叠性指的是样式的优先级,当产生冲突时以优先级高的为准,优先级相同时取后面定义的属性样式. 继承性 继承性指的是子孙元素可以继承父元素的属性. 记录一下开发中常用的继承属性: 字体系列 fon ...

  8. css的三种引入方式、常用的元素选择器以及css三大特性

    第一.html文件中如何使用css html文件中使用css有3种方式:链接式.嵌入式.行内式,推荐使用程度依次递减:1.链接式:在html文件通过<link />标签引入,rel属性值必 ...

  9. CSS【05】:CSS三大特性

    继承性 作用:给父元素设置一些属性,子元素也可以使用,这个我们就称之为继承性 示例代码: <style> div { color: red; } </style> <di ...

随机推荐

  1. keepalived初次安装体验

    keepalived主要有两大功能,一个是LB,一个是VRRP+failover,其中LB功能和LVS的功能类似,都是通过在LB上配置RS,监控RS的状态,将从client来的请求发送给对应算法的RS ...

  2. linux下测试磁盘的读写IO速度-简易方法

    linux下测试磁盘的读写IO速度-简易方法 参考资料:https://blog.csdn.net/zqtsx/article/details/25487185 一:使用hdparm命令 这是一个是用 ...

  3. linux查看IP

    1:输入 ifconfig,出现如下信息,找到eno16777736(网卡ip信息的配置文件名) 2:输入 cd /etc/sysconfig/network-scripts 找到网卡ip信息的配置文 ...

  4. C# Selenium学习

    https://blog.csdn.net/hjkl950217/article/details/54314760 https://www.cnblogs.com/vaevvaev/p/7041842 ...

  5. 【1】【leetcode-93】复原IP地址

    (不会,典型) 给定一个只包含数字的字符串,复原它并返回所有可能的 IP 地址格式. 示例: 输入: "25525511135" 输出: ["255.255.11.135 ...

  6. npm i 与 npm install之间的细小区别

    1.用npm i 安装的模块无法用npm uninstall卸载,需要用npm uninstall i命令 2.npm i 会帮助检测与当前node版本最匹配的npm包 版本号,并匹配出来相互依赖的n ...

  7. Silverlight程序之修改命名空间

    有时候,为了使用已有的代码,可能需要更改主程序的命名空间,以生成新的应用.修改命名空间,不能胡乱一通全部使用“替换”,否则程序可能无法正常运行.通过笔者实践,主要有以下几个地方需要注意(以WebGIS ...

  8. 【bzoj 3779】重组病毒

    Description 黑客们通过对已有的病毒反编译,将许多不同的病毒重组,并重新编译出了新型的重组病毒.这种病毒的繁殖和变异能力极强.为了阻止这种病毒传播,某安全机构策划了一次实验,来研究这种病毒. ...

  9. [C++]PAT乙级1006. 换个格式输出整数 (15/15)

    /* 1006. 换个格式输出整数 (15) 让我们用字母B来表示“百”.字母S表示“十”,用“12...n”来表示个位数字n(<10),换个格式来输出任一个不超过3位的正整数. 例如234应该 ...

  10. nginx 基于uwsgi部署Django

    1.安装nginx yum install -y nginx(需要epel源) 2.安装环境 可以考虑使用虚拟化环境,本处不再使用 3.安装uwsgi yum groupinstall "D ...