问答
- CSS选择器常见的有几种?
id选择器
#idName {}
类选择器
.className {}
标签选择器
p {}
通配
* {}
包含选择器
E F
子选择器
E>F
相邻选择器
E+F
兄弟选择器
E~F
属性选择器
E[atl]
属性值选择器
E[atl="val"]
- 选择器的优先级是怎样的?
简单的就是 通配选择器<标签选择器<类选择器<id选择器
选择器 | 特殊性 | 以10为基础的特殊性 |
---|---|---|
style="" | 1,0,0,0 | 1000 |
#wrapper #content {} | 0,2,0,0 | 200 |
#content .datePosted {} | 0,1,1,0 | 110 |
div#content {} | 0,1,0,1 | 101 |
#content {} | 0,1,0,0 | 100 |
p.content .datePosted {} | 0,1,1,0 | 21 |
#content {} | 0,1,1,0 | 11 |
div p {} | 0,1,1,0 | 2 |
p {} | 0,1,1,0 | 1 |
值越大优先级越高
- class 和 id 的使用场景?
class 复用性高
<!doctype html>
<html lang="en" >
<head>
<meta charset="utf-8">
<title>Document</title>
<style type="text/css">
.box{
display: inline-block;
width: 50px;
height: 50px;
border: 1px red solid;
}
</style>
</head>
<body>
<div class="box"></div>
<div class="box"></div>
<div class="box"></div>
</body>
</html>
id 具有唯一性 方便js操作
<!doctype html>
<html lang="en" >
<head>
<meta charset="utf-8">
<title>Document</title>
<style type="text/css">
.box{
overflow: hidden;
display: inline-block;
width: 50px;
height: 50px;
border: 1px red solid;
}
</style>
<script type="text/javascript">
window.onload=function () {
var oP=document.getElementById('p1');
oP.innerHTML="321";
}
</script>
</head>
<body>
<div class="box"><p id="p1">123</p></div>
<div class="box"></div>
<div class="box"></div>
</body>
</html>
- 使用CSS选择器时为什么要划定适当的命名空间?
1 方便看 比如.head nav 就能知道是头部的导航栏
2 可以重复利用
- 以下选择器分别是什么意思?
#header{
}
.header{
}
.header .logo{
}
.header.mobile{
}
.header p, .header h3{
}
#header .nav>li{
}
#header a:hover{
}
####### header
选择id为header的元素
.header
选择class为header的元素
.header .logo
选择class为header元素下class为logo的元素
.header.mobile
选择class为header moblie的元素或者是moblie header的元素
.header p, .header h3
选择class为header元素下的所有p、h3标签
#header .nav>li
选择id为header元素下class为nav元素下的直接子li标签
####### header a:hover
选择id为header下的a标签的hover(鼠标悬停)状态
- 列出你知道的伪类选择器
a标签伪类速记love hate
选择符 | 版本 | 描述 |
---|---|---|
E:link | css1 | 设置超链接a在未访问前的样式 |
E:visited | css1 | 设置超链接a在其链接地址已被访问过的样式 |
E:hover | css1/2 | 设置元素在其鼠标悬停时的样式 |
E:active | css1/2 | 设置元素在被用户激活(在鼠标点击与释放之间发生的事件)时的样式 |
E:focus | css1/2 | 设置元素在成为输入焦点(该元素的onfocus事件发生)时的样式 |
E:lang(fr) | css2 | 匹配使用特殊语言的E元素 |
E:not(s) | css3 | 匹配不含有s选择符的元素E |
E:root | css3 | 匹配E元素在文档的根元素 |
E:first-child | css2 | 匹配父元素的第一个子元素E |
E:last-child | css2 | 匹配父元素的最后一个子元素E |
E:only-child | css3 | 匹配父元素仅有的一个子元素E |
E:nth-child(n) | css3 | 匹配父元素的第n个子元素E |
E:nth-last-child(n) | css3 | 匹配父元素的倒数第n个子元素E |
E:first-of-type | css3 | 匹配同类型中的第一个同级兄弟元素E |
E:last-of-type | css3 | 匹配同类型中的最后一个同级兄弟元素E |
E:only-child | css3 | 匹配同类型中的唯一的一个同级兄弟元素E |
E:nth-of-type(n) | css3 | 匹配同类型中的第n个同级兄弟元素E |
E:nth-last-of-type(n) | css3 | 匹配同类型中的倒数第n个同级兄弟元素E |
E:empty | css3 | 匹配没有任何子元素(包括text节点)的元素E |
E:checked | css3 | 匹配用户界面上处于选中状态的元素E。(用于input type为radio与checkbox时) |
E:enabled | css3 | 匹配用户界面上处于可用状态的元素E |
E:disabled | css3 | 匹配用户界面上处于禁用状态的元素E |
E:target | css3 | 匹配相关URL指向的E元素 |
E:@page:first | css2 | Pseudo-Classes Selectors index设置页面容器第一页使用的样式。仅用于@page规则 |
E:@page:lest | css2 | Pseudo-Classes Selectors index设置页面容器位于装订线左边的所有页面使用的样式。仅用于@page规则 |
E:@page:right | css2 | Pseudo-Classes Selectors index设置页面容器位于装订线右边的所有页面使用的样式。仅用于@page规则 |
- :first-child和:first-of-type的作用和区别
E:first-child 匹配的是父级元素下一个E元素(如果是第二个就无效)
E:first-of-type匹配同级兄弟E元素(只要有E元素就会匹配到第一个)
p:first-child{color:red;}
<body>
<p>可以匹配到</p>
</body>
可以匹配到p元素
p:first-child{color:red;}
<body>
<span>span1<span>
<p>无法匹配到</p>
</body>
无法匹配到p元素
p:first-of-type
<body>
<span>span1<span>
<p>可以匹配到</p>
<p>第二个p不可以匹配到</p>
</body>
可以匹配到第一个p元素
p:first-of-type
<body>
<p>可以匹配到</p>
<p>第二个p不可以匹配到</p>
</body>
可以匹配到p元素
- 运行如下代码,解析下输出样式的原因。
<style>
.item1:first-child{
color: red;
}
.item1:first-of-type{
background: blue;
}
</style>
<div class="ct">
<p class="item1">aa</p>
<h3 class="item1">bb</h3>
<h3 class="item1">ccc</h3>
</div>
.item1:first-child{}
匹配到div中 第一个class为item1的p元素 aa变成红色
.item1:first-of-type{}
匹配到class为item1的p元素和h3元素中的第一个 aa和bb背景色为蓝色
- text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中
作用是居中
作用在块级元素上
可以上行内元素元素居中(可以设置文字 图片 和行内元素的居中)
- 如果遇到一个属性想知道兼容性,在哪查看?
http://caniuse.com/ 可以查看
本教程版权归菲龍探雲和饥人谷所有,转载须说明来源