什么是CSS 选择器?都有哪些?

写在前面

CSS 选择器是 CSS 样式表中最重要的部分之一。它们允许你精确地选择 HTML 文档中的元素,并应用样式。理解和掌握 CSS 选择器是成为一名优秀的前端开发者的关键。

基本选择器

  1. 元素选择器:选择特定的 HTML 元素。例如,p 选择器将选择所有的 <p> 元素。

    p {color: blue;
    }
    
  2. 类选择器:选择具有特定类名的元素。例如,.my-class 选择器将选择所有具有 my-class 类名的元素。

.my-class {
font-size: 18px;
}


3. **ID 选择器**:选择具有特定 ID 的元素。例如,`#my-id` 选择器将选择具有 `my-id` ID 的元素。```css
#my-id {background-color: yellow;
}
  1. 通配符选择器:选择所有元素。例如,* 选择器将选择文档中的所有元素。

    * {margin: 0;padding: 0;
    }
    

组合选择器

  1. 后代选择器:选择某个元素的所有后代元素。例如,div p 选择器将选择所有在 <div> 元素内的 <p> 元素。

    div p {line-height: 1.5;
    }
    
  2. 子元素选择器:选择某个元素的直接子元素。例如,ul > li 选择器将选择所有直接在 <ul> 元素内的 <li> 元素。

    ul > li {list-style: none;
    }
    
  3. 相邻兄弟选择器:选择紧跟在某个元素后面的兄弟元素。例如,p + span 选择器将选择所有紧跟在 <p> 元素后面的 <span> 元素。

    p + span {font-weight: bold;
    }
    
  4. 一般兄弟选择器:选择某个元素后面的所有兄弟元素。例如,p ~ span 选择器将选择所有在 <p> 元素后面的 <span> 元素。

    p ~ span {color: red;
    }
    

属性选择器

  1. 存在和值选择器:选择具有特定属性或属性值的元素。例如,[href] 选择器将选择所有具有 href 属性的元素,而 [href="https://www.google.com"] 选择器将选择所有 href 属性值为 https://www.google.com 的元素。

    [href] {text-decoration: none;
    }[href="https://www.google.com"] {color: green;
    }
    
  2. 部分值选择器:选择属性值包含特定字符串的元素。例如,[class~="my-class"] 选择器将选择所有类名中包含 my-class 字符串的元素。

    [class~="my-class"] {border: 1px solid black;
    }
    

伪类选择器

  1. :hover:选择鼠标悬停在其上的元素。例如,a:hover 选择器将选择所有鼠标悬停在其上的 <a> 元素。

    a:hover {color: red;
    }
    
  2. :active:选择正在被激活的元素。例如,button:active 选择器将选择所有正在被点击的 <button> 元素。

    button:active {background-color: gray;
    }
    
  3. :focus:选择当前有焦点的元素。例如,input:focus 选择器将选择所有当前有焦点的 <input> 元素。

    input:focus {outline: none;border: 2px solid blue;
    }
    
  4. :nth-child():选择某个元素的第 n 个子元素。例如,ul li:nth-child(2) 选择器将选择所有 <ul> 元素中的第二个 <li> 元素。

    ul li:nth-child(2) {background-color: lightgray;
    }
    

伪元素选择器

  1. ::before:在元素的内容之前插入生成的内容。例如,p::before 选择器将在所有 <p> 元素的内容之前插入生成的内容。

    p::before {content: '>';font-size: 20px;color: red;
    }
    
  2. ::after:在元素的内容之后插入生成的内容。例如,p::after 选择器将在所有 <p> 元素的内容之后插入生成的内容。

    p::after {content: '<';font-size: 20px;color: red;
    }
    

结构伪类选择器

  1. :first-child:选择某个元素的第一个子元素。例如,ul li:first-child 选择器将选择所有 <ul> 元素中的第一个 <li> 元素。

    ul li:first-child {font-weight: bold;
    }
    
  2. :last-child:选择某个元素的最后一个子元素。例如,ul li:last-child 选择器将选择所有 <ul> 元素中的最后一个 <li> 元素。

    ul li:last-child {border-bottom: none;
    }
    

总结

CSS 选择器是前端开发中不可或缺的工具。通过深入理解和灵活使用各种选择器,你可以精确地选择和样式化 HTML 元素,创建出美观、交互性强的网页。记住,选择器的优先级和特异性也非常重要,需要根据实际情况进行选择和调整。

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

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

相关文章

Java8 新特性 —— Optional API 详解

本文涉及到的知识点有Lambda表达式&#xff0c;函数式接口以及Stream API&#xff0c;有不了解的小伙伴可以先学习前两篇文章&#xff1a; Java8 新特性 —— Lambda 表达式、函数接口以及方法引用详解 Java8 新特性 —— Stream API 详解 前言 Optional类是Java8新引进的一个…

深入理解Python设计模式:工厂模式实践与应用

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐&#xff1a;「storm…

Windows系统安装部署C++基础开发环境

目录 前言安装MinGW-w64安装VSCode安装CMake完成 前言 这篇文章讨论一下Windows系统怎么安装部署C基础开发环境&#xff0c;你或许在想这还不简单吗&#xff0c;安装vs不就可以了吗&#xff0c;很对&#xff0c;可以在官网下载vs集成开发环境然后进行安装&#xff0c;这也是非…

Cisco ACI Leaf交换机导出show tech

cisco.com 文档描述操作如下&#xff1a; https://www.cisco.com/c/en/us/support/docs/cloud-systems-management/application-policy-infrastructure-controller-apic/214520-guide-to-collect-tech-support-and-tac-re.html#toc-hId–2125674131 Trigger via Switch CLI O…

基于matlab的人眼开度识别

我国已经成为世界汽车生产和制造大国&#xff0c;道路车辆的不断增加道路基础设施不断增强&#xff0c;但是随之而来的问题也日益严重&#xff0c;比如交通事故&#xff0c;噪声大气污染等。汽车行驶的安全性由于关乎人民生命安全&#xff0c;所以日益受到各国政府以及研究机构…

使用 Spring Boot 搭建 WebSocket 服务器实现多客户端连接

在 Web 开发中&#xff0c;WebSocket 为客户端和服务端之间提供了实时双向通信的能力。本篇博客介绍如何使用 Spring Boot 快速搭建一个 WebSocket 服务器&#xff0c;并支持多客户端的连接和消息广播。 1. WebSocket 简介 WebSocket 是 HTML5 的一种协议&#xff0c;提供了客…

详细分析Java8中的Duration时间类基本知识(附Demo)

目录 前言1. 基本知识2. Demo3. 拓展Demo 前言 基本的Java知识推荐阅读&#xff1a; java框架 零基础从入门到精通的学习路线 附开源项目面经等&#xff08;超全&#xff09;【Java项目】实战CRUD的功能整理&#xff08;持续更新&#xff09; 1. 基本知识 Duration 类是 Ja…

Day14买卖股票的最佳时机

给定一个数组 prices &#xff0c;它的第 i 个元素 prices[i] 表示一支给定股票第 i 天的价格。 你只能选择 某一天 买入这只股票&#xff0c;并选择在 未来的某一个不同的日子 卖出该股票。设计一个算法来计算你所能获取的最大利润。 返回你可以从这笔交易中获取的最大利润。如…

【星闪EBM-H63开发板】小熊派的开发板实物

前几天介绍了&#xff0c;我参加了小熊派的星闪EBM-H63开发板内测活动。今天去快递站取回来开发板&#xff0c;让我们看看实物照片。 下面是开发板的正面照片&#xff0c;绿色的部分是核心板&#xff0c;蓝色的部分实际上是个底板&#xff0c;引出了串口的管脚&#xff0c;再加…

zookeeper的选举机制

zk中有两种角色&#xff1a;Leader 和 Fllower Leader是自己的集群各台电脑投票选举出来的。 事务&#xff1a;一通操作&#xff0c;要么同时成立&#xff0c;要么都不成立。 举例&#xff1a;Jack 和 Rose Rose 给 Jack&#xff08;小李子&#xff09; 转钱 Rose -100 J…

六:java 基础知识(6)-- Maven项目管理

目录 1. 引言 1.1 什么是 Maven 1.2 Maven 的优势 2. Maven 基础 2.1 Maven 的基本概念 2.2 Maven 的工作原理 2.3 Maven 的安装与配置 3. Maven 项目结构 3.1 Maven 项目的标准目录结构 3.2 POM 文件&#xff08;pom.xml&#xff09;概述 3.3 POM 文件的基本配置 4…

Centrifuge 5425R - 微量离心机技术数据详情——艾本德

离心机&#xff0c;作为实验室中的关键设备&#xff0c;扮演着分离、浓缩和纯化样品的重要角色。而在众多离心机型号中&#xff0c;Centrifuge 5425R 以其出色的性能和多功能性&#xff0c;成为了众多科研人员的首选。下面&#xff0c;我们就来详细了解一下这款微量离心机的技术…

【06】A-Maven项目SVN设置忽略文件

做Web项目开发时&#xff0c;运用的是Maven管理工具对项目进行管理&#xff0c;在项目构建的过程中自动生成了很多不需要SVN进行管理的文件&#xff0c;SVN在对源码进行版本管理时&#xff0c;需要将其忽略&#xff0c;本文给出了具体解决方案。 SVN设置忽略Maven项目中自动生成…

TDengine 签约蘑菇物联,改造通用设备工业互联网平台

在当前工业互联网迅猛发展的背景下&#xff0c;企业面临着日益增长的数据处理需求和智能化转型的挑战。通用工业设备的高能耗问题愈发突出&#xff0c;尤其是由这些设备组成的公辅能源车间&#xff0c;亟需更高效的解决方案来提升设备运行效率&#xff0c;降低能源消耗。为此&a…

革新汽车装配产线:MR30分布式IO模块引领智能制造新时代

在日新月异的汽车制造行业中&#xff0c;每一分每一秒的效率提升都意味着成本的降低与市场竞争力的增强。随着工业4.0时代的到来&#xff0c;智能化、自动化已成为汽车产线升级转型的关键词。在这场技术革命的浪潮中&#xff0c;MR30分布式IO模块以其高效、灵活、可靠的特点&am…

Qt第三课 ----------容器类控件

作者前言 &#x1f382; ✨✨✨✨✨✨&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f367;&#x1f382; ​&#x1f382; 作者介绍&#xff1a; &#x1f382;&#x1f382; &#x1f382; &#x1f389;&#x1f389;&#x1f389…

CodeQL学习笔记(4)-CodeQL for Java(程序元素)

最近在学习CodeQL&#xff0c;对于CodeQL就不介绍了&#xff0c;目前网上一搜一大把。本系列是学习CodeQL的个人学习笔记&#xff0c;根据个人知识库笔记修改整理而来的&#xff0c;分享出来共同学习。个人觉得QL的语法比较反人类&#xff0c;至少与目前主流的这些OOP语言相比&…

动态规划28:376. 摆动序列

动态规划解题步骤&#xff1a; 1.确定状态表示&#xff1a;dp[i]是什么 2.确定状态转移方程&#xff1a;dp[i]等于什么 3.初始化&#xff1a;确保状态转移方程不越界 4.确定填表顺序&#xff1a;根据状态转移方程即可确定填表顺序 5.确定返回值 题目链接&#xff1a;376.…

【zlm】h264 vp9 尝试研究

目录 编译与使用libvpx 打包lib 解决方案一 libvpx直接引用 IVF格式 编译libvpx windows下编译libvpx 参考文章 编译与使用libvpx 我们用最新的&#xff1a; x86_64-win64-vs16 最简单的视频编码器&#xff1a;编译&#xff08;libx264&#xff0c;libx265&#xff…

顺序表专题

目录 0. 什么是数据结构&#xff1f; 0. 为什么需要数据结构&#xff1f; 1.顺序表的概念及结构 2.顺序表分类&#xff1a; 3.动态顺序表的实现 4. 顺序表的应用 5. 顺序表的问题及思考 0. 什么是数据结构&#xff1f; 数据结构是由“数据”和“结构”两词结合而来 什…