当前位置: 首页 > news >正文

常用CSS选择器

CSS(层叠样式表)选择器是用来选取 HTML 或 XML 文档中的元素,以便应用样式规则。以下是 CSS 中常用的选择器及其说明:

基本选择器

  1. 标签选择器(Type Selector)

    • 选择所有指定标签的元素。
    p { color: red; }
    
  2. 类选择器(Class Selector)

    • 选择具有指定类的所有元素。
    .highlight { background-color: yellow; }
    
  3. ID 选择器(ID Selector)

    • 选择具有指定 ID 的单个元素。
    #main-header { font-size: 2em; }
    
  4. 通用选择器(Universal Selector)

    • 选择所有元素。
    * { margin: 0; padding: 0; }
    
  5. 伪类选择器(Pseudo-Class Selector)

    • 选择具有特定状态的元素。
    a:hover { color: blue; }
    

后代选择器(Descendant Selector)

  1. 后代选择器
    • 选择某个元素的后代元素。
    div p { color: green; }
    

子元素选择器(Child Selector)

  1. 子选择器
    • 选择某个元素的直接子元素。
    div > p { color: blue; }
    

相邻兄弟选择器(Adjacent Sibling Selector)

  1. 相邻兄弟选择器
    • 选择紧跟着前面元素的第一个元素。
    h1 + p { text-align: center; }
    

通用兄弟选择器(General Sibling Selector)

  1. 通用兄弟选择器
    • 选择前面元素后面的所有元素。
    h1 ~ p { text-align: right; }
    

属性选择器(Attribute Selector)

  1. 属性选择器

    • 选择具有指定属性的元素。
    input[type="text"] { border: 1px solid black; }
    
  2. 属性包含值选择器

    • 选择具有指定属性值包含特定字符串的元素。
    [title~=important] { font-weight: bold; }
    
  3. 属性开始值选择器

    • 选择具有指定属性值以特定字符串开头的元素。
    [href^="http"] { color: orange; }
    
  4. 属性结束值选择器

    • 选择具有指定属性值以特定字符串结尾的元素。
    [class$="footer"] { background-color: lightgray; }
    
  5. 属性包含值选择器

    • 选择具有指定属性值包含特定子字符串的元素。
    [class*="sidebar"] { float: right; }
    

结构化伪类选择器(Structural Pseudo-Class Selector)

  1. 第一子元素选择器(First Child)

    • 选择父元素的第一个子元素。
    p:first-child { font-weight: bold; }
    
  2. 最后一个子元素选择器(Last Child)

    • 选择父元素的最后一个子元素。
    p:last-child { color: purple; }
    
  3. 唯一子元素选择器(Only Child)

    • 选择父元素唯一的子元素。
    p:only-child { font-style: italic; }
    
  4. 第一个类型选择器(First of Type)

    • 选择父元素第一个特定类型的子元素。
    p:first-of-type { border-left: 2px solid black; }
    
  5. 最后一个类型选择器(Last of Type)

    • 选择父元素最后一个特定类型的子元素。
    p:last-of-type { border-right: 2px solid black; }
    
  6. 唯一类型选择器(Only of Type)

    • 选择父元素唯一的特定类型子元素。
    p:only-of-type { background-color: lightblue; }
    

伪元素选择器(Pseudo-Element Selector)

  1. 伪元素选择器

    • 选择元素的特定部分,如 ::before 或 ::after。
    p::first-letter { font-size: 1.5em; }
    
  2. 伪元素 ::before

    • 在元素内容之前插入内容。
    p::before { content: "Section "; }
    
  3. 伪元素 ::after

    • 在元素内容之后插入内容。
    p::after { content: " end."; }
    
  4. 伪元素 ::first-line

    • 选择元素的第一行。
    p::first-line { color: red; }
    
  5. 伪元素 ::selection

    • 选择用户选定的文本。
    ::selection { background: yellow; }
    

逻辑组合选择器

  1. 并集选择器(Union Selector)
    • 选择匹配任何一个选择器的元素。
    p, li { color: red; }
    

复杂选择器

  1. 否定选择器(Not Selector)

    • 选择不匹配指定选择器的元素。
    p:not(.special) { color: gray; }
    
  2. 空白选择器(Empty Selector)

    • 选择没有任何子节点的元素。
    p:empty { display: none; }
    
  3. 目标选择器(Target Selector)

    • 选择带有特定锚点的目标元素。
    #section:target { background-color: yellow; }
    

伪类选择器

  1. 链接伪类

    • 选择未访问过的链接。
    a:link { color: green; }
    
    • 选择已被访问过的链接。
    a:visited { color: purple; }
    
  2. 焦点伪类

    • 选择获得焦点的元素。
    input:focus { outline: 2px solid blue; }
    
  3. 有效伪类

    • 选择有效输入字段。
    input:valid { border-color: green; }
    
  4. 无效伪类

    • 选择无效输入字段。
    input:invalid { border-color: red; }
    
  5. 可拖放伪类

    • 选择处于拖放状态的元素。
    img:drag { opacity: 0.5; }
    
  6. 支持范围伪类

    • 选择在指定范围内值的元素。
    input:in-range { border-color: green; }
    
  7. 超出范围伪类

    • 选择超出指定范围值的元素。
    input:out-of-range { border-color: red; }
    
  8. 只读伪类

    • 选择只读字段。
    input:read-only { background-color: lightgray; }
    
  9. 可读伪类

    • 选择可读字段。
    input:read-write { background-color: white; }
    

这些选择器可以帮助你在网页设计中精确地定位和控制各个元素的样式。熟悉并掌握这些选择器,可以使你的 CSS 更加灵活和强大。


http://www.mrgr.cn/news/36830.html

相关文章:

  • Altium Designer创建接口类器件原理图库
  • docker笔记_数据卷、挂载
  • Goweb---Gorm操作数据库(三) 更新
  • Linux设备驱动中的异步通知与异步I/O学习s
  • 基于vue框架的大学生国内外竞赛参赛管理系统开发设计与实现xs3sb(程序+源码+数据库+调试部署+开发环境)系统界面在最后面。
  • shell中对xargs命令传参进行编辑
  • 天命人,如何轻松利用仿真技术打造出属于你的“金箍棒”?
  • 前端插件开发用什么技术比较好,用来程序自动化下载
  • 微服务架构拆分策略与实践
  • git的远程操作-把自己的代码推上去和把别人的代码拉下来
  • 人工智能下的GIS发展趋势
  • GUI-文本和按钮控件
  • leetcode 2024.9.26
  • 神经网络介绍及其在Python中的应用(一)
  • 19.1 使用k8s的sdk编写一个项目获取pod和node信息
  • 小红书,努力成为小红书
  • UCS与Unicode:二虎相争,必有一伤?
  • 数字化AI直播革命:无人直播新纪元,真AI赋能未来!
  • 如何在 Android 中用 Kotlin 将 dp 转换为 px
  • Unity网络开发记录(一):实现最简单的unity客户端和服务器通信