「CSS 」选择器

2018-09-21  本文已影响0人  Rella7

选择器

选择器可被看做表达式,通过它可以选择相应的元素并应用不同的样式。

简单选择器

简单选择器可组合使用。

标签选择器
<div>
  <p>Sample Paragraph</p>
  <p>Sample Paragraph</p>
  <p>Sample Paragraph</p>
</div>

<style type="text/css">
  p {
    color: blue;
  }
</style>
类选择器

.className. 开头,名称可包含字母,数字,-_,但必须以字母开头。它区分大小写并可出现多次。

<div>
  <p>Sample Paragraph</p>
  <p class="special bold">Sample Paragraph</p>
  <p>Sample Paragraph</p>
</div>

<style type="text/css">
  p {
    color: blue
  }
  .special {
    color: orange;
  }
  .bold {
    font-weight: bold;
  }
</style>
id 选择器

#idName# 开头且只可出现一次,其命名要求于 .className 相同。

<div>
  <p id="special">Sample Paragraph</p>
</div>

<style type="text/css">
  #special {
    color: red;
  }
</style>
通配符选择器
<div>
  <p>Sample Paragraph</p>
  <p>Sample Paragraph</p>
</div>

<style type="text/css">
  * {
    color: blue;
  }
</style>
属性选择器

[attr][attr=val] 来选择相应的元素。#nav{...} 既等同于 [id=nav]{...}。IE7+

[attr~=val] 可选用与选择包含 val 属性值的元素,像class="title sports"class="sports".sports{...} 既等同于 [class~=sports]{...} IE7+

[attr|=val] 可以选择val开头及开头紧接-的属性值。IE7+

[attr^=val] 可选择以val开头的属性值对应的元素,如果值为符号或空格则需要使用引号 ""。IE7+

[attr$=val] 可选择以val结尾的属性值对应的元素。IE7+

[attr*=val] 可选择以包含val属性值对应的元素。IE7+

<div>
  <form action="">
    <input type="text" value="Xinyang" disabled>
    <input type="password" placeholder="Password">
    <input type="button" value="Button">
  </form>
</div>
<style type="text/css">
  [disabled] {
    background-color: orange;
  }
  [type=button] {
    color: blue;
  }
</style>
伪类选择器

常用伪类选择器

不常用伪类选择器

NOTE:element:nth-of-type(n) 指父元素下第 n 个 element 元素,element:nth-child(n) 指父元素下第 n 个元素且元素为 element,若不是,选择失败。具体细节请在使用时查找文档

<div>
  <a href="http://sample-site.com" title="Sample Site">Sample Site</a>
</div>
<style type="text/css">
  /* 伪类属性定义有顺序要求! */
  a:link {
    color: gray;
  }
  a:visited {
    color:red;
  }
  a:hover {
    color: green;
    /* 鼠标悬停 */
  }
  a:active {
    color: orange;
    /* 鼠标点击 */
  }
</style>

其他选择器

伪元素选择器

注意与伪类学则器的区分。

组合选择器
选择器分组
<style type="text/css">
/* 下面两组样式声明效果一致 */
h1 {color: red;}
h2 {color: red;}
h3 {color: red;}

h1, h2, h3 {color: red;}
</style>

继承、优先、层级

继承

子元素继承父元素的样式,但并不是所有属性都是默认继承的。通过文档中的 inherited: yes 来判断属性是否可以自动继承。

css-inherit-doc.png

自动继承属性:

非继承属性:

优先

CSS Specificity Calculator 可以在这里找到。更多关于 CSS 优先级别的信息可以在这里找到(英文)。

计算方法:

NOTE:从上到下优先级一次降低,且优先级高的样式会将优先级低的样式覆盖。大致公式(并不准确)如下。

value = a * 1000 + b * 100 + c * 10 + d
改变优先级
层叠

层叠为相同属性根据优先级覆盖,如优先级相同则后面会覆盖前面的属性,而不同属性则会合并。

上一篇下一篇

猜你喜欢

热点阅读