CSS-继承、层叠、特指

1 为什么要存在这三种机制(继承、层叠、特指)

在一个较大的样式表中,可能会有很多条规则都选择同一个元素的统一个属性,但是每个属性只能按照一种规则来进行显示,当多种规则应用于同一属性时,该属性到底是选择何种规则呢?为了解决这种冲突,需要确定一个规则的“优先级”。所以,CSS提供了这三种机制

2 继承

后代可以继承祖先的样式,例如,body是所有元素的祖先,所有标签都是他的后代

body {font-family:helvetica,arial,sans-serif;}

那么,文档中的所有元素,无论它在何种层次结构中,都继承这些样式

CSS中有很多属性是可以继承的,其中相当一部分跟文本相关,比如颜色、字体、字号;然而,也有很多CSS属性不能继承,因为继承这些属性没有意义,这些不能继承的属性主要涉及元素盒子的定位和显示方式,比如边框、外边距、内边距等

3 层叠

层叠,是一种样式在文档层次中逐层叠加的过程,目的是让浏览器面对某个标签特定属性值的多个来源,确定最终使用哪个值

3.1 样式来源

a、浏览器有一个默认的样式表

b、用户可以提供样式表

c、作者样式表(网页设计师写的样式表)

浏览器层叠各个来源样式的顺序:

  • 浏览器默认样式表
  • 用户样式表
  • 作者链接样式表
  • 作者嵌入样式表
  • 作者行内样式表

浏览器会按照上述顺序依次检查每个来源的样式,并在有定义的情况下,更新对每个标签属性值的设定。整个检查更新过程结束后,再将每个标签以最终设定的样式表显示出来,后面的样式会将前面的样式覆盖

3.2 层叠的规则

3.2.1 特指度(specificity)表示一条规则有多明确

计算特指度:

I-C-E

  1. 选择符中有一个ID,就在I的位置上加1;
  2. 选择符中有一个类,就在C的位置上加1;
  3. 选择符中有一个元素(标签)名,就在E的位置上加1。

得到一个三位数,但不能单纯地把它当做数字来比较,比如0-1-12与0-2-0相比,0-2-0的特指度更高

3.2.2 声明的权重

p {color:green !important;font-size:12pt;}

空格!important 分号(;)用于加重声明的权重。

加重声明的权重,也就是说,就应用这个样式了~不管是否还有其他优先级更高的样式(慎用~)

3.2.3 层叠的规则

  1. 包含ID的选择符 > 包含类的选择符 > 包含标签名的选择符
  2. 行内样式 > 嵌入样式 > 链接样式
  3. 设定的样式胜过继承的样式,此时不用考虑特指度
时间: 2024-11-05 16:00:30

CSS-继承、层叠、特指的相关文章

css 继承和层叠

css继承 1.css 可以继承的是背景(background).字体(font).文本(text) 宽高.浮动的元素不会继承. 2.css样式:浏览器默认样式.用户指定样式.作者定义样式. 3.css优先级(权值) 选择器   a  b  c   d 内嵌     1   0   0  0 id       0   1   0   0 属性/伪类 0   0   1   0 元素         0   0    0   1 !important 最高 一般:内嵌>内联/外部 eg: #con

CSS继承性+层叠性+盒子+浮动

CSS继承性+层叠性+盒子+浮动 CSS继承性 <style> div{ color: pink; font-size: 30px; width: 500px; background: green; padding: 100px; } p{ color: red; } </style> <div> <p>我们都是好孩子</p> <ul> <li> <p>我们都是栋梁之才</p> </li>

CSS的“层叠”规则的总结

当你随机打开一个页面,查看源代码,你会发现,同一个元素,不止有一个CSS选择器及对应的样式.而一个元素只能应用一个样式,那么一堆样式中究竟是应用哪一个呢?这就涉及到CSS的层叠规则了.下面就来总结下CSS的层叠规则. 概念:CSS中的层叠就是让多个来源的样式叠加在一起,然后结合样式的特殊性(后面详细介绍).继承性,确定最终应用的样式. 样式的来源分五种: 1.浏览器默认的样式: 2.用户自定义样式.一些页面中会提供一些让用户自定义字体大小颜色等的快捷键: 3.外部样式,即<link>引用的CS

1.6 CSS的层叠特性

作为本章的最后一节,这里主要讲解CSS的层叠属性.CSS的全名叫做“层叠样式表”,读者有没有考虑过,这里的“层叠”是什么意思?为什么这个词如此重要,以至于要出现在它的名称里. CSS的层叠特性确实很重要,但是要注意,千万不要和前面介绍的“继承”相混淆,二者有着本质的区别.实际上,层叠可以简单地理解为“冲突”的解决方案. 例如有如下一段代码,示例文件位于网页学习网CSS教程资源“第1章\16.htm”. <html> <head> <title>层叠特性</titl

CSS+DIV入门第一天基础视频 CSS选择器层叠性和继承性

大家好,我是小强老师, 现在网上的CSS+DIV视频,要么讲的太深,要么太浅,很多初学的同学们总是遇到困难,今天小强老师专门给大家准备了css课程的视频.带你从零基础学习CSS+DIV一直到能独立完成前台网页制作.小强老师是这样分类的,前几次课,我们将CSS+DIV入门基础,后几天课程我们讲案例制作.咱们接下来讲的是css基础部分. 高清视频地址如下: 01  css语法规范:                       http://www.tudou.com/programs/view/8s

深入解析CSS样式层叠权重值(转)

前言:折腾了半天圆角,发觉border-radius是css3的新特性,简单粗暴的解决了button的圆角显示,中间由于css权重问题,导致即使我设置了圆角也一直没有生效.以下是找到的相当不错的一篇css样式权重讲解的,清晰明了,看完就懂是啥了. 永记在心: important > 内联 > ID > 类|属性|伪类 > 标签|伪元素  > 通配符 > 继承  (相对于原文的调整  属性选择和为对象均与类并列~) 简单记住这几个就够用了: important >

css选择器、css继承关系、css盒子模型

一.摘要 总结前端部分css选择器.css继承关系.css盒子模型等相关知识,并对容易出错的地方进行分析说明. 二.原因 在开发前端页面时如果对css选择器.继承关系,层叠,以及padding.margin区别和浮动问题理解不到位,会导致不知道什么时候该用哪种方法来处理问题.此文档是针对这些问题进行说明. 以下是对相关知识点的总结与分析: 三.选择器 1.基本选择器 (1)* 通配符选择器  代表所有元素 例子: *{ margin:0; padding:0;} (2)标签选择器 代表网页中的所

谈谈一些有趣的CSS题目(四)-- 从倒影说起,谈谈 CSS 继承 inherit

开本系列,讨论一些有趣的 CSS 题目,抛开实用性而言,一些题目为了拓宽一下解决问题的思路,此外,涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题中有你感觉到生僻的 CSS 属性,赶紧去补习一下吧. 不断更新,不断更新,不断更新,重要的事情说三遍. 所有题目汇总在我的 Github . 4.从倒影说起,谈谈 CSS 继承 inherit 给定一张有如下背景图的 div: 制作如下的倒影效果: 方法很多,但是我们当然要寻找最快最便捷的方法,至少得是无论图

css的层叠性(权重问题)

1.css的层叠性(很多公司如果要是有笔试,一定会考层叠性) 解释:就是css处理冲突问题的能力. 特点:所有的权重计算没有任何兼容性问题. 2.权重计算问题 下面我们看一下这个代码 <!DOCTYPE html> <html> <head> <title>权重计算问题</title> <meta charset="utf-8"> <style type="text/css"> /*

CSS 继承

1.说明解释   -  TOP 这里DIV CSS 继承是指我们设置上级(父级)的CSS样式,上级(父级)及以下的子级(下级)都具有此属性.一般只有文字文本具有继承特性,如文字大小.文字加粗.文字颜色.字体等. 2.实例:   -  TOP <!DOCTYPE html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <