新闻中心

CSS伪类选择器:first-of-type与last-of-type结合应用_子元素特定样式

2025-11-22
浏览次数:
返回列表
:first-of-type 选中父元素中首个指定类型的子元素,:last-of-type 选中最后一个指定类型的子元素,二者结合可精准控制同类元素的首尾样式,如为文章首个段落加大字体、末个段落增加底部边距,或在混合元素结构中仅对特定标签(如 p)的首尾实例设置样式,避免添加冗余类名,提升代码可维护性;需注意其基于元素类型匹配而非整体位置,与 :first-child 等区分,且兼容性良好,IE9 及以上支持。

css伪类选择器:first-of-type与last-of-type结合应用_子元素特定样式

在CSS中,:first-of-type:last-of-type 是非常实用的伪类选择器,它们可以根据元素在父容器中的位置来精确地选中特定类型的子元素。结合使用这两个选择器,可以轻松为列表、段落或复杂结构中的首个和末个同类元素设置独立样式,而无需添加额外的类名。

:first-of-type 与 :last-of-type 基本作用

这两个伪类选择器的作用是基于元素的“类型”(即标签名)在其父元素中的位置进行匹配:

  • :first-of-type 选中父元素中第一个该类型的子元素
  • :last-of-type 选中父元素中最后一个该类型的子元素

例如,在一段包含多个 ph2 的文章中,你可以只对第一个段落或最后一个段落应用特殊样式,即使它们不是父元素的第一个或最后一个子节点。

实际应用场景:文章段落首尾样式控制

假设你有一篇文章,结构如下:

<article>
  <h2>标题</h2>
  <p&gt;这是第一段内容...</p>
  <p>这是第二段内容...</p>
  <p>这是最后一段内容...</p>
  @@##@@
</article>

你想让第一个 p 段落有更大的字体,最后一个 p 段落底部留出更多空白。可以这样写CSS:

article p:first-of-type {
  font-size: 1.2em;
  font-weight: bold;
}

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

这段样式会准确作用于第一个和最后一个 p 元素,不受中间其他标签干扰。

Avatar AI Avatar AI

AI成像模型,可以从你的照片中生成逼真的4K头像

Avatar AI 92 查看详情 Avatar AI

结合使用实现更精细的布局控制

在列表或卡片组件中,这类选择器也非常有用。比如一个包含多种元素类型的侧边栏:

<aside>
  <p>欢迎信息</p>
  <ul><li>选项1</li></ul>
  <p>提示说明</p>
  <p>联系方式</p>
</aside>

你可以只对第一个和最后一个 p 元素设置边距:

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

aside p:last-of-type {
  margin-bottom: 0;
  font-size: 0.9em;
  color: #666;
}

这种写法避免了手动添加类名,提升了代码的可维护性。

注意事项与兼容性

使用时需注意以下几点:

  • 选择器基于“元素类型”,所以 p:first-of-type 只会在同为 p 的兄弟元素中找第一个
  • 如果父元素中没有对应类型的元素,规则不会生效
  • IE9及以上浏览器支持,现代浏览器完全兼容
  • 不要与 :first-child:last-child 混淆,后者依赖的是整体子元素顺序

基本上就这些。合理使用 :first-of-type:last-of-type,能让你的样式更简洁、语义更清晰,特别适合动态内容或CMS输出的结构化文本处理。不复杂但容易忽略。图片

以上就是CSS伪类选择器:first-of-type与last-of-type结合应用_子元素特定样式的详细内容,更多请关注其它相关文章!


# 的是  # 长治哪个网站建设可靠  # seo站长平台验证  # 杭州360推广营销  # 无锡房产关键词排名情况  # 郴州网站建设怎么样  # 网站建设与优化公司  # SEO书架落地摆件  # 青岛网站推广微訫hfqjwl下拉  # 廊坊品牌网站推广行业  # 天门网络推广员招聘网站  # 不均匀  # css  # 中不  # 只对  # 这两个  # 你可以  # 首个  # 这是  # 选择器  # 第一个  # 浏览器  # cms  # 伪类选择器 


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


相关推荐: 漫蛙manwa官网登录界面_漫蛙漫画网页版主站入口  优化 Jest 模拟:强制未实现函数抛出错误以提升测试效率  J*a里如何使用forEach遍历Map_Map遍历方法说明  html两个JS只运行一个怎么办_让双JS在html中都运行方法【技巧】  C++如何比较两个字符串_C++ string compare函数与操作符对比  Kafka Streams中基于消息头条件过滤消息的实现指南  飞书妙记怎样用语音转文字速记_飞书妙记用语音转文字速记【速记方法】  4399免费游戏网址入口 4399小游戏免费入口点开即玩  Win10如何恢复误删的快捷方式_Win10重建常用软件快捷方式  抖音未来赚钱的新趋势 2025年值得关注的变现风口分析  抓大鹅无需下载版 抓大鹅秒玩版入口  b站怎么删除评论_b站评论管理与删除操作  126邮箱手机版登录官网2026_126手机邮箱免费入口最新  QQ邮箱正确登录入口_QQ邮箱官方网站使用地址  J*a应用程序首次运行自动创建文件与目录的最佳实践  苹果手机如何防止被恶意App追踪  Yandex免登录网页版地址 Yandex搜索引擎官方访问入口  文心一言怎样用批量生成做多版文案_文心一言用批量生成做多版文案【批量创作】  Pandas DataFrame 多条件优先级排序与排名  在命令行怎么运行html项目_命令行运行html项目方法【教程】  构建轻量级网站内部消息系统:Formspree 集成指南  C++如何实现单例模式_C++设计模式之线程安全的单例写法  优化LangChain文档加载与ChromaDB集成:解决多文档处理与分块问题  想当下一个《2077》?《心之眼》Steam评价升至"多半好评"  c++如何使用Meson构建系统_c++比CMake更快的构建工具  12306选座怎么选到特殊座位_12306特殊座位选择注意事项  HTML空白字符处理机制:渲染、DOM与编码实践  css滚动动画效果怎么实现_使用Animate.css滚动触发动画类  Python中高效访问嵌套字典与列表中的键值对  J*a递归快速排序中静态变量的状态管理与陷阱  虫虫漫画精品漫画官网_虫虫漫画精品漫画官网进入精品漫画  c++中的std::basic_string的SSO优化_c++短字符串优化深度解析  Angular响应式表单:实现提交后表单及按钮的禁用与只读化  yandex入口引擎手机版 yandex安卓版下载入口  PDF怎么合并PDF并保持格式_PDF合并文件保持排版教程  React项目中导航栏Logo自适应布局:避免裁剪与布局溢出  mc.js游戏直达 mc.js网页免下载版本秒进地址  Pyrogram与g4f集成:异步编程实践与常见错误解决  Lar*el如何正确地在控制器和模型之间分配逻辑_Lar*el代码职责分离与架构建议  知音漫客官网漫画下载_知音漫客网页版阅读记录  抖音从哪里进入网页版_抖音官方入口链接  微博网页版主页入口 微博官方网站免登录访问  JUnit5/Mockito:优雅测试内部依赖与异常处理的实践  Go Martini框架:动态服务解码后的图片内容  韩小圈电脑版在线入口_网页版免费登录地址  c++如何使用折叠表达式(Fold Expressions)_c++17可变参数模板新技巧  自定义Bag-of-Words实现:处理带负号的词汇权重  AI泡沫首次被“刺破”:GPU十年都无法存活!  Win11怎么开启高性能模式_Windows 11电源计划优化设置  邮编格式怎么匹配地址_根据邮编格式快速匹配详细地址的技巧 

搜索