探讨浏览器CSS选择器的权重!!!
<!DOCTYPE html>
<html>
<head lang="en"><meta charset="UTF-8"><title>js控制CSS案例</title><!--2.设计样式--><style>#loginSec{width:300px;height: 150px; background-color: #eee;padding: 20px;}input#username,input#pwd{outline: none;border-radius: 10px;/*圆角*/border:1px solid #666;}/*获得焦点的样式*/.fStyle{background-color: #ff9;border: 1px solid #f00;}.bStyle{background-color: #fff;border: 1px solid #666;}</style><!--3.写js来控制CSS--><script>//第二部代码升级//提取公共代码,得到一个函数;-->一门技术jquery//函数名:叫$function $(obj){return document.getElementById(obj);}//获得焦点事件function focusStyle(obj){$(obj).className="fStyle";/* $(obj).style.backgroundColor="#ff9";$(obj).style.borderColor="#f00";*/}//失去焦点事件function blurStyle(obj){$(obj).className="bStyle";/*$(obj).style.backgroundColor="#fff";$(obj).style.borderColor="#666";*/}</script>
</head>
<body><!--1.页内布局--><section id="loginSec"> <!--username它是实际参数-->用户:<input type="text" id="username" οnfοcus="focusStyle('username')" οnblur="blurStyle('username')"/><br/><br/>密码:<input type="password" id="pwd" οnfοcus="focusStyle('pwd')" οnblur="blurStyle('pwd')"/><br/><br/><button id="btnLogin">登陆</button><button id="btnEsc">取消</button></section>
</body>
</html>
出现的问题是边框设置无效,焦点 获得和消失,后来问了下,发现是焦点权重问题,把权重问题给他家分享下。
改成input直接设置,就好了。分享CSS权重几倍知识点如下:
CSS有自己的优先级计算公式,而不仅仅是行间>内部>外部样式;ID>class>元素。
一、样式类型
1、行间
<h1 style="font-size:12px;color:#000;">我的行间CSS样式。</h1>
2、内联
<style type="text/css">h1{font-size:12px;color:#000;} </style>
3、外部
<link rel="stylesheet" href="css/style.css">
二、选择器类型
1、ID #id
2、class .class
3、标签 p
4、通用 *
5、属性 [type="text"]
6、伪类 :hover
7、伪元素 ::first-line
8、子选择器、相邻选择器
三、权重计算规则
- 第一等:代表内联样式,如: style=””,权值为1000。
- 第二等:代表ID选择器,如:#content,权值为0100。
- 第三等:代表类,伪类和属性选择器,如.content,权值为0010。
- 第四等:代表类型选择器和伪元素选择器,如div p,权值为0001。
- 通配符、子选择器、相邻选择器等的。如*、>、+,权值为0000。
- 继承的样式没有权值。
四、比较规则
- 1,0,0,0 > 0,99,99,99。也就是说从左往右逐个等级比较,前一等级相等才往后比。
- 无论是行间、内部和外部样式,都是按照这个规则来进行比较。而不是直观的行间>内部>外部样式;ID>class>元素。之所以有这样的错觉,是因为确实行间为第一等的权重,所以它的权重是最高的。而内部样式可能一般写在了外部样式引用了之后,所以覆盖掉了之前的。
- 在权重相同的情况下,后面的样式会覆盖掉前面的样式。
- 通配符、子选择器、相邻选择器等的。虽然权值为0000,但是也比继承的样式优先。
五、!important
- !important 的作用是提升优先级,换句话说。加了这句的样式的优先级是最高的(比内联样式的优先级还高)。
<style>p{color:red !important;} </style> <p style="color:blue;">我显示红色</p>
- ie7+和别的浏览器对important的这种作用的支持度都很好。只有ie6有些bug
p{color:red !important;color:blue; }//会显示blue
但是这并不说明ie6不支持important,只是支持上有些bug。看下面
p{color:red !important; } p{color:blue; } //这样就会显示的是red。说明ie6还是支持important的。
六、实例
a{color: yellow;} /*特殊性值:0,0,0,1*/div a{color: green;} /*特殊性值:0,0,0,2*/ .demo a{color: black;} /*特殊性值:0,0,1,1*/.demo input[type="text"]{color: blue;} /*特殊性值:0,0,2,1*/.demo *[type="text"]{color: grey;} /*特殊性值:0,0,2,0*/#demo a{color: orange;} /*特殊性值:0,1,0,1*/div#demo a{color: red;} /*特殊性值:0,1,0,2*/<a href="">第一条应该是黄色</a> <!--适用第1行规则--> <div class="demo"><input type="text" value="第二条应该是蓝色" /><!--适用第4、5行规则,第4行优先级高--><a href="">第三条应该是黑色</a><!--适用第2、3行规则,第3行优先级高--> </div> <div id="demo"><a href="">第四条应该是红色</a><!--适用第5、6行规则,第6行优先级高--> </div>
探讨浏览器CSS选择器的权重!!!相关推荐
- 关于CSS选择器的权重计算
CSS选择器的权重计算公式大概如下: 内联样式表的权值最高为 1000: ID 选择器的权值为 100 Class 类选择器.属性选择器.伪类的权值为 10 HTML 元素选择器.伪元素的权值为 1 ...
- CSS选择器的权重详解
在我们开始之前,先搞明白几个概念吧.下面是一段CSS代码: a { border-bottom: 0px; color: #5DB0E6; } a:focus { outline: 1px ...
- css选择器及其权重
1. 类型选择器 <!DOCTYPE html> <html lang="en"> <head><meta charset="U ...
- 【CSS】CSS选择器及其权重
基本选择器 id 选择器 - - - #id {} - - - 唯一标识,只能有一个.尽量少用 id 选择器,影响权重 类名选择器 - - - .class {} - - - class 类名,可以有 ...
- CSS选择器的权重与优先规则
2019独角兽企业重金招聘Python工程师标准>>> 我们在使用CSS对网页元素定义样式时经常会遇到这种情况:要对一般元素应用一般样式,然后在更特殊的元素上覆盖它们.那么我们怎么样 ...
- css选择器优先级权重计算规则
作用: 当多个选择器混合在一起使用时, 我们可以通过计算权重来判断谁的优先级最高 权重大小: 1.内联样式,如: style="...",权值为1000. 2.ID选择器,如:#c ...
- CSS选择器的权重与优先规
我们把特殊性分为4个等级,每个等级代表一类选择器,每个等级的值为其所代表的选择器的个数乘以这一等级的权值,最后把所有等级的值相加得出选择器的特殊值. 4个等级的定义如下: 第一等:代表内联样式,如: ...
- css选择器的优先级和权重问题
CSS选择器的种类: 1.id选择器如:(id="name",id="name_txt)(*name) 2.class选择器(如:class="head&quo ...
- 房子装修工程师CSS(一)之盒子模型/选择器的权重计算/常见样式属性/浮动float
一.盒子模型 (一)CSS盒模型本质上是一个盒子,封装周围的HTML元素,它包括:margin.border.padding.content(width.height). (二)盒子模型分两种: 1. ...
最新文章
- 【微信小程序】之如何创建底部菜单?tabBar、mp-tabbar
- linux命令匹配path顺序,PATH 中的路径先后顺序的问题
- python中常见的流程结构-【Python2】04、Python程序控制结构
- 最小生成树板子-AcWing 858. Prim算法求最小生成树
- 开箱即用Bumblebee独立部署搭建webapi网关详解
- selenium的页面等待
- 职教云python题和答案_智慧职教云课堂Python程序设计基础题目及答案
- 算法提高 求最大值java_算法笔记_096:蓝桥杯练习 算法提高 求最大值(Java)
- H3C SecPath F100-C 防火墙默认配置
- python requests请求失败重试_Python:requests:详解超时和重试
- 核方法也称为核技巧(Kernel method)
- 利用stm32串口中断进行数码管显示
- 电影 1982年少林寺拍摄集锦
- Wireshark、Sniffer 两款网络分析工具的比较
- RabbitMQ使用规范
- 4.3 Matplotlib 图中图
- Ubuntu 老版本下载
- Php运行lpush失败,php苹果推送APNS push常用出错和解决方法
- Web与排版学上的字体问题
- 微信公众号推送多图文消息,直接跳转至外部链接(wxJava)
热门文章
- JDK14性能管理工具:jstack使用介绍
- 这么画c语言编程流程图,我想问一下这两个C语言的流程图像图中这么画吗?
- ActiveMQ的network connectors部署集群(七)
- 洛谷——P1219 八皇后
- 从选秀策略看市场测试
- 四种解法——求子序列的最大连续子序和(普通解法、求和解法、分治法、O(n)级解法)(面试经典题)
- Web应用_Tomcat部署及优化
- shell脚本练习之——形状练习(菱形、直角三角形、等腰三角形、五角星)
- java实现对无符号整数的支持
- js最简单数组去重_js简单数组去重