CSS选择器

2017-09-13  本文已影响0人  饥人谷_鸭脖
  1. class 和 id 的使用场景?
    id用来指定标签的唯一标识
    应用场景:
  1. CSS选择器常见的有几种?
  1. 选择器的优先级是怎样的?对于复杂场景如何计算优先级?
    从高到低依次:
  1. a:link, a:hover, a:active, a:visited 的顺序是怎样的? 为什么?
    a:link - 普通的、未被访问的链接
    a:visited - 用户已访问的链接
    a:hover - 鼠标指针位于链接的上方
    a:active - 链接被点击的时刻
    a:hover 必须位于 a:link 和 a:visited 之后
    a:active 必须位于 a:hover 之后
    一般这样定义:
    a:link { } a:visited { } a:hover { } a:active { }

大家知道最后声明的CSS代码效果要覆盖先前声明的代码的效果尽管每一个伪类看起来类似于一个不同的选择器,其实它们都是对链接的不同状态的样式的定义,可以认为它们是相同的选器,是可以相互覆盖,也就是说这几个伪类之间也是遵循上面所说的优先级原则的.

因为链接被点击之后 a:visited所声明的样式就会生效,当把鼠标放到链接之上或者当鼠标指针在链接之上并且按下鼠标键的时候a:hover或者a:active所声明的样式会被a:visited所覆盖.

为了正确的显示链接样式效果,我们可以遵循这样的原则,只要a:visited位于a:hover和a:active之前就可以实现正确的效果,但是有时候我们还是需要遵循以下一个大家共识的顺序:a:link、a:visited、 a:hover、 a:active,因为有些浏览器对a:hover的支持并不好。可能大家对顺序记忆起来比较难,那就看它们的首字母:LVHA

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

#header{
/* id为header的元素 */
}

.header{
/* class为header的元素 */
}

.header .logo{
/* class为header的后代中class为logo的元素 */
}

.header.mobile{
/* class同时包含header和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元素在鼠标悬停时 */
}

#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-child 指得是div后代中的第一个子元素
div:first-of-type 指得是一个div元素, 它是其父元素下的第一个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>

结果:

结果.png

.item1:first-child 指的是class为item1的父元素下的第一个class='item1'的元素, 为第一个p标签
.item1:first-of-type 指的是class为item1的父元素下的每类标签的第一个, 匹配到了第一个<p>,第一个<h3>元素

上一篇 下一篇

猜你喜欢

热点阅读