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

CSS3 伪元素(Pseudo-elements)大全

CSS3 伪元素(Pseudo-elements)大全

CSS3 伪元素用于选择元素的特定部分,以双冒号 :: 开头(CSS3 规范推荐写法,但单冒号 : 也支持以保持向后兼容)。

主要 CSS3 伪元素列表

  1. ::before
    在元素内容前插入生成的内容

    p::before { content: "→ "; }
    
  2. ::after
    在元素内容后插入生成的内容

    p::after { content: " ←"; }
    
  3. ::first-letter
    选择块级元素的首字母

    p::first-letter { font-size: 2em; }
    
  4. ::first-line
    选择块级元素的第一行

    p::first-line { font-weight: bold; }
    
  5. ::selection
    选择用户选中的文本部分

    ::selection { background: yellow; }
    
  6. ::placeholder
    选择表单元素的占位文本

    input::placeholder { color: #999; }
    
  7. ::backdrop
    全屏元素后面的背景层

    video::backdrop { background: black; }
    
  8. ::marker (CSS3 新增)
    选择列表项的标记(如 <li> 的项目符号)

    li::marker { color: red; }
    
  9. ::spelling-error (实验性)
    标记浏览器检测到的拼写错误文本

    ::spelling-error { text-decoration: wavy red underline; }
    
  10. ::grammar-error (实验性)
    标记浏览器检测到的语法错误文本

    ::grammar-error { text-decoration: wavy green underline; }
    

注意事项

  1. 单冒号 vs 双冒号

    • 单冒号是CSS2的写法,CSS3 规范推荐使用 ::(如 ::before
    • 但浏览器也支持 : 写法(如 :before)以保持兼容性
    • 唯一例外是 :before:after:first-letter:first-line 在 CSS2 中已存在
  2. 必须设置 content 属性

    .box::before {content: ""; /* 必须设置,即使是空字符串 */display: block;width: 20px;
    }
    
  3. 伪元素组合使用

    blockquote::first-letter::after {content: "'";color: red;
    }
    
  4. 浏览器兼容性

    • 大多数现代浏览器支持所有标准伪元素
    • ::marker 在旧浏览器中支持有限
    • ::spelling-error::grammar-error 仍处于实验阶段

实际应用示例

/* 自定义列表标记 */
ul li::marker {content: "✓ ";color: green;
}/* 输入框清除按钮样式 */
input[type="search"]::-webkit-search-cancel-button {-webkit-appearance: none;height: 1em;width: 1em;background: url(close.svg) no-repeat;
}/* 首行首字母特殊样式 */
article p::first-line {font-variant: small-caps;
}
article p::first-letter {font-size: 3em;float: left;line-height: 1;
}
http://www.xdnf.cn/news/5517.html

相关文章:

  • 【HarmonyOS Next之旅】DevEco Studio使用指南(二十二)
  • 【25软考网工】第六章(4)VPN虚拟专用网 L2TP、PPTP、PPP认证方式;IPSec、GRE
  • USB传输模式
  • 大语言模型强化学习双强:OpenRLHF与verl技术解析
  • Golang空接口的用途详解
  • pnpm使用报错
  • TWASandGWAS中GBS filtering and GWAS(1)
  • 黑马点评实战笔记
  • AI赋能安全生产,推进数智化转型的智慧油站开源了。
  • BUUCTF——PYWebsite
  • 记一种C#winform小程序的简易打包方式-自解压压缩文件
  • 火山RTC 7 获得远端裸数据
  • MATLAB机器人系统工具箱中的loadrobot和importrobot
  • Voice Changer 变声器
  • C++语法基础(上)
  • linux内核pinctrl/gpio子系统驱动笔记
  • 并行发起http请求
  • Spring Cloud : OpenFeign(远程调用)
  • 腾答知识竞赛系统 V1.0.4更新
  • Linux文件编程——open函数
  • CAPL -实现SPRMIB功能验证
  • 《操作系统真象还原》第十四章(1)——文件系统概念、创建文件系统
  • 写屏障和读屏障的区别是什么?
  • 思维链是仅仅通过提示词实现的吗
  • Java对象的内存分布(二)
  • Python训练营打卡——DAY22(2025.5.11)
  • UGMathBench动态基准测试数据集发布 可评估语言模型数学推理能力
  • Maven 中的 pom.xml 文件
  • Mind Over Machines 公司:技术咨询与创新的卓越实践
  • redis存储结构