饥人谷技术博客

CSS选择器

2017-08-01  本文已影响18人  1a659520c6fc
class和id

class类选择器:在html中用class=“name”调用样式,在css中通过类选择器.name{}定义样式,一个标签中可以包含多个类,统一个类也可以出现在不同的标签里,所以类选择器用于多个标签的样式相似或相同时。
id选择器:在html中用id=“name”调用样式,在css中通过id选择器#name{}定义样式,一个标签只能有一个id所以id选择器用在和其它标签没有相似样式的时候。

选择器类型
  1. 基础选择器
  2. 组合选择器
  3. 属性选择器
  4. 伪类选择器
  5. 伪元素选择器
基础选择器
组合选择器
属性选择器
伪类选择器
伪元素选择器
选择器的权重
  1. 在属性后面使用 !important 会覆盖页面内任何位置定义的元素样式
  2. 作为style属性写在元素标签上的内联样式
  3. id选择器
  4. 类选择器
  5. 伪类选择器
  6. 属性选择器
  7. 标签选择器
  8. 通配符选择器
  9. 浏览器自定义
    复杂场景下的选择器优先级在保证以上条件下两个相同类型的选择器权重大于一个相同类型的选择器,但不大于权重靠前的任意选择器

a:link 未被点击的状态
a:visited 被点击后的状态
a:hover 鼠标悬停的状态
a:active 点击过程中的状态
样式覆盖 link是没点击的状态,当点击后visited被声明优先级大于link,当鼠标移到a处hover被声明优先级大于visited,active同理

以下选择器的意思

.header{} 选中id="header" 唯一
.header{} 选中class="header" 可多个
.header .logo{} 选中class="header"下的所有class="logo" 后代选择器
.header.mobile{} 选中选中class="header"且class="mobile"的元素
.header p,.header h3{} 选中class="header"下的所有p和class="header"下的h3(后代+多元素)
#header .nav>li{} 选中id="header"下的class="nav"下的子元素里的所有的li
#header a:hover{} 选中id="header"下a标签并设置hover状态
#header .logo~p{} 选中id="header"下的和class="logo"同级的p
#header input[type="text"]{} 选中id="header"下input标签属性是type值为text的元素

区别

div:first-child意思是div的父元素下的第一个子元素且为div时被选中
div:first-of-type意思是div父元素下的同级别元素中的第一个div被选中
div: first-child(:后面有空格)意思是div元素下的第一个子元素被选中(有空格是后代选择器)
div: first-of-type意思是div元素下同级别元素中相同的第一个被选中

页面输出的效果
<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="ct">下的第一个类为item1的元素就是<p class="item1">,所以aa颜色是红色
.item1:first-of-type选中其父元素<div class="ct">下的不同类型的第一个子元素是<p class="item1">aa</p>和<h3 class="item1">bb</h3>,所以aa和bb的背景色是蓝色

上一篇 下一篇

猜你喜欢

热点阅读