第91天:CSS3 属性选择器、伪类选择器和伪元素选择器

简介: 一、属性选择器其特点是通过属性来选择元素,具体有以下5种形式:1、E[attr] 表示存在attr属性即可;   div[class]2、E[attr=val] 表示属性值完全等于val;   div[class=mydemo]3、E[attr*=val] 表示的属性值里包含val字符并...

一、属性选择器

其特点是通过属性来选择元素,具体有以下5种形式:

1、E[attr] 表示存在attr属性即可;

   div[class]

2E[attr=val] 表示属性值完全等于val

   div[class=mydemo]

3E[attr*=val] 表示的属性值里包含val字符并且在“任意”位置;

     div[class*=mydemo]

4E[attr^=val] 表示的属性值里包含val字符并且在“开始”位置;

      div[class^=mydemo]

5E[attr$=val] 表示的属性值里包含val字符并且在“结束”位置;

  div[class$=demos]

二、伪类选择器

除了以前学过的:link:active:visited:hoverCSS3又新增了其它的伪类选择器。

1、以某元素相对于其父元素或兄弟元素的位置来获取无素的结构伪类。

重点理解通过E来确定元素的父元素

  • E:first-child   第一个子元素
  • E:last-child    最后一个子元素
  • E:nth-child(n)   n个子元素,计算方法是E元素的全部兄弟元素

  div>ul>li:nth-child(3){  //选中第三个li 
           color: deeppink;

}  

E:nth-last-child(n) E:nth-child(n) 相似,只是倒着计算;

div>ul>li:last-child(2){  //选中倒数第二个li
         color: deeppink;

}

 2、 n遵循线性变化,其取值01234... 但是当n<=0时,选取无效

(1) 选中所有的奇数li

   li:nth-child(2n-1){
       color: red;
   }

(2)选中所有的7 的倍数的li

li:nth-child(7n){
      color: red;
    }
 (3)  选中前面五个
   li:nth-child(-n+5){
       color: red;
   }
  (4) 选中后面五个
   li:nth-last-child(-n+5){

 color: red;
   }
   (5)所有的偶数
   li:nth-child(even){
      color:red
   }
  (6) 所有的奇数
   li:nth-child(odd){
      color:blue;
   }

注意:

n可是多种形式:nth-child(2n)nth-child(2n+1)nth-child(-1n+5)等;

E:empty 选中没有任何子节点的E元素;(使用不是非常广泛)

没有任何的子元素,包括空格.

3、目标伪类

E:target 结合锚点进行使用,处于当前锚点的元素会被选中

      <li><a href="#title1">CSS (层叠样式表)</a></li>

  <h2 id="title1">CSS (层叠样式表)</h2>

   h2:target{

    color:red;

  }

三、nth选择器

  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  选择一个上级元素下的第一个同类子元素;
  8.  :last-of-type  选择一个上级元素的最后一个同类子元素;
  9.  :only-child  选择的元素是它的父元素的唯一一个了元素;
  10.  :only-of-type  选择一个元素是它的上级元素的唯一一个相同类型的子元素;
  11.  :empty  选择的元素里面没有任何内容。

四、伪元素选择器

重点:E::beforeE::after

是一个行内元素,需要转换成块元素

E:afterE:before 在旧版本里是伪类,在新版本里是伪元素,新版本下E:afterE:before会被自动识别为E::afterE::before,按伪元素来对待,这样做的目的是用来做兼容处理。

E::first-letter   文本的第一个字母(如中文、日文、韩文等);

案例:首字下沉

E::first-line 文本第一行  文本第一行高亮..

E::selection 可改变选中文本的样式;

":" "::" 区别在于区分伪类伪元素

  关于beforeafter
      CSS2中 E:before或者E:after,是属于伪类的,并且没有伪元素的概念
      CSS3中 提出伪元素的概念 E::beforeE::after,并且归属到了伪元素当中,伪类里就不再存在E:before或者   E:after伪类;

相关文章
|
1月前
|
前端开发 算法 Java
【CSS】前端三大件之一,如何学好?从基本用法开始吧!(二):CSS伪类:UI伪类、结构化伪类;通过伪类获得子元素的第n个元素;创建一个伪元素展示在页面中;获得最后一个元素;处理聚焦元素的样式
伪类:伪类这个叫法源自于它们跟类相似,但实际上并没有类会附加到标记中的标签上。 伪类分为两种(以及新增的伪类选择器): UI伪类:会在HTML元素处于某种状态时(例如:鼠标指针位于连接上),为该元素应用CSS样式。 :hover 结构化伪类:会在标记中存在某种结构上的关系时 例如: 某元素是一组元素中的第一个或最后一个,为该元素应用CSS样式。 :not和:target(CSS3新增的两个特殊的伪类选择器)
135 1
|
前端开发
CSS:高级选择器
CSS:高级选择器
182 1
|
12月前
|
存储 移动开发 前端开发
高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容
本文深入探讨了高效的 HTML 与 CSS 编写技巧,涵盖语义化标签、文档结构优化、CSS 预处理、模块化设计、选择器优化、CSS 变量、媒体查询等内容,旨在提升开发效率、网站性能和用户体验。
332 5
|
前端开发 JavaScript UED
深入理解与应用 CSS 伪类选择器
【10月更文挑战第23天】通过以上对 CSS 伪类选择器的深入探讨,我们可以更好地理解和应用它们,为网页设计和开发带来更丰富、更灵活的样式效果。同时,要注意在实际应用中根据具体情况合理选择和使用伪类选择器,以达到最佳的设计效果和用户体验。
333 2
CSS3 新增伪类有那些
CSS3 引入了多种新伪类,增强了样式控制的灵活性。新增的结构伪类如 `:nth-child(n)` 和 `:first-of-type` 可以根据元素的位置和类型进行选择;状态伪类如 `:enabled` 和 `:checked` 则根据元素的状态进行选择;动态伪类如 `:hover` 和 `:active` 则基于用户的交互行为。这些伪类让样式定制更加多样和强大。
|
前端开发
运用CSS伪类与属性,巧妙实现背景图片旋转效果
运用CSS伪类与属性,巧妙实现背景图片旋转效果
256 0
|
前端开发
CSS常见的选择器
CSS常见的选择器
113 0
|
前端开发
CSS_伪元素_伪类
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.
859 0
|
5月前
|
存储 自然语言处理 前端开发
抖音快手小红书虚拟评论截图生成器,模拟对话制作工具,html+js+css
这是一款纯前端实现的多平台虚拟评论生成器,支持抖音、快手、小红书风格,适用于产品演示与UI设计。采用Vanilla JS与Flexbox布局,利用IndexedDB存储数据,CSS Variables切换主题。
|
5月前
|
存储 前端开发 安全
病历单生成器在线制作,病历单生成器app,HTML+CSS+JS恶搞工具
本项目为医疗病历模拟生成器,旨在为医学教学和软件开发测试提供数据支持,严格遵守《医疗机构病历管理规定》。