就近原则
优先级关系,从高到低:行内样式 > 内部样式 > 外部样式。
继承原则:
继承中多数边框类的属性不能被继承,比如padding、margin、背景等都不会被继承;表格也不能继承父类的样式。
覆盖原则:
由于继承而发生的样式冲突,由最近的祖先元素取值;
继承的样式和直接指定的样式发生冲突时,直接指定的样式获取值;
直接指定的样式发生冲突时,样式权重高的元素获取值;
CSS(层叠样式表)简单来说可以为HTML标记语言添加一些样式、布局等。当浏览器显示文档时,它必须将文档的内容与其样式信息结合。它分两个阶段处理文档:
1.浏览器将 HTML 和 CSS 转化成 DOM (文档对象模型)。DOM在计算机内存中表示文档。它把文档内容和其样式结合在一起。
2.浏览器显示 DOM 的内容。
对于CSS的学习,推荐分成三块学习:“基础概念”,“CSS2.1规范”,“CSS3规范”。精通CSS(第2版)是必须学习的,看完这本书你应该对:盒子模型,流动,block,inline,层叠,样式优先级等概念有基本的了解。CSS参考文档有菜鸟学院(基础、简单):CSS 教程 | 菜鸟教程,Mozila官方文档(全E文、逼格高,详细):MDN CSS Doc
在学习完基础知识后,可以尝试完成Htm/Css基础编码的项目,增强知识的掌握程度。
css选择器优先级核心:每个选择器本身有优先级,作用范围越具体优先级越高。
CSS优先级从高到低分别是:
1.在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式。
2.作为style属性写在元素标签上的内联样式
3.id选择器
4.类选择器
5.伪类选择器
6.属性选择器
7.标签选择器
8.通配符选择器
9.浏览器选择器
当CSS样式的规则由多个选择器组成时,id选择器的权值为1000,class选择器为100,标签选择器为10,按权值求和的记过高低决定哪个优先。当两个css规则的权值相同时,谁更具体用谁,也就是权值高的选择器作用的越具体优先级越高。当两个选择器规则和权值都是一样,后面样式会覆盖前面的!
总体来说,CSS具有以下特点:
1.丰富的样式定义
CSS提供了丰富的文档样式外观,以及设置文本和背景属性的能力;允许为任何元素创建边框,以及元素边框与其他元素间的距离,以及元素边框与元素内容间的距离;允许随意改变文本的大小写方式、修饰方式以及其他页面效果。
2.易于使用和修改
CSS可以将样式定义在HTML元素的style属性中,也可以将其定义在HTML文档的header部分,也可以将样式声明在一个专门的CSS文件中,以供HTML页面引用。总之,CSS样式表可以将所有的样式声明统一存放,进行统一管理。
另外,可以将相同样式的元素进行归类,使用同一个样式进行定义,也可以将某个样式应用到所有同名的HTML标签中,也可以将一个CSS样式指定到某个页面元素中。如果要修改样式,大家只需要在样式列表中找到相应的样式声明进行修改。
3.多页面应用
CSS样式表可以单独存放在一个CSS文件中,这样大家就可以在多个页面中使用同一个CSS样式表。CSS样式表理论上不属于任何页面文件,在任何页面文件中都可以将其引用。这样就可以实现多个页面风格的统一。
4.层叠
简单的说,层叠就是对一个元素多次设置同一个样式,这将使用最后一次设置的属性值。例如对一个站点中的多个页面使用了同一套CSS样式表,而某些页面中的某些元素想使用其他样式,就可以针对这些样式单独定义一个样式表应用到页面中。这些后来定义的样式将对前面的样式设置进行重写,在浏览器中看到的将是最后面设置的样式效果。
5.页面压缩
在使用HTML定义页面效果的网站中,往往需要大量或重复的表格和font元素形成各种规格的文字样式,这样做的后果就是会产生大量的HTML标签,从而使页面文件的大小增加。而将样式的声明单独放到CSS样式表中,可以大大的减小页面的体积,这样在加载页面时使用的时间也会大大的减少。另外,CSS样式表的复用更大程度的缩减了页面的体积,减少下载的时间。