css就是一种先选择html元素,然后设定选中元素css属性的机制。
css选择符合要应用的样式构成一条css规则。

为文档添加样式的3种方法:

1.行内样式,直接写在特定标签的style属性中;
2.嵌入样式,在head元素中嵌入<style type="text/css"></style>,将css规则放入<style>和</style>中;
3.链接样式,在<head>元素中使用外部的样式表,如:
<link href="1.css" rel="stylesheet" type="text/css" />

3种css样式的优先级:
行内样式 > 嵌入样式 > 链接样式

css规则命名惯例:

css规则由选择符和声明2部分组成。选择符用于指定元素,声明又由2部分组成:属性和值。如果选择符由多个元素组成,则用逗号隔开。如果有多条声明,则用分号隔开。简单例子:
p,h1 {
    color:red;
    font-size:12px;
}

用于选择特定元素的选择符分为3种:
1.上下文选择符。基于祖先或同胞元素选择一个元素:
a.祖先选择符。用空格符隔开,用于选定某个祖先元素下的元素。如我们需要只改变<aside>元素中的<p>元素:
aside p {
    color:green;
}
b.子选择符。标签2必须是标签1的子元素:
标签1 > 标签2
c.临近同胞选择符。标签2必须紧跟在其同胞标签1的后面:
标签1 + 标签2
d.一般同胞选择符。标签2必须跟(不一定紧跟)在其同胞标签1后面:
标签1 ~ 标签2
e.通用选择符。*是一个通配符,可以匹配任何元素。

2.ID和类选择符。只要在html中为元素添加了id和class属性,就可以在css选择符中使用ID和类名,直接选中特定区域。ID和class有点不同,ID用来在页面中唯一地标识一个元素,类用来标识一组具有某些相同特征的元素。
a.类选择符:
.类名
b.ID选择符:
#id属性值

3.属性选择符。通过元素的属性来定位元素。
a.属性名选择符。选择带有该属性名的标签名:
标签名[属性名]
b.属性值选择符。选择带有值为属性值的属性名的标签名。
标签名[属性名="属性值"]

伪类:
伪类这个叫法源自它们与类相似,但实际上并没有类会附加到标签上。伪类有2种:
UI伪类(在html元素处于某种状态,如鼠标悬停时,为该元素应用CSS样式);
结构化伪类(标记中存在某种结构上的关系时,如某个元素是一组元素中的第一个或最后一个,为相应元素应用CSS样式)。

UI伪类:
1.链接伪类:
a:link(默认状态)
a:visited(用户此前点击过的链接)
a:hover(鼠标悬停)
a:active(链接正在被点击,鼠标还没有释放)
2.focus伪类:
input:focus(获得焦点)
3.target伪类:
如果用户点击一个指向页面中其他元素的链接,则那个元素就是target,可以用:target伪类选中它:
#cankao:target

结构化伪类:
1.:first-child和:last-child(第一个和最后一个子元素)
2.:nth-child(n) (第n个子元素)

伪元素:
伪元素就是文档中若有实无的元素。
1.::first-letter(首字符)
2.::first-line(首行)
3.::before和::after(可用于在特定元素前面或后面添加特殊文字内容),如:
<p class="age">25</p>
p.age::before {content:"我的年龄是:"}
最后浏览器显示出的内容是:
我的年龄是:25

css应用机制:
1.继承:
css中的元素会继承其祖先元素的css样式。
2.特指:
特指度表示一条规则有多明确。一条规则的特指度,由它的选择符中包含多少个标签、类名和ID决定。计算方式:
计算I(id)-C(class)-E(element)3个值,组成一个3位数,数值大的胜出。也就是说,id的权重大于class大于元素。
3.层叠:
层叠就是层叠样式表中的层叠,它是css的核心机制:
a.包含id的选择符胜过包含类的选择符,包含类的选择符胜过包含标签名的选择符(详见特指度的计算);
b.如果几个不同来源都为同一个标签同一个属性定义了样式,行内样式胜过嵌入样式胜过链接样式。在链接的样式表中,具有相同特指度的样式,后声明的胜过先声明的。
规则a胜过规则b。也就是说,如果选择符的特指度更高,就算是后声明的,也会胜出。
c.设定的样式胜过继承的样式,此时不用考虑特定度。

个人对css应用机制的理解:
a.继承得到的永远最小,不考虑特指度;
b.后设定的大于先设定的;
c.在所有设定的css中,特指度完爆一切,优先级最高。

css读书笔记2:css工作原理的更多相关文章

  1. HTML+CSS学习笔记 (7) - CSS样式基本知识

    HTML+CSS学习笔记 (7) - CSS样式基本知识 内联式css样式,直接写在现有的HTML标签中 CSS样式可以写在哪些地方呢?从CSS 样式代码插入的形式来看基本可以分为以下3种:内联式.嵌 ...

  2. 读书笔记-NIO的工作方式

    读书笔记-NIO的工作方式 1.BIO是阻塞IO,一旦阻塞线程将失去对CPU的使用权,当前的网络IO有一些解决办法:1)一个客户端对应一个处理线程:2)采用线程池.但也会出问题. 2.NIO的关键类C ...

  3. 一篇笔记整理JVM工作原理

    首先要了解的 >>数据类型 Java虚拟机中,数据类型可以分为两类:基本类型和引用类型. 基本类型的变量保存原始值,即:他代表的值就是数值本身:而引用类型的变量保存引用值.“引用值”代表了 ...

  4. CSS学习笔记01 CSS简介

    1.CSS定义 CSS 指层叠样式表 (Cascading Style Sheets),是一种样式表语言,用来描述 HTML 或 XML(包括如 SVG.XHTML 之类的 XML 分支语言)文档的呈 ...

  5. HTML+CSS学习笔记 (12) - CSS布局模型

    标签:HTML+CSS css布局模型 清楚了CSS 盒模型的基本概念. 盒模型类型, 我们就可以深入探讨网页布局的基本模型了.布局模型与盒模型一样都是 CSS 最基本. 最核心的概念. 但布局模型是 ...

  6. Android学习笔记View的工作原理

    自定义View,也可以称为自定义控件,通过自定义View可以使得控件实现各种定制的效果. 实现自定义View,需要掌握View的底层工作原理,比如View的测量过程.布局流程以及绘制流程,除此之外,还 ...

  7. CSS学习笔记02 CSS选择器

    1.通配符选择器 通配符选择器用“*"号表示,是所有选择器中作用范围最广的,能匹配页面中所有的元素 /*设置当前页面中所有标签的颜色为红色*/ * { color: red; } 2.标签选 ...

  8. DIV+CSS学习笔记(CSS)

    css基础知识: css样式表的定义 css:(Cascading Style Sheets)层叠样式表: 分类及位置:内部样式-head区域style标签里面 外部样式-link调用 内联样式-标签 ...

  9. 读书笔记《CSS权威指南》

    阅读本书主要目的: 自从学会CSS以来,虽然熟练掌握了其使用方法和技巧,但对其底层的原理和实现并不清晰,阅读本书想进一步系统化的学习和深入研究其本质,对这门前端基础语言从熟练使用到真正理解. 第1章 ...

随机推荐

  1. List<T>

    List<FormEntity> formEntity = new List<FormEntity> (){new FormEntity{ IsFile = true,Name ...

  2. C++析构函数定义为虚函数(转载)

    转载:http://blog.csdn.net/alane1986/article/details/6902233 析构函数执行时先调用派生类的析构函数,其次才调用基类的析构函数.如果析构函数不是虚函 ...

  3. SqlSever基础 datepart 获取一个日期的年份

    镇场诗:---大梦谁觉,水月中建博客.百千磨难,才知世事无常.---今持佛语,技术无量愿学.愿尽所学,铸一良心博客.------------------------------------------ ...

  4. .Net连接数据库(AOD.Net)

    用C#实现用户名登录---连接数据库,查询并判断是否存在用户名 一.链接类 1.添加DBConnection类 2构造 public class DBConnection { private stat ...

  5. MVC部署IIS设置

    根目录→处理程序映射→添加通配符脚本映射 C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll

  6. Systematic LncRNA Classification

    Systematic LncRNA Classification From: http://www.arraystar.com/Services/Services_main.asp?ID=307 An ...

  7. mysql以ROOT权限提权方法

    今天feng问了一个问题,mysql root权限运行,直接root服务器吧,SSH登录 正好上网查一下相关的资料: mysql .x里面引入了一个system函数,这个函数可以执行系统命令,当mys ...

  8. git泄漏原理

    之前做过git的加固 但是这东西还是没办法避免的 之前看了乌云的提交的git泄漏,但是都没有详细的原理,去了lijiejie的博客(字太难打了,大师傅别打我 哈哈) 如果一个网站存在git泄漏,git ...

  9. ,2,liunx命令格式

    一.命令基本格式 ~用户的初始登录位置   /root  这个叫root用户的家目录,每个用户都有自己的家 超级用户的家是根目录,普通用户的家是home下的二级目录   :/home/uer1 pwd ...

  10. [数据结构与算法]哈夫曼(Huffman)树与哈夫曼编码

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...