HTML学习小结(一)

1.css的全称是什么?

2.样式表的组成

3.浏览器读取编译css的顺序?

(1)HTML基本选择器

1.通配符选择器 * { margin: 0; padding: 0; border: none; }

2.元素选择器 body { background: #eee; }

3类选择器 .list { list-style: square; }

4.ID选择器 #list { width: 500px; margin: 0 auto; }

5.后代选择器 .list li { margin-top: 10px; background: #abcdef; }

(2)HTML基本选择器扩展

1.子元素选择器 #wrap > .inner {color: pink;}

也可称为直接后代选择器,此类选择器只能匹配到直接后代,不能匹配到深层次的后代元素

2.相邻兄弟选择器 #wrap #first + .inner {color: #f00;}

它只会匹配紧跟着的兄弟元素

3.通用兄弟选择器 #wrap #first ~ div { border: 1px solid;}

它会匹配所有的兄弟元素(不需要紧跟)

4.选择器分组 h1,h2,h3{color: pink;}

此处的逗号我们称之为结合符

(3)HTML属性选择器

1.存在和值属性选择器

[attr]:该选择器选择包含 attr 属性的所有元素,不论 attr 的值为何。

[attr=val]:该选择器仅选择 attr 属性被赋值为 val 的所有元素。

[attr~=val]:表示带有以 attr 命名的属性的元素,并且该属性是一个以空格作为分隔的值列表,其中至少一个值为val。

2.子串值属性选择器

[attr|=val] : 选择attr属性的值是val(包括val)或以val-开头的元素。

[attr^=val] : 选择attr属性的值以val开头(包括val)的元素。

[attr$=val] : 选择attr属性的值以val结尾(包括val)的元素。

[attr*=val] : 选择attr属性的值中包含字符串val的元素。

(4)HTML伪类与伪元素选择器

1.链接伪类 注意:link,:visited,:target是作用于链接元素的!

:link 表示作为超链接,并指向一个未访问的地址的所有锚

:visited 表示作为超链接,并指向一个已访问的地址的所有锚

:target 代表一个特殊的元素,它的id是URI的片段标识符

2.动态伪类 注意:hover,:active基本可以作用于所有的元素!

:hover 表示悬浮到元素上

:active 表示匹配被用户激活的元素(点击按住时)

由于a标签的:link和:visited可以覆盖了所有a标签的状态,所以当:link,:visited,:hover,:active同时出现在a标签

身上时 :link和:visited不能放在最后!!!

隐私与:visited选择器

只有下列的属性才能被应用到已访问链接:

color

background-color

border-color

3.表单相关伪类

:enabled 匹配可编辑的表单

:disable 匹配被禁用的表单

:checked 匹配被选中的表单

:focus 匹配获焦的表单

4.结构性伪类

index的值从1开始计数!!!!

index可以为变量n(只能是n)

index可以为even odd

#wrap ele:nth-child(index) 表示匹配#wrap中第index的子元素 这个子元素必须是ele

#wrap ele:nth-of-type(index) 表示匹配#wrap中第index的ele子元素

除此之外:nth-child和:nth-of-type有一个很重要的区别!!

nth-of-type以元素为中心!!!

:nth-child(index)系列

:first-child

:last-child

:nth-last-child(index)

:only-child (相对于:first-child:last-child 或者 :nth-child(1):nth-last-child(1))

:nth-of-type(index)系列

:first-of-type

:last-of-type

:nth-last-type(index)

:only-of-type (相对于:first-of-type:last-of-type 或者 :nth-of-type(1):nth-last-of-type(1))

:not

:empty(内容必须是空的,有空格都不行,有attr没关系)

5.伪元素

::after

::before

::firstLetter

::firstLine

::selection

(5)HTMLcss声明的优先级

1.选择器的特殊性

选择器的特殊性由选择器本身的组件确定,特殊性值表述为4个部分,如    0,0,0,0

一个选择器的具体特殊性如下确定:

1.对于选择器中给定的ID属性值,加 0,1,0,0

2.对于选择器中给定的各个类属性,属性选择,或伪类,加 0,0,1,0

3.对于选择器中的给定的各个元素和伪元素,加0,0,0,1

4.通配符选择器的特殊性为0,0,0,0

5.结合符对选择器特殊性没有一点贡献

6.内联声明的特殊性都是1,0,0,0

7.继承没有特殊性

特殊性 1,0,0,0 大于所有以0开头的特殊性(不进位)

选择器的特殊性最终都会授予给其对应的声明

如果多个规则与同一个元素匹配,而且有些声明互相冲突时,特殊性越大的越占优势

注意:id选择器和属性选择器

div[id="test"](0,0,1,1) 和 #test(0,1,0,0)

2.重要声明

有时某个声明比较重要,超过了所有其他声明,css2.1就称之为重要声明

并允许在这些声明的结束分号之前插入  !important  来标志

必须要准确的放置  !important 否则声明无效。

!important 总是要放在声明的最后,即分号的前面

标志为 !important的声明并没有特殊的特殊性值,不过要与非重要声明分开考虑。

实际上所有的重要声明会被浏览器分为一组,重要声明的冲突会在其内部解决

非重要声明也会被分为一组,非重要声明的冲突也会在其内部解决

如果一个重要声明与非重要声明冲突,胜出的总是重要声明

3.继承

继承没有特殊性,甚至连0特殊性都没有

0特殊性要比无特殊性来的强

4.层叠

找出所有相关的规则,这些规则都包含一个选择器

计算声明的优先级

先按来源排序

在按选择器的特殊性排序

最终按顺序

逆战班

HTML学习分享(一)的更多相关文章

  1. ElasticSearch 5学习(7)——分布式集群学习分享2

    前面主要学习了ElasticSearch分布式集群的存储过程中集群.节点和分片的知识(ElasticSearch 5学习(6)--分布式集群学习分享1),下面主要分享应对故障的一些实践. 应对故障 前 ...

  2. ElasticSearch 5学习(6)——分布式集群学习分享1

    在使用中我们把文档存入ElasticSearch,但是如果能够了解ElasticSearch内部是如何存储的,将会对我们学习ElasticSearch有很清晰的认识.本文中的所使用的ElasticSe ...

  3. MySQL学习分享--Thread pool实现

    基于<MySQL学习分享--Thread pool>对Thread pool架构设计的详细了解,本文主要对Thread pool的实现进行分析,并根据Mariadb和Percona提供的开 ...

  4. JavaScript Shell学习分享

    目录 JavaScript Shell学习分享 简介 安装 使用原因 小结 JavaScript Shell学习分享 简介 JavaScript Shell是由Mozilla提供的综合JavaScri ...

  5. python 学习分享-paramiko模块

    paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Solaris, BS ...

  6. 有关JSOUP学习分享(一)

    其实现在用JSOUP爬虫的也不多了,但是由于最近换公司,做数据爬虫需要用到,就看了下,感觉还是挺好用的,原理什么的感觉和weblogic也差不到哪里去,废话少说,这里就简单的分享下最近接触的干货. J ...

  7. Swagger框架学习分享

    Swagger框架学习分享 转至元数据结尾 Created and last modified by 刘新宇 大约1分钟曾经 pageId=162045803#page-metadata-start& ...

  8. Flink 从0到1学习—— 分享四本 Flink 国外的书和二十多篇 Paper 论文

    前言 之前也分享了不少自己的文章,但是对于 Flink 来说,还是有不少新入门的朋友,这里给大家分享点 Flink 相关的资料(国外数据 pdf 和流处理相关的 Paper),期望可以帮你更好的理解 ...

  9. python paramiko模块学习分享

    python paramiko模块学习分享 paramiko是用python语言写的一个模块,遵循SSH2协议,支持以加密和认证的方式,进行远程服务器的连接.paramiko支持Linux, Sola ...

  10. Techparty-广州Javascript技术专场(学习分享)

    上周末(2016/07/31)去了一个技术沙龙学习前端相关的东西,下面是各个主题我印象比较深的. React + Redux 最佳实践 主题:本次分享,主要从React/Redux相关概念及其工具链, ...

随机推荐

  1. Android学习笔记颜色资源文件

    资源文件目录 颜色资源文件格式 colors.xml <?xml version="1.0" encoding="utf-8"?> <reso ...

  2. Android学习笔记长按事件的处理

    常见的长按事件 代码示例: @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedIns ...

  3. skynet 初步分析

    自己想实现一个tcp 粘包,残包的功能.  先看看一些开源的库是怎么实现的. 首先开启一个线程.使劲的执行: skynet_socket_poll skynet_socket_poll  这个玩意是干 ...

  4. 常见CSS选择器的权重和优先级

    一.常见CSS选择器 [元素选择器] 1.通配选择器:*(匹配所有元素) a.效率不高,页面上的标签越多,效率越低,所以页面上最好不要出现这个选择器 2.标签选择器:li(匹配标签为li的元素) a. ...

  5. Java并发编程(05):悲观锁和乐观锁机制

    本文源码:GitHub·点这里 || GitEE·点这里 一.资源和加锁 1.场景描述 多线程并发访问同一个资源问题,假如线程A获取变量之后修改变量值,线程C在此时也获取变量值并且修改,两个线程同时并 ...

  6. Linux 进程间通信(IPC)总结

    概述 一个大型的应用系统,往往需要众多进程协作,进程(Linux进程概念见附1)间通信的重要性显而易见.本系列文章阐述了 Linux 环境下的几种主要进程间通信手段. 进程隔离 进程隔离是为保护操作系 ...

  7. WeChair项目Beta冲刺(7/10)

    团队项目进行情况 1.昨日进展    Beta冲刺第七天 昨日进展: 前后端并行开发,项目按照计划有条不絮进行 2.今日安排 前端:扫码占座功能和预约功能并行开发 后端:扫码占座后端逻辑开发,编码预约 ...

  8. 05、MyBatis 缓存

    1.MyBatis缓存 MyBatis 包含一个非常强大的查询缓存特性,它可以非常方便地配置和定制.缓存可以极大的提升查询效率. 1).一级缓存 public Employee getEmpById( ...

  9. JS代码简洁之道--函数

    函数的参数越少越好 有一个准则是:如果你的函数参数超过两个,就应该改为对象传入. 这样做是合理的,因为当函数参数超过两个时,参数顺序开始变得难以记忆,而且容易出现一种很尴尬的情况:比如我只需要传入第三 ...

  10. Linux查看docker容器日志

    docker logs -f 容器名或ID | grep fail | more grep fail:过滤包含fail的日志内容