2.1 剖析CSS规则
 
规则即指令,其声明了需要修改的元素及要应用给元素的样式。
 
 
2.2 为文档添加样式的三种方法
 
行内样式:直接写在HTML文档标签中的style属性当中,行内元素只影响它所在的标签,总会覆盖嵌入样式和链接样式
例:<p style="width=300px;height=120px;color=red;"></p>
 
嵌入样式:写在<style>标签中,会覆盖外部样式
例:<style>......</style>
 
链接样式:写在单独的css文件中
 
除了以上三种为页面添加样式的方式,还有一种在样式表中链接其他样式表的方法,使用@import指令
例:@import url(css/style.css)
值得注意的是,@import指令必须出现在样式表中其他样式之前,否则@import引用的样式不会被加载
 
浏览器解析到<style>会尽心css的解析,解析完后会继续解析html,但是当用户将<style>加入到外部css文件中后浏览器就会不解析外部样式了
 
 
2.3 CSS命名规则惯例
CSS规则由选择符声明两部分组成,其中选择符用于指定选择的DOM元素,其中声明由两部分组成属性
属性指定要影响元素哪方面的样式。
 
三种规则,1、多个声明在一个规则里;2、多个选择符组合;3、多条规则应用给一个选择符
 
2.4 上下文选择符
 
father children {property:style;}
此类选择符在CSS规范中严格来讲叫:后代组合式选择符(descendant conbinator selector)
 
上下文选择符以空格作为分隔符,分组选择符以逗号作为分隔符。
 
 
2.4.1 自选择符  >
标签1 > 标签2
规定标签1不能是标签2父元素外的其他祖先元素
 
2.4.2 紧邻同胞选择符  +
标签1 + 标签2
标签2必须紧跟在其同胞标签1的后面
 
2.4.3 一般同胞选择符  ~
标签1 ~ 标签2
标签2必须跟(不一定紧跟)在同胞标签1的后面
 
2.4.4 通用选择符  *
匹配任意元素
 
 
2.5 ID和类选择符
 
ID和类为我们提供了选择元素的另一套手段,利用他们可以不用考虑文档的层次结构。
 
2.5.1 类
1、类选择符
(.)紧跟类名
 
2、标签带类选择符
<标签名>.<类名>
 
3、多类选择符
.<类名>.<类名> 
这里注意两个类名之间没有空格,表示我们选择同时具备这两个类名的元素,否则就变成了“祖先/后代”关系的上下文选择符了。
 
2.5.2 ID
例:
#container{样式声明}或p#specialtext{样式声明}
 
用于页内导航的ID
<a href="#bio">Biography</a>
该标签可跳转到页内指定ID标签所在位置
 
2.6 属性选择符
 
2.6.1 属性名选择符
标签名[属性名]
 
2.6.2 属性值选择符
标签名[属性名=“属性值”]
 
 
2.7 伪类
 
2.7.1 UI伪类
 
UI伪类基于特定的HTML元素的状态应用样式。
 
1、连接伪类
 
Link:此时,链接就在那儿等着用户点击;
Visited:用户此前点击过这个链接;
Hover:鼠标指针正悬停在链接上;
Active:链接正在被点击(鼠标按下,没有释放)。
 
一个冒号(:)表示伪类,两个冒号(::)表示CSS3新增的伪元素。
 
2、:focus 伪类
 
表单中的文本字段在用户单机它时会获得焦点,然后用户才能在其中输入字符。
 
input:focus {border:1px solid blue;}
会在光标位于input字段中时,为该字段添加一个蓝色的边框。这样可以让用户明确的知道输入的字符该出现在哪里。
 
3、:target 伪类
如果用户点击一个指向页面中其他元素的链接,则那个元素就是目标(target),可以用:target伪类选中它。
 
#more_info:target{background:#eee}
会在用户单击链接转向ID为more_info的元素时,为该元素添加浅灰色背景
 
2.7.2 结构化伪类
 
结构化伪类可以根据标记的结构应用样式,比如根据某元素的父元素或前面的同胞元素是什么。
 
1、:first-child 和 :last-child 
第一个元素,最后一个元素
 
2、:nth-child(n)
n表示一个数值,可以使用odd或even
 
……
 
2.8 伪元素
 
1、::first-letter伪元素
p::first-letter{font-size:300%}
实现首字母放大效果
 
2、::first-line伪元素
可选中文本段落(一般情况下是段落)的第一行。
 
 
3::before,::after
可用于在特定元素前面或后面添加特殊内容
<p class="age">25</p>
 
添加样式
--每个content属性值总都包含了空格,以便输出结果中有适当的空距
p.age::before{content:"Age: "}
p.age::after{content:"years. "}
 
结果
Age: 25 years.
 
搜索引擎不会取得伪元素的信息,不要通过伪元素添加你想让搜索引擎知道的重要内容
 
 
2.9 层叠
 
浏览器层叠各个来源样式的顺序:
 
  1. 浏览器默认样式表
  2. 用户样式表
  3. 作者链接样式表
  4. 作者嵌入样式
  5. 作者行内样式
 
层叠规则
一、找到应用给每个元素和属性的所有声明
二、按顺序和权重排序
p{color:green !important; font-size:12pt;}
!important 用于给样式添加特权
三、按特指度排序
更明确的选择符将会采用
p.large > p
 
计算特指度
按照 I-C-E 的规则计算
 
1、如果选择符中有个ID 就在I的位置上+ 1
2、选择符中有类,就在C的位置+1
3、选择符中有元素,就在E的位置+1
4、得到一个”三位数“,
 
 
这里每个选择符都比前一个选择符特指度更高
 
四、顺序决定权重
如果两条规则都影响某元素的同一个属性,而且他们的特指度也相同,则位置最靠下(最后声明)的胜出。
 
 

WEB笔记-2 剖析CSS规则的更多相关文章

  1. (4)《Head First HTML与CSS》学习笔记---文本的CSS规则和盒模型;div与span;<a>元素的链接色;伪类

    1.每个font-family包含一组共同特征的字体.共五个字体系列: sans-serif----这个系列包括了没有衬线的字体,与serif相比,通常认为这个系列更容易在计算机上识读. serif- ...

  2. CSS @规则

    最近在看极客时间winter大神的重学前端系列,遇到了许多不常用但是很重要的知识点.感觉视野得到了极大的开阔(打个广告,哈哈). 其中css @规则令人印象深刻.简单的做下笔记: @namespace ...

  3. CSS笔记(一)CSS规则

    CSS是层叠式样式表(Cascading Style Sheets)的缩写,定义了如何显示HTML元素. CSS规则由两个主要的部分构成:选择器 + 一条或多条声明. 每条声明由一个属性和一个值构成. ...

  4. CSS权威指南学习笔记系列(1)CSS和文档

    题外话:HTML是一种结构化语言,而CSS是它的补充:这是一种样式语言.CSS是前端三板斧之一,因此学习CSS很重要.而我还是菜鸟,所以需要加强学习CSS.这个是我学习CSS权威指南的笔记,如有不对, ...

  5. 第二篇:web之前端之css

    前端之css   前端之css 本节内容 css概述及引入 css选择器 css常用属性 1.css概述及引入 CSS概述 CSS是Cascading Style Sheets的简称,中文称为层叠样式 ...

  6. CSS规则

    CSS规则 --------------------------------------------- 1 前言 2 代码风格 2.1 文件 2.2 缩进 2.3 空格 2.4 行长度 2.5 选择器 ...

  7. web前端-----第二弹CSS

    web前端之CSS样式 CSS 语法 CSS 规则由两个主要的部分构成:选择器,以及一条或多条声明. ''' selector { property: value; property: value; ...

  8. 提高 web 应用性能之 CSS 性能调优

    简介 Web 开发中经常会遇到性能的问题,尤其是 Web 2.0 的应用.CSS 代码是控制页面显示样式与效果的最直接“工具”,但是在性能调优时他们通常被 Web 开发工程师所忽略,而事实上不规范的 ...

  9. [转]提高 web 应用性能之 CSS 性能调优

    简介 Web 开发中经常会遇到性能的问题,尤其是 Web 2.0 的应用.CSS 代码是控制页面显示样式与效果的最直接“工具”,但是在性能调优时他们通常被 Web 开发工程师所忽略,而事实上不规范的 ...

随机推荐

  1. Python面向对象----继承, 重载

    1. 面向对象三大特性之继承. 继承的便捷是子类可以直接调用父类里面的方法和属性.(在强类型语言里面是只能调用公有成员), 不用重复的造轮子. 减少程序猿的负担.实现多态等上层结构 2. 父类代码 3 ...

  2. [cogs461] [网络流24题#10] 餐巾 [网络流,最小费用最大流]

    建图:从源点向第一层连边,第一层表示当天用掉多少餐巾,第二层表示当天需要多少餐巾,所以注意购买餐巾的边容量为无穷大,要从源点开始连向第二层的点,每天可能有剩余,在第一层内表示为流入第二天的节点.具体见 ...

  3. Servlet的HttpServletResponse输出

    了解其中的一些字符设置,PrintWriter输出等.. form.html: <!DOCTYPE html> <html> <head> <title> ...

  4. POJ 3304 segments 线段和直线相交

    Segments Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 14178   Accepted: 4521 Descrip ...

  5. Spring MVC-表单(Form)标签-错误处理(Error Handling)示例(转载实践)

    以下内容翻译自:https://www.tutorialspoint.com/springmvc/springmvc_errors.htm 说明:示例基于Spring MVC 4.1.6. 以下示例显 ...

  6. Xposed获取微信usernamepassword

    请关注我的微信公众号 參考文章:Xposed恶意插件 Android 安全专项-Xposed 劫持usernamepassword实践 0x00 我在之前的文章中演示了一下怎样通过Xposed获取us ...

  7. 用户向导左右滑动页面实现之ViewPager

    接着上一篇博客.上一篇博客是用ImageSwitcher实现用户向导功能,如今用ViewPager实现同样的功能. 直接看代码: 布局文件activity_main.xml <RelativeL ...

  8. 源代码管理之Git命令的使用

    目录 02.源代码管理之Git命令的使用 2.Git命令行演练-个人开发 2.1 如何学习git指令 2.2 初始化创建本地仓库 2.3 个人开发基本演练 2.4 Git的基本常识 3.Git命令行演 ...

  9. Android实战简易教程-第二十四枪(基于Baas的用户表查询功能实现!)

    接着上一篇,我们注冊了几个用户,用户表例如以下: 以下我们用ListView将表中数据显示出来吧. 首先看一下main.xml: <RelativeLayout xmlns:android=&q ...

  10. Color a Tree HDU - 6241

    /* 十分巧妙的二分 题意选最少的点涂色 使得满足输入信息: 1 x的子树涂色数不少于y 2 x的子树外面涂色数不少于y 我们若是把2转化到子树内最多涂色多少 就可以维护这个最小和最大 如果我们二分出 ...