CSS选择器

2017-03-23  本文已影响4人  淡然7698

1. class 和 id 的使用场景?

class可以选择多个选择同一类型的元素,方便复用样式
Id具有唯一性,一个id只能匹配一个元素

2. CSS选择器常见的有几种?

基础选择器有ID选择器#id、类选择器.class、通配符选择器*、标签选择器div

ps:更多的可以看阮大的博客
参考

3. 选择器的优先级是怎样的?对于复杂场景如何计算优先级?

①选择器优先级,从高到低:

  1. 在属性后面使用!important会覆盖页面内任何位置定义的元素样式
  2. 作为style属性写在元素标签上的内联样式
  3. id选择器
  4. 类选择器
  5. 伪类选择器
  6. 属性选择器
  7. 标签选择器
  8. 通配符选择器
  9. 浏览器自定义
    ②复杂场景计算权重:
    从 0 开始,一个行内样式 +1000,一个 ID +100,一个属性选择器/class/伪类 +10,一个元素名/伪元素 +1。

相同的权重,以后面出现的选择器为最后规则.
不同的权重,权重值高则生效

4. a:link, a:hover, a:active, a:visited 的顺序是怎样的? 为什么?

正确顺序应为:

  1. a : link
  2. a : visited
  3. a : hover
  4. a : active
    其中,link和visited位置可以互换
    可以简单记为** lv-ha**
    原因:
    1.当选择器优先级别相同时,后定义的会覆盖先定义的
    2.以此类推,当鼠标经过未访问链接,同时有link和hover属性,
    由于后定义的覆盖先定义的,所以hover在后面
    以此类推,当鼠标经过已访问链接,同时有visited和hover属性,
    由于后定义的覆盖先定义的,所以hover在link和visited后面

5. 以下选择器分别是什么意思?

#header{这是一个id选择器
}
.header{这是一个类选择器
}
.header .logo{选择.header类选择器下的.logo
}
.header.mobile{选择同时有.header和.mobile的标签
}
.header p, .header h3{同时选择.header类选择器下到p标签和.header类下的 h3标签
}
#header .nav>li{选择id为header的所有 .nav类选择器的子代li
}
#header a:hover{选择id为#header的a:hover伪类
}
#header .logo~p{选择id为#header后代的.logo相邻的所有p标签
}
#header input[type="text"]{{选择id为#header后代的inpu标签且满足type属性为text
}```
####6. 列出你知道的伪类选择器

>`:active`
向被激活的元素添加样式。
`:focus`
向拥有键盘输入焦点的元素添加样式。
`:hover`
当鼠标悬浮在元素上方时,向元素添加样式。
`:link`
向未被访问的链接添加样式。
`:visite`
向已被访问的链接添加样式。
`:first-child`
向元素的第一个子元素添加样式。
`:lang`
向带有指定 lang 属性的元素添加样式。
>
####7. div:first-child和div:first-of-type的作用和区别
>div:first-child,先找到div元素,看看它是不是父元素的长子(第一个子元素),如果是,那么就匹配之。
div:first-of-type,先找到div元素,看看它是不是父元素的第一种标签类型,如果是,那么匹配之。

####8. 运行如下代码,解析下输出样式的原因。

<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的意思是选择.itemd的第一个子元素 给他一个红色字体属性
所以只有aa变红了
.item1:first-of-type的意思是选择.item的第一个标签类型,给他一个蓝色背景属性
<p class="item1">aa</p> <h3 class="item1">bb</h3>都是.item的第一个标签类型,所以都得到了蓝色背景属性
<h3 class="item1">ccc</h3>一个属性都没得到 所以只有h3的默认属性
**
上一篇下一篇

猜你喜欢

热点阅读