新闻中心

css :last-of-type与:first-of-type结合使用技巧

2025-10-19
浏览次数:
返回列表
:first-of-type和:last-of-type基于标签类型选中父容器内同类元素的首尾项,结合使用可精准控制样式。例如去除文章首段上边距与末段下边距:article p:first-of-type { margin-top: 0; } 和 article p:last-of-type { margin-bottom: 0; }。组合书写如p:first-of-type, p:last-of-type可统一设置首尾段落背景色或内边距,避免添加冗余class,适用于动态内容。通过:not()排除首尾元素,使中间段落应用特定样式:p:not(:first-of-type):not(:last-of-type) { margin: 20px 0; border-left: 4px solid #ddd; },适合实现装饰线效果。为防止单一元素被误匹配,可结合:only-of-type:p:first-of-type:not(:only-of-type)确保仅多段落时去除外边距。掌握“类型”指标签名而非class,是正确使用的关键,提升CSS语义性与适应性。

css :last-of-type与:first-of-type结合使用技巧

在CSS中,:last-of-type:first-of-type 是非常实用的伪类选择器,它们可以根据元素在父容器中的位置精准地选中第一个或最后一个同类型子元素。将这两个选择器结合使用,可以实现更灵活、语义更强的样式控制,尤其是在处理动态内容或不确定数量的子元素时尤为有效。

理解 :first-of-type 与 :last-of-type 的基本作用

这两个伪类基于元素的“类型”(即标签名)进行匹配:

  • :first-of-type 选中其父元素下同类标签中的第一个
  • :last-of-type 选中其父元素下同类标签中的最后一个

例如,在一段包含多个 ph2 的文章中:

article p:first-of-type { margin-top: 0; }

可用来去除文章首个段落的上边距;而:

article p:last-of-type { margin-bottom: 0; }

则能统一结尾段落的底部间距。

组合使用实现首尾特殊样式

当需要对某一类元素的开头和结尾统一设置样式时,可以将两者结合使用。比如为列表中第一个和最后一个段落添加特殊边距或背景:

p:first-of-type,
p:last-of-type {
  background-color: #f5f5f5;
  padding: 10px;
}

这种写法避免了额外添加 class,特别适合 CMS 输出的富文本内容,结构不可控但样式需保持一致的情况。

AI Surge Cloud AI Surge Cloud

低代码数据分析平台,帮助企业快速交付深度数据

AI Surge Cloud 87 查看详情 AI Surge Cloud

排除首尾元素的通用样式

有时我们想对中间的同类元素应用特定样式,而跳过第一个和最后一个。这时可以用 :not() 配合两者实现:

p:not(:first-of-type):not(:last-of-type) {
  margin: 20px 0;
  border-left: 4px solid #ddd;
}

上述规则只会作用于既不是第一个也不是最后一个的段落,适合创建“缩进引用”或“侧边装饰线”等视觉效果。

与其它伪类搭配提升精确度

在复杂布局中,可结合 :only-of-type 防止误选。例如,如果只有一个段落,就不应同时应用首尾样式:

p:first-of-type:not(:only-of-type) {
  margin-top: 0;
}
p:last-of-type:not(:only-of-type) {
  margin-bottom: 0;
}

这样确保只有在多个段落存在时才去除首尾外边距,单个段落则保留默认样式逻辑。

基本上就这些。合理使用 :first-of-type 和 :last-of-type 的组合,能让你的CSS更简洁、更具适应性,尤其在处理用户生成内容时优势明显。关键是理解“类型”的含义——它指的是元素标签,而不是 class 或位置。掌握这一点,就能避免多数选择器失效的问题。

以上就是css :last-of-type与:first-of-type结合使用技巧的详细内容,更多请关注其它相关文章!


# 是在  # 知乎关键词搜索排名在哪里看排名  # 四平短视频推广引流营销方案  # 绥化seo公司招商加盟  # 荆门seo获客策划  # 网站推广火乛星24惠  # 阿里巴巴网站推广哪家好  # 网站建设被骗维护费  # 广东正规营销推广哪里好  # 手机关键词排名 pc端  # 什么是微信seo  # 就能  # css  # 两种类型  # 其父  # 中不  # 这两个  # 多个  # 使用技巧  # 选择器  # 第一个  # 伪类选择器  # cms 


相关栏目: 【 科技资讯46185 】 【 网络学院92790


相关推荐: Yandex免登录官网入口_俄罗斯Yandex搜索引擎直达链接  夸克浏览器桌面版同步不了书签怎么处理 夸克浏览器跨设备同步异常解决方案  怎样在Excel中做仪表盘_Excel仪表盘设计与关键指标展示方法  Golang如何优化CPU绑定任务分配策略_Golang CPU任务分配优化实践  c++如何使用Catch2编写单元测试_c++简洁易用的BDD风格测试框架  fishbowl官网免费版 fishbowl养鱼网站入口  Golang切片为何属于引用类型_Golang slice底层结构与引用语义说明  TikTok国际版官网直达_TikTok国际版官网直达进入在线观看  解决Bootstrap卡片顶部边距导致背景图下移的问题  在命令行怎么运行html项目_命令行运行html项目方法【教程】  C#中解析不规范的HTML为XML 常见的坑与解决办法  PHP中SSG-WSG API的AES加密实践:正确使用初始化向量  苹果手机指南针不准怎么校准 传感器校准方法详解【建议收藏】  怎么在mac上运行html代码_mac运行html代码方法【指南】  composer的"require-dev"部分是用来做什么的?  Lar*el表单中优雅地处理“返回”按钮以规避验证:最佳实践指南  yandex入口引擎手机版 yandex安卓版下载入口  优化MinIO list_objects_v2 操作的性能瓶颈与最佳实践  composer 和 npm/yarn 在管理依赖方面有什么核心思想差异?  在Socket.IO连接中实现Access Token自动更新与动态重连  vivo手机参数配置怎么增强信号_vivo手机参数配置信号增强方法  Pyrogram与g4f集成:异步编程实践与常见错误解决  React中useState与局部变量:理解组件状态管理与渲染机制  大象笔记网页版入口 印象笔记网页版登录入口  VS Code远程开发时如何处理文件权限问题  PostgreSQL海量数据高效导入策略:Python与Django实践指南  Golang并发任务中错误如何聚合_Golang goroutine error收集方式  搜狗浏览器如何使用密码生成器创建强密码 搜狗浏览器内置密码安全工具  漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  海棠账号登录入口_登录海棠账户同步阅读记录  Word2013如何插入视频和音频媒体_Word2013媒体插入的多媒体支持  C++指针和引用有什么区别_C++内存管理核心概念深度解析  QQ邮箱登录平台入口 QQ邮箱网页版邮箱官方入口  绝地鸭卫平a核爆刀流玩法攻略  html怎么运行外部js文件中的函数_运html外js文件函数法【技巧】  Eclipse怎么运行工程_Eclipse工程运行配置说明  win11 Snap Layouts怎么用 Win11窗口布局与分屏多任务高效指南【必学】  NVIDIA股价11月重挫12%:下月有望好转 但难回5万亿美元巅峰  动漫岛观看全网网 动漫岛在线正版动漫入口  《马克思佩恩3》早期版本曝光 UI设计曾多次调整!  MAC如何安全彻底地删除文件_MAC使用终端命令确保文件无法被恢复  Win10快速启动功能利弊分析 Win10开启或关闭快速启动教程【技巧】  微信商城在哪里打开【步骤】  J*a应用程序首次运行自动创建文件与目录的最佳实践  现代化 SciPy 一维插值:interp1d 的替代方案与最佳实践  PDF文件体积过大处理_PDF压缩技巧详解  谷歌推RCS信息存档功能:公司可监控员工私密信息!  百度网盘网页版入口 百度网盘网页版官方登录网址  格力空气能E5故障代码是什么情况_格力空气能E5代码解析与应对措施  三星ZFold5多任务卡顿_Samsung ZFold5流畅度提升 

搜索