CSS3 选择器

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CSS3 选择器相关的知识,希望对你有一定的参考价值。

参考技术A

css3中,追加了三个属性选择器分别为:

结构性伪类选择器由两部分构成,一是伪类选择器,一是伪元素选择器。

伪类选择器 ,要注意命名不要与系统定义好的选择器重名,例如link、hover

伪元素选择器 中包含 first-line、first-letter、before、after。

当root和body起冲突时,body就对内容区域生效,在内容区外则是root生效。

格式 :not(selector)

1. first-child 对一个父元素中的 第一个 子元素进行样式的指定

2. last-child 对一个父元素中的 最后一个 子元素进行样式的指定

3. nth-child(positon) 对一个父元素中的 指定序号 的子元素进行样式的指定

4. nth-last-child 对一个父元素中的 指定倒数序号 的子元素进行样式的指定

2)使用nth-of-type(odd)和nth-of-type(even)

1)使用nth-child

2)使用nth-child(an+b),a表示每次循环中,包括几种样式,b表示指定的样式在循环中所处的位置。

only-child选择器,在元素只有一个子元素时,可以代替使用 nth-child(1)/nth-last-child(1) 。

在css3选择器中,除了结构性伪类选择器外,还有一种UI元素状态选择器——只有当元素处于某种状态下才起作用,在默认状态下不起作用。

通过js改变输入框的可输入和不可输入状态,通过css样式改变输入框可输入和不可输入状态时的背景颜色。

用来位于同一个父元素之下的,给与一个子元素平级的另一个子元素设定样式

CSS 选择器

  CSS 通过选择器控制 HTML 元素,CSS 选择器对网页对象可以实现一对一、一对多或者多对一的匹配。

一、选择器的分类

  CSS3 选择器在 CSS2 选择器基础上新增了属性选择器、伪类选择器、过滤选择器,减少了对 HTML 类名或ID名的依赖,避免了对 HTML 结构的干扰,使编写代码更简单轻松。

  根据所获取页面中元素的不同,可以把 CSS 选择器分为 5大类:基本选择器、组合选择器、伪类选择器、伪元素选择器和属性选择器

  其中,伪类选择器又分为6种:动态伪类选择器、目标伪类选择器、语言伪类、UI 元素状态伪类选择器、结构伪类选择器和否定伪类选择器。

二、基本选择器

  基本选择器包括:标签选择器、类选择器、ID 选择器和通配选择器。

  1、标签选择器(元素选择器)

    标签选择器是指用HTML标签名称作为选择器,按标签名称分类,为页面中某一类标签指定统一的CSS样式。标签选择器可以快速、方便地控制页面标签的默认显示效果。

    语法:

标签名属性1:属性值1; 属性2:属性值2; 属性3:属性值3;   或者
元素名属性1:属性值1; 属性2:属性值2; 属性3:属性值3; 

    Tips:标签选择器最大的优点是能快速为页面中同类型的标签统一样式,同时这也是他的缺点,不能设计差异化样式。

  2、类选择器

    类选择器能够为网页对象定义不同的样式,实现不同元素拥有相同的样式,相同元素的不同对象拥有不同的样式。

    语法:类选择器使用“.”(英文点号)进行标识,后面紧跟类名

 

.类名属性1:属性值1; 属性2:属性值2; 属性3:属性值3;               标签调用的时候用 class=“类名”  即可。

 

    Tips:类选择器最大的优势是可以为元素对象定义单独或相同的样式。

     建议:

      •   长名称或词组可以使用中横线来为选择器命名。
      •        不建议使用“_”下划线来命名CSS选择器。
      •        不要纯数字、中文等命名, 尽量使用英文字母来表示。
      •        命名规范,最好见名知意。

    多类名选择器:可以给标签指定多个类名,从而达到更多的选择目的。

    语法:

 

<div class="font14 pink">hello  world!!!</div>

 

    Tips:

      •    样式显示效果跟HTML元素中的类名先后顺序没有关系,受CSS样式书写的上下顺序有关。
      •         各个类名中间用空格隔开。

 

 

  3、ID 选择器

     ID 选择器以井号(#)作为前缀,然后是一个自定义的 ID 名。

     语法:

 

#id名属性1:属性值1; 属性2:属性值2; 属性3:属性值3; 

 

     Tips:id 名即为HTML元素的 id 属性值,大多数HTML元素都可以定义 id 属性,元素的 id 值是唯一的,只能对应于文档中某一个具体的元素

        ID 选择器和类选择器区别:id选择器和类选择器最大的不同在于 使用次数上。ID 只能使用一次,类可以使用多次。 

 

  4、通配选择器

    通配选择器可以来匹配页面中所有的元素,通配选择器是固定的,用星号(*)来表示,是所有选择器中作用范围最广的。

    语法:

*  属性1:属性值1; 属性2:属性值2; 属性3:属性值3; 

 

     Tips实际应用中,这个选择器很少用到。

 

三、组合选择器

四、属性选择器

五、伪类选择器

    伪选择器包括伪类和伪对象选择器,伪选择器以冒号(:)作为前缀标识符。冒号前可以添加选择符,限定伪类应用的范围,冒号后为伪类和伪对象名,冒号前后没有空格,否则将错认为类选择器。

    语法:

a:hover  font-size:18px;

     伪类选择器有两种用法:单纯式和混用式。

      单纯式:在伪选择符前面加上限定的元素即可。

   语法:

a:link  colore:red; 

    混用式:在伪选择符前面加上限定的元素和选择器,把类选择符合伪类选择符组成一个混合式的选择器。

   语法:

a.selected:hover  color:blue; 

  

  1、动态伪类

     动态伪类是一类行为类样式,这些伪类并不存在于 HTML 中,只有当用户与页面进行交互时才能体现出现。动态伪类选择器包括两种形式:

    •  锚点伪类:应用在链接上的常见样式。
 :link      /* 未访问的链接 没有点过的超链接*/
 :visited   /* 已访问的链接 已经点过的超链接*/
 :hover     /* 鼠标移动到链接上 */
 :active    /* 选定的链接 点击不松开的超链接*/

     Tips顺序尽量不能颠倒, 按照 lvha 的顺序

    •    行为伪类:也称为用户操作伪类。

    :hover 和 :active 也别列入到用户行为伪类中

 

:focus      /* 用于元素称为焦点时的样式效果,经常用在表单元素上*/
:hover      /*用于用户把鼠标移动到元素上面的样式效果*/
:active     /* 用于用户单击元素时的样式效果,即按下鼠标左键时发生的样式 */

 

  2、结构伪类 (CSS3 新增)

    结构伪类利用文档结构树实现元素过滤,通过文档结构的相互关系来匹配特定的元素,使文档更加简洁。

    结构伪类:

 1 :first-child;        选择某个元素的第一个子元素
 2 :last-child;         选择某个元素的最后一个子元素
 3 :nth-child();        选择某个元素的一个或多个特定的子元素
 4 :nth-last-child();   选择某个元素的一个或多个特定的子元素,从这个元素的最后一个子元素开始计算
 5 :nth-of-type();      选择指定的元素
 6 :nth-last-type();    选择指定的元素,从元素的最后一个开始计算
 7 :first-of-type;      选择一个上级元素下的第一个同类子元素
 8 :last-of-type;       选择一个上级元素的最后一个同类子元素
 9 :only-child;         选择的元素是它的父元素的唯一一个子元素
10 :only-of-type;       选择一个元素是它的上级元素的唯一一个相同类型的子元素
11 :empty;              选择的元素里面没有任何内容

 

    

      (1):first-child

    (2):last-child

    (3):nth-child()

    (4):nth-last-child()

    (5):nth-of-type()

    (6):nth-last-of-type()

    (7):first-of-type() 和 :last-of-type()

    (8):only-child 和 :only-of-type()

    (9):empty

     3、否定伪类

  4、状态伪类

  5、目标伪类

    目标伪类选择器 :选择器可用于选取当前活动的目标元素。

    语法:

E:target 
  color: red;
  font-size: 30px;

    表示选择匹配 E 的所有元素,且匹配元素被相关 URL 指向。该选择器是动态选择器,只有当存在 URL 指向该匹配元素时,样式效果才能够有效。

    Tips:IE8 及其以下版本不支持 E:target 选择器。

六、伪元素选择器

以上是关于CSS3 选择器的主要内容,如果未能解决你的问题,请参考以下文章

css3选择器怎样选择元素?

CSS3新增的选择器

CSS3样式,基础选择器,复合选择器

[CSS3] 学习笔记-CSS选择器

css3 选择器,选择第二个字母

CSS3中的选择器