饥人谷技术博客

CSS选择器

2016-08-19  本文已影响0人  饥人谷_吴亚敏
CSS选择器常见的有几种?
  1. 基础选择器
  1. 组合选择器
  1. 属性选择器
  1. 伪类选择器
  1. 伪元素选择器
选择器的优先级是怎样的?

从高到低分别是

  1. 在属性后面使用 !important会覆盖页面内任何位置定义的元素样式
  2. 作为style属性写在元素标签上的内联样式
  3. id选择器
  4. 类选择器
  5. 伪类选择器
  6. 属性选择器
  7. 标签选择器
  8. 通配符选择器
  9. 浏览器自定义

CSS规则由多个选择器组成时,我们可以做个简单的加法运算,id选择器的权值为1000,class选择器为100,标签选择器为10,按权值求和的高低就能得知哪个优先级高。还有一种情况,当权值相同时,谁更具体用谁,也就是权值高的选择器作用的越具体优先级越高。当两个选择器规则和权值都是一样,后面样式会覆盖前面的。

class 和 id 的使用场景?

W3C标准这样规定的,在同一个页面内,不允许有相同名字的id对象出现,但是允许相同名字的class。这样,一般网站分为头,体,脚部分,因为考虑到它们在同一个页面只会出现一次,所以用id,其他的,比如说你定义了一个颜色为red的class,在同一个页面也许要多次用到,就用class定义。另外,当页面中用到js或者要动态调用对象的时候,要用到id,所以要根据自己的情况运用。

使用CSS选择器时为什么要划定适当的命名空间?

提高代码可读性,方便后期维护和调试。

以下选择器分别是什么意思?
#header{}  /*匹配id="header"的元素*/
.header{}  /*匹配class="header"的元素*/
.header .logo{}  /*匹配class="header"的元素后代中class="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元素的:hover伪类*/
列出你知道的伪类选择器
:first-child和:first-of-type的作用和区别

:first-child 匹配的是某父元素的第一个子元素,可以说是结构上的第一个子元素。
:first-of-type 匹配的是该类型的第一个,类型是指什么呢,就是冒号前面匹配到的东西,比如 p:first-of-type,就是指所有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定义了aa为红色字体。因为:first-child只匹配首个子元素
.item1:first-of-type定义了aa和bb的背景为蓝色。因为:first-of-type匹配子元素该类型的第一个,aa为第一个P,bb为第一个h3

text-align: center的作用是什么,作用在什么元素上?能让什么元素水平居中。

text-align: center的作用是让块级元素中的内容水平居中,只能用于块级元素。

如果遇到一个属性想知道兼容性,在哪查看?

Can I use
 
 
 
 
本教程版权归作者和饥人谷所有,转载须说明来源!

上一篇 下一篇

猜你喜欢

热点阅读