CSS选择器学习小结
关于CSS选择器的问题,在实际项目中,以及一般的前端面试中会经常遇到。下面对此做一小结,梳理和巩固相关方面知识。(如有不妥之处,还望大家及时批评指正,以免误导他人)
一、选择器种类
1、id选择器(#myid);2、类选择器(.myclass);3、标签选择器(div,ul,span);4、相邻兄弟选择器(h1+p);5、子选择器(div>span);6、后代选择器(div span,div.myclass);7、通配符选择器(*);8、属性选择器(input[type="text"]);9、伪类选择器(a:link,input:focus)。
以上9种选择器的使用方法这里不做过多介绍。
二、选择器效率
关于选择器的效率,我们应该记住以下几点:
1、CSS选择器的效率:1>2>3>4>5>6>7>8>9,也就是说id选择器的效率最高,伪类的选择器效率最低。
2、CSS选择器的匹配规则:从右向左,而不是从左向右,因为这样效率要高。
3、在浏览器中,使用id选择器和类选择器比使用相邻兄弟选择器、子选择器和后代选择器对页面性能的提升更值得关注。
三、选择器的优先级
要认识选择器的优先级我们得先认识选择器的特殊性,如下表所示:
选择器 | 特殊性值 |
id选择器 |
0,1,0,0 |
类选择器,属性选择器,伪类选择器 |
0,0,1,0 |
标签选择器,伪元素(:first-letter,:firstline,:before,:after,:selection) |
0,0,0,1 |
相邻兄弟选择器、子选择器和后代选择器 |
拆分为两个选择器再计算 |
通配符 |
0,0,0,0 |
注意:继承没有特殊性,也就是说0特殊性比继承要强;!important重要性比非重要性要强;内联特殊性值为:1,0,0,0(CSS2包含三个值为1,0,0);特殊性值0,0,1,0比0,0,0,13要高。
优先级顺序也就是:important>内联>id选择器>(类选择器,属性选择器,伪类选择器)>(标签选择器,伪元素)>通配符>继承。
优先级的四大原则:
1、继承不如指定
2、#id>.class>标签选择符
3、包含越具体越强大
4、标签#id>#id;标签.class>.class
四大原则权重:1>2>3>4。
CSS选择器学习小结的更多相关文章
- html之css选择器学习
相关内容: 什么是css选择器 标签选择器 类选择器 id选择器 并集选择器(分组选择器) 交集选择器 后代选择器 子标签选择器 属性选择器 相邻兄弟选择器 伪类选择器 伪元素选择器(伪对象选择器) ...
- css选择器学习(一)
1.通用选择器“*”和元素选择器 <!DOCTYPE html> <html lang="en"> <head> <meta charse ...
- CSS 选择器学习总结
1.id 选择器 #idname{color:red;} 2.class选择器 .classname{} 3.标签选择器 div{} 4.通配符选择器 *{} 5. 属性选择器 [id]{ } 5.选 ...
- 记录:CSS选择器学习
常用选择器:标签选择器.类选择器.ID选择器 子选择器(Child selectors) 还有一个比较有用的选择器子选择器,即大于符号(>),用于选择指定标签元素的第一代子元素. .con> ...
- css选择器学习(二)属性选择器
属性选择器 /*******************************************css2中的属性选择器*************************************** ...
- CSS选择器 使用小结
==> .x-boundlist-floating[style$="px;"] .x-boundlist-item 元素中含有Style属性,并且属性值以"px;& ...
- css 选择器 (学习笔记)
参考 http://zachary-guo.iteye.com/blog/605116 1. div+p 选择紧接在 <div> 元素之后的所有 <p> 元素.解释 : fi ...
- XPath、CSS 选择器 -学习地址
http://www.w3school.com.cn/cssref/css_selectors.asp http://www.w3school.com.cn/xpath/xpath_syntax.as ...
- 第七十节,css选择器
css选择器 学习要点: 1.选择器总汇 2.基本选择器 3.复合选择器 4.伪元素选择器 本章主要探讨 HTML5中 CSS选择器,通过选择器定位到想要设置样式的元素.目前CSS选择器的版本已经升 ...
随机推荐
- memcached自启动
# # Source function library. . /etc/rc.d/init.d/functions . /etc/sysconfig/network #[ ${NETWORKING} ...
- Spring 框架中 ModelAndView、Model、ModelMap 的区别
Model Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类. public class ExtendedModelMap extends ModelMa ...
- POJ1179 Polygon
题目:http://poj.org/problem?id=1179 石子合并的升级版.有负值.但运算符只有 + 和 * . 考虑负值对原做法正确性的影响:之所以仅记录最大值可能不对,是因为有可能负数 ...
- Microsoft Dynamics CRM 4.0 Plugin 取值,赋值,查询
DynamicEntity postImageEntity = (DynamicEntity)context.PostEntityImages["PostImage"]; if ( ...
- kafka 安装与配置
下载 地址:https://kafka.apache.org/downloads 这里下载的是kafka_2.11-0.11.0.1.tgz 解压 tar -xzf kafka_2.11-0.11.0 ...
- hadoop入门学习教程--DKHadoop完整安装步骤
使用hadoop版本是DKH标准三节点发行版,DKHadoop版本的易用性比较好,环境部署要简单的多,参考此篇安装前请先下载DKHadoop版本,网盘链接:https://pan.baidu.com/ ...
- 【linux】Linux内存的free的真实含义
- 计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll解决办法
今天开始Python学习之旅,安装配置好Python环境之后,在命令行中输入Python命令,提示“计算机中丢失api-ms-win-crt-runtime-l1-1-0.dll...” 解决办法: ...
- gdb 调试(查看运行时数据) 四
在使用GDB调试程序时,触发断点后,可以使用print命令(简写为p),或是同义命令inspect来查看当前程序的运行数据.print命令的格式是: print <expr> pri ...
- linux 信号处理 六(全)
一.信号及信号来源 信号本质 信号是在软件层次上对中断机制的一种模拟,在原理上,一个进程收到一个信号与处理器收到一个中断请求可以说是一样的.信号是异步的,一个进程不必通过任何操作来等待信号的到达,事实 ...