第二章:CSS基础进阶-part1:CSS高级选择器

news2024/12/24 20:45:03

文章目录

  • 一、 组合选择器
  • 二、属性选择器
  • 三、伪类选择器
    • 1、动态伪类选择器
    • 2、状态伪类选择器
    • 3、结构性伪类选择器
    • 4、否定伪类选择器

一、 组合选择器

  • 后代选择器:E F
  • 子元素选择器: E>F
  • 相邻兄弟选择器:E+F
  • 群组选择器:多个选择器以逗号隔开(selector1,selector2,…)

二、属性选择器

  • 属性选择器:E[attr],E[attr=“value”], E[attr~=“value”]
    • CSS 属性选择器通过已经存在的属性名或属性值匹配元素
      在这里插入图片描述
      在这里插入图片描述
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
    <title>Document</title>
    <style>
      /* 后代选择器 */
      .section1 .first{
        color: pink;
      }
      /* 子元素选择器 */
      .section1>.second{
        color: blue;
      }
      /* 相邻兄弟选择器 */
      .second+.third{
        color: purple;
      }
      /* 群组选择器 */
      .first,.second,.third{
        font-size: 16px;
      }
      /* -------------- */
      /* 属性选择器 */
      .input1[type="text"]{
        color:green
      }
      /* a标签以.md结尾 */
      a[href$='.md']{
        color: pink;
      }
      /* a标签以http开头 */
      a[href^='http']{
        color: yellow;
      }
      /* a标签title属性有连接符且以on开头 */
      a[title|='on']{
        color: red;
      }
    </style>
  </head>
  <body>
    <section class="section1">
      <h1>组合选择器</h1>
      <p class="first">first</p>
      <p class="second">second</p>
      <div class="third">third</div>
    </section>
    <section class="section2">
      <input class="input1" type="text" value="input1">
      <a href="test.md">link1</a>
      <a href="http://www.baidu.com">link2</a>
      <a href="https://www.baidu.com" title="on-click">有连接符以on开头</a>
    </section>
  </body>
</html>

三、伪类选择器

  • 伪类选择器(简称:伪类)通过冒号来定义,它定义了元素的状态,如点击按下,点击完成等,通过伪类可以为元素的状态修改样式。
  • 伪类的功能和一般的DOM中的元素样式相似,但和一般的DOM中的元素样式不样,它并不改变任何DOM内容。只是插入了一些修饰类的元素,这些元素对于用户米说是可见的,但是对于DOM米说不可见。伪类的效果可以通过添加一个实际的类来达到。
  • 分类:
  • 动态伪类选择器
  • UI元素状态伪类选择器
  • 结构伪类选择器
  • 否定伪类选择器

1、动态伪类选择器

  • ·E:link (链接伪类选择器): 选择匹配的E元素,且匹配元素被定义了超链接并未被访问过。常用于链接描点上
  • E:visited(链接伪类选择器 ):选择匹配的E元素,且匹配元素被定义了超链接并已被访问过。常用于链接描点上
  • E:active(用户行为选择器):选择匹配的E元素,且匹配元素被激活。常用于链接描点上
  • E:hover (用户行为选择器): 选择匹配的E元素,且用户鼠标停留在元素E上
  • E:focus (用户行为选择器):选择匹配的E元素,且匹配元素获取焦点

a标签有4种含糊(对应四种状态),如下:

  • :link“链接”:超链接点击之前
  • :visited“访问过的”:链接被访问过之后
  • :hover“悬停”:鼠标放到标签上的时候
  • :active“激活”:鼠标点击标签,但是不松手时。
    在这里插入图片描述

2、状态伪类选择器

  • E:checked(选中状态伪类选择器):匹配选中的复选按钮或者单选按钮表单元素
  • E:enabled(启用状态伪类选择器):匹配所有启用的表单元素
  • E:disabled(不可用状态伪类选择器):匹配所有禁用的表单元素
    在这里插入图片描述

3、结构性伪类选择器

以下,E代表子元素,

  • E:fisrt-child :作为父元素的第一个子元素的元素E。
  • E:last-child :作为父元素的最后一个子元素的元素E。
  • E:root:选择匹配元素E所在文档的根元素。在HTML文档中,根元素始终是html,此时该选择器与htmI类型选择器匹配的内容相同
  • E F:nth-child(n): 选择父元素E的第n个了元素F。
    • ·n可以是整数 (1,2,3)、关键字 (even,odd)、可以是公式(2n+I)·
    • n值起始值为1,而不是0
  • E F:nth-last-child(n): 选择父元素E的倒数第n个子元素F
  • E:nth-of-type(n):选择父元素内具有指定类型的第n个E元素
  • 以下不常用
  • E:nth-last-of-type(n):选择父元素内具有指定类型的倒数第n个E元素
  • E:first-of-type:选择父元素内具有指定类型的第一个E元素
  • E:last-of-tye : 选择父元素内具有指定类型的最后一个E元素
  • E:only-child :选择父元素只包含一个子元素,且该子元素匹配E元素
  • E:only-of-type: 选择父元素只包含一个同类型子元素,且该子元素匹配E元素
  • E:empty: 选择没有子元素的元素,而且该元素也不包含任何文本节点

nth-child和nth-of-type的区别

  • :nth-child(n) 选择器匹配属于其父元素的第 N 个子元素,不论元素的类型,n 可以是数字、关键词或公式。
  • :nth-of-type(n) 选择器匹配属于父元素的特定类型的第 N 个子元素的每个元素,n 可以是数字、关键词或公式。
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    /* 结构选择器 p元素匹配的父元素内为奇数子元素背景改青色 */
    p:nth-child(odd){
      background: cyan;
    }
    /* p元素匹配的父元素内为奇数的P标签字体改红色 */
    p:nth-of-type(odd){
      color: red;
    }
  </style>
</head>
<body>
  <div class="parent">
    <p>1-p,1-child</p>
    <p>2-p,2-child</p>
    <div>3-div,3-child</div>
    <p>3-p,4-child</p>
    <p>4-p,5-child</p>
  </div>
</body>
</html>

4、否定伪类选择器

  • E:not(F):匹配所有除元素F外的E元素
    • 例:对form中所有input加边框,但又不想submit也起变化,:input:not([type="submit"]) [border: 1px solid red;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/861571.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

模板的进阶

目录 1.非类型模板参数 2.模板特化 2.1概念 2.2函数模板特化 2.3类模板特化 2.3.1全特化 2.3.2偏特化 3.模板分离编译 3.1什么是分离编译 3.2 模板的分离编译 3.3解决方法 4. 模板总结 1.非类型模板参数 模板参数分类类型形参与非类型形参。 类型形参即&#xff1a…

smtplib.SMTPHeloError: (500, b‘Error: bad syntax‘)

如果你编写邮件收发工具的时候,有可能会遇到这个问题。这里直接给出解决办法。 目录 1、检查系统版本 2、点击右侧的更改适配器选项

Nginx负载均衡(重点)

正向代理 部署正向代理 server { listen 80; server_name localhost; #charset koi8-r; #access_log logs/host.access.log main; location / { root html; index index.html index.htm; proxy_pass http://20.0.0.60:80…

【雕爷学编程】Arduino动手做(05)---热敏电阻传感器模块之热电效应的原理以及相关应用

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

SD-MTSP:光谱优化算法LSO求解单仓库多旅行商问题MATLAB(可更改数据集,旅行商的数量和起点)

一、光谱优化算法LSO 光谱优化算法&#xff08;Light Spectrum Optimizer&#xff0c;LSO&#xff09;由Mohamed Abdel-Basset等人于2022年提出。 参考文献&#xff1a; [1]Abdel-Basset M, Mohamed R, Sallam KM, Chakrabortty RK. Light Spectrum Optimizer: A Novel Physi…

list的使用和模拟实现

目录 1.list的介绍及使用 1.1 list的介绍 1.2 list的使用 1.2.1 list的构造 1.2.2 list iterator的使用 1.2.3 list capacity 1.2.4 list element access 1.2.5 list modifiers 2.为什么使用迭代器&#xff1f; 3.list的模拟实现 3.1完整代码 3.2代码解析 4.list与…

MySQL索引优化分析

MySQL索引优化分析 为什么你写的sql查询慢&#xff1f;为什么你建的索引常失效&#xff1f;通过本章内容&#xff0c;你将学会MySQL性能下降的原因&#xff0c;索引的简介&#xff0c;索引创建的原则&#xff0c;explain命令的使用&#xff0c;以及explain输出字段的意义。助你…

Servlet介绍

1.简介 Servlet是JavaWeb最为核心的内容&#xff0c;它是Java提供的一门动态web资源开发技术。 使用Servlet就可以实现&#xff0c;根据不同的登录用户在页面上动态显示不同内容。 Servlet是JavaEE规范之一&#xff0c;其实就是一个接口&#xff0c;将来我们需要定义Servlet类…

C++小游戏贪吃蛇源码

graphics.h是针对DOS下的一个C语言图形库 (c也可以) 目前支持下载此头文件的常用的有两种: 1. EGE (Easy Graphics Engine)2. EasyX Graphics LibraryEGE, 全名Easy Graphics Engine, 是windows下的简易绘图库&#xff0c;是一个类似BGI(graphics.h)的面向C/C语言新手的图形库…

win10+Vmware+ubuntu18 mosquitto调试记录

记录一下在建立mqtt调试环境上遇到的问题及对策。 我的PC环境为&#xff0c;win10为办公环境&#xff0c;Vmware虚拟机安装ubuntu18&#xff0c;虚拟机主要用来进行代码编译&#xff0c;建立mosquitto server测试环境。 1. ubuntu 安装mosquitto 安装mosquitto网上很多教程&…

CDN(内容分发网络)

CDN的全称是 Content Delivery Network, 即内容分发网络。CDN是构建在现有网络基础之上的智能虚拟网络&#xff0c;依靠部署在各地的边缘服务器&#xff0c;通过中心平台的负载均衡、内容分发、调度等功能模块&#xff0c;使用户就近获取所需内容&#xff0c;降低网络拥塞&a…

音乐播放器应用——Android开发组件化实例分析

组件化技术在Android开发中扮演着重要的角色&#xff0c;它能够将一个庞大的应用拆分成多个独立的组件&#xff0c;每个组件都可以独立开发、测试和维护。本文将深入探讨组件化技术的认知、优势以及搭建过程&#xff0c;并通过代码示例解析组件化实例分析。最后&#xff0c;我们…

C++:类与对象(下)- this指针、(拷贝)构造函数、析构函数、复制运算符重载

目录 一、 this指针 1.1 引入 1.2 问题 1.3 特性 二、 构造函数 2.1 概念 2.2 特性 2.3 语法 2.4 注意点 三、 析构函数 3.1 概念 3.2 特性 3.3 示例 四、拷贝构造函数 4.1 概念 4.2 特性 4.3 示例 4.4 深浅拷贝 五、 赋值运算符重载 5.1 概念 5.2 语法 5…

10-数据结构-队列(C语言)

队列 目录 目录 队列 一、队列基础知识 二、队列的基本操作 1.顺序存储 ​编辑 &#xff08;1&#xff09;顺序存储 &#xff08;2&#xff09;初始化及队空队满 &#xff08;3&#xff09;入队 &#xff08;4&#xff09;出队 &#xff08;5&#xff09;打印队列 &…

编写一个指令(v-focus2end)使输入框文本在聚焦时焦点在文本最后一个位置

项目反馈输入框内容比较多时候&#xff0c;让鼠标光标在最后一个位置&#xff0c;心想什么奇葩需求&#xff0c;后面试了一下&#xff0c;是有点影响体验&#xff0c;于是就有了下面的效果&#xff0c;我目前的项目都是若依的架子&#xff0c;用的是vue2版本。vue3的朋友想要使…

什么是POP3协议?

POP3&#xff08;Post Office Protocol Version 3&#xff09;是一个用于从电子邮件服务器获取邮件的应用层协议。以下是关于POP3的详细解释&#xff1a; 基本操作&#xff1a;使用POP3&#xff0c;电子邮件客户端可以从邮件服务器上下载电子邮件&#xff0c;并将其保存在本地。…

Unity制作护盾——3、蜂窝晶体护盾

Unity制作晶格护盾 大家好&#xff0c;我是阿赵。 继续来做护盾&#xff0c;这一期做一个蜂窝晶体护盾的效果。 一、效果展示 这个晶体护盾的特点是&#xff0c;整个护盾是由很多五边形和六边形的晶体构成&#xff0c;每一块晶体的颜色都在不停的变化&#xff0c;然后每一块晶…

使用 Spring Boot 发送电子邮件(SMTP 集成)

本文探讨了 Spring Boot 与 SMTP 的集成以及如何从您自己的 Spring Boot 应用程序发送电子邮件。 本文探讨如何从您自己的Spring Boot应用程序发送电子邮件。 是的&#xff0c;您可以拥有专用的 REST API&#xff0c;它接受电子邮件发送者和接收者的电子邮件地址、主题…

【雕爷学编程】Arduino动手做(05)---热敏电阻模块之的基本参数、模块特色、电原理与使用说明

37款传感器与模块的提法&#xff0c;在网络上广泛流传&#xff0c;其实Arduino能够兼容的传感器模块肯定是不止37种的。鉴于本人手头积累了一些传感器和执行器模块&#xff0c;依照实践出真知&#xff08;一定要动手做&#xff09;的理念&#xff0c;以学习和交流为目的&#x…

SpringBoot 整合Druid

集成Druid Druid简介 Java程序很大一部分要操作数据库&#xff0c;为了提高性能操作数据库的时候&#xff0c;又不得不使用数据库连接池。 Druid 是阿里巴巴开源平台上一个数据库连接池实现&#xff0c;结合了 C3P0、DBCP 等 DB 池的优点&#xff0c;同时加入了日志监控。 D…