class 和 id 的使用场景?
- id 指定标签的唯一标识
例如 <div id = "wrap">
使用场景:
①根据提供的唯一id号,快速获取标签对象。如:document.getElementById(id),或者通过# id{ }控制样式
②用于充当label标签for属性的值:示例:<label for='userid'>用户名:</label>,表示单击此label标签时,id为userid的标签获得焦点。
特性:id值在一个html内唯一 - class 指定标签的类名
例如 <div class="wrap">
使用场景:
CSS操作,把一些特定样式放到一个class类中,需要此样式的标签,可以在添加此类。
CSS选择器常见的有几种?
主要有这么几种常见的
根据W3C文档的选择器大全
http://www.w3school.com.cn/cssref/css_selectors.asp
选择器的优先级是怎样的?对于复杂场景如何计算优先级?
css 优先级一般情况可以用这个
面对复杂情况 有以下的几个概念
若愚老师讲的 a b c d 概念相同
选择器的优先权(取自css权威指南) 记录下 P70
内联样式表的权值最高 1000,加1,0,0,0;(a )
ID 选择器的权值为 100,加0,1,0,0 ; ( b )
Class 类选择器的权值为 10,加0,0,1,0 (包括伪类) ( c )
HTML 标签选择器的权值为 1 ,加0,0,0,1(包括伪元素)( d )
CSS 优先级法则:
A 选择器都有一个权值,权值越大越优先,所以相加起来最大的就最优先了;
B 当权值相等时,后出现的样式表设置要优于先出现的样式表设置;
C 创作者的规则高于浏览者:即网页编写者设置的CSS 样式的优先权高于浏览器所设置的样式;
D 继承的CSS 样式不如后来指定的CSS 样式;
E 在同一组属性设置中标有“!important”规则的优先级最大;
a:link, a:hover, a:active, a:visited 的顺序是怎样的? 为什么?
http://www.cnblogs.com/x_wukong/archive/2013/10/03/3349976.html
记录 在《css权威指南》一书中P80页
未点击链接前,link伪类长期处于激活状态,鼠标悬停(或点击)时,a链接同时处于link和hover(或active)状态,由于它们特指度相同,
在同时激活的情况下,后出现的伪类样式会覆盖前面的伪类样式,故link状态必须写在hover(或active)之前。
再讨论hover和active的顺序,若把hover放在active后面,当点击链接一瞬,实际你在激活active状态的同时触发了hover伪类,hover在后面覆盖了active的颜色,所以无法看到active的颜色。故hover在active之前
其次,若把visited放在hover后面,那已访问过的链接一直触发着visited伪类,会覆盖hover样式。
最后,其实link、visited两个伪类之间顺序无所谓。(因为它俩不可能同时触发,即又未访问同时又已访问。)
顺序: a:link , a:visited , a:hover , a: active
以下选择器分别是什么意思?
// #header{
}
控制id名为header的元素样式
.header{
}
控制所有类名为header的元素样式
.header .logo{
}
后代选择器,控制所有类名为header下的所有的类名为logo的元素样式
.header.mobile{
}
类选择器,匹配class="header mobile"的元素
.header p, .header h3{
}
多元素选择器,控制class="header"元素的所有后代元素标签为p元素和h3元素的样式
// #header .nav>li{
}
多元素选择器,控制id="header"的元素的后代class="nav"元素的直接后代li元素的样式
// #header a:hover{
}
伪类选择器,控制id="header"元素的后代a元素鼠标悬浮在其表面时的样式
// #header .logo~p{
}
控制id="header"元素下的后代class="logo"的元素之后的同级元素p的样式
// #header input[type="text"]{
}
控制id="header"元素下的后代元素属性带有和匹配[type="text"]的input标签的样式
列出你知道的伪类选择器
div:first-child、div:first-of-type、div :first-child和div :first-of-type的作用和区别 (注意空格的作用)
div:first-child 匹配父元素下,作为第一个子元素的div元素
div:first-of-type 匹配父元素的子元素中,第一个div元素
div :first-child 匹配所有div元素内所有元素中属于其父元素的首个子元素 div :first-of-type 匹配所有div元素内所有元素中属于其父元素的首个类型的子元素
运行如下代码,解析下输出样式的原因
运行结果
.item1:first-child 匹配class="item1"的所有元素的父元素下的第一个元素,在这里父元素是class="ct"的div,这个div下的第一个元素是class="item1"的p标签,样式控制是字体变红,所以aa会变红,其他不变
.item1:first-of-type 匹配class="item1"的元素的父元素下的所有相同样式的第一个元素,这里class="ct"的div下有p和h3两种元素,匹配相同样式的第一种,所有第一个p和第一个h3的样式改变,背景变蓝色
记下比较容易忘记的选择器:
附上实验的例子
http://js.jirengu.com/gaxeyeteku/2/edit