CSS系列(44)-- Nesting详解

前端技术探索系列:CSS Nesting详解 📦

致读者:探索样式嵌套的艺术 👋

前端开发者们,

今天我们将深入探讨 CSS Nesting,这个强大的样式组织特性。

基础语法 🚀

基础嵌套

/* 简单嵌套 */
.card {padding: 16px;border-radius: 8px;& .header {font-size: 18px;margin-bottom: 12px;}& .content {line-height: 1.5;}
}/* 伪类嵌套 */
.button {padding: 8px 16px;transition: all 0.3s;&:hover {background-color: #f0f0f0;}&:active {transform: scale(0.98);}
}

选择器组合

/* 多层嵌套 */
.container {max-width: 1200px;margin: 0 auto;& .section {padding: 24px;& .title {font-size: 24px;& span {color: #666;}}}
}/* 组合选择器 */
.form {& input,& select,& textarea {border: 1px solid #ddd;padding: 8px;&:focus {border-color: #0066ff;outline: none;}}
}

高级用法 🎯

媒体查询嵌套

.responsive-component {display: grid;gap: 16px;@media (min-width: 768px) {& {grid-template-columns: repeat(2, 1fr);}}@media (min-width: 1024px) {& {grid-template-columns: repeat(3, 1fr);}}
}

主题嵌套

.theme-container {/* 亮色主题 */&[data-theme="light"] {--bg-color: #ffffff;--text-color: #333333;& .card {background-color: var(--bg-color);color: var(--text-color);}}/* 暗色主题 */&[data-theme="dark"] {--bg-color: #1a1a1a;--text-color: #ffffff;& .card {background-color: var(--bg-color);color: var(--text-color);}}
}

实际应用 💫

组件样式

/* 卡片组件 */
.card-component {border: 1px solid #eee;border-radius: 8px;overflow: hidden;& .image {width: 100%;height: 200px;object-fit: cover;}& .content {padding: 16px;& .title {font-size: 20px;margin-bottom: 8px;}& .description {color: #666;line-height: 1.5;}& .actions {margin-top: 16px;display: flex;gap: 8px;& button {padding: 8px 16px;border-radius: 4px;&.primary {background-color: #0066ff;color: white;}&.secondary {background-color: transparent;border: 1px solid #0066ff;color: #0066ff;}}}}
}

布局系统

/* 网格布局 */
.grid-system {display: grid;gap: 24px;& .column {&-4 {grid-column: span 4;}&-6 {grid-column: span 6;}&-12 {grid-column: span 12;}@media (max-width: 768px) {&-4,&-6,&-12 {grid-column: 1 / -1;}}}
}

最佳实践 ⚡

命名约定

/* BEM命名嵌套 */
.block {& .block__element {& .block__element--modifier {/* 样式 */}}
}/* 命名空间 */
.namespace {&-component {&__element {&--modifier {/* 样式 */}}}
}

性能优化

/* 选择器优化 */
.optimized {/* 避免过深嵌套 */& > .direct-child {/* 直接子元素样式 */}/* 限制嵌套层级 */& .important-element {/* 重要元素样式 */}
}/* 模块化组织 */
.module {/* 核心样式 */@import 'module/core';/* 主题变体 */@import 'module/themes';/* 响应式样式 */@import 'module/responsive';
}

开发建议 💡

  1. 代码组织

    • 层级控制
    • 模块划分
    • 命名规范
    • 注释完善
  2. 性能考虑

    • 选择器优化
    • 复用提取
    • 打包优化
    • 加载策略
  3. 维护建议

    • 文档规范
    • 版本控制
    • 团队协作
    • 代码审查
  4. 最佳实践

    • 语义化命名
    • 响应式设计
    • 主题支持
    • 可扩展性

写在最后 🌟

CSS Nesting为我们提供了更好的样式组织方式,通过合理运用这一特性,我们可以构建出更加清晰和可维护的样式系统。

进一步学习资源 📚

  • 嵌套语法指南
  • 代码组织技巧
  • 性能优化建议
  • 实战案例分析

如果你觉得这篇文章有帮助,欢迎点赞收藏,也期待在评论区看到你的想法和建议!👇

终身学习,共同成长。

咱们下一期见

💻

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

ARM64 CSEL条件 B条件一览

其实整体概括下来,就是两个寄存器比大小,按照不同的格式(有符号,无符号)比 条件选择 (Conditional Selection, CSEL) 示例 CSEL X3, X1, X2, EQ在这个例子中,如果条件码 EQ 为真(即条件寄存器的…

BLE core 内容整理解释

本文内容比较杂散,只是做记录使用,后续会整理的有条理些 link layer 基本介绍 **Link Layer Control(链路层控制)**是蓝牙低功耗(BLE)协议栈的核心部分,负责实现设备间可靠、安全、低功耗的数…

【疑难杂症】 HarmonyOS NEXT中Axios库的响应拦截器无法拦截424状态码怎么办?

今天在开发一个HarmonyOS NEXT的应用的时候,发现http接口如果返回的状态码是424时,我在axios中定义的拦截器失效了。直接走到了业务调用的catch中。 问题表现: 我的拦截器代码如下: 解决办法: 先说解决办法&#xff…

一起来看--红黑树

【欢迎关注编码小哥,学习更多实用的编程方法和技巧】 红黑树是一种自平衡的二叉搜索树,广泛应用于计算机科学中,尤其是在实现关联数组和集合时。它的设计旨在确保在最坏情况下,基本动态集合操作(如插入、删除和查找&am…

聚类评价指标

聚类评价指标分为 内部指标 和 外部指标 两大类,用于评估聚类算法的性能。 一、内部评价指标 内部评价指标不依赖真实标签,主要通过聚类结果本身的紧凑性和分离性进行评估。 轮廓系数(Silhouette Coefficient, SC) 衡量数据点与其…

flask后端开发(1):第一个Flask项目

目录 一、Helloworddebug、host、port的配置 gitcode地址: https://gitcode.com/qq_43920838/flask_project.git 一、Helloword 一般是会创建两个文件夹和app.py app.py from flask import FlaskappFlask(__name__)app.route(/) def hello_world():return Hello…

C++ 设计模式:抽象工厂(Abstract Factory)

链接:C 设计模式 链接:C 设计模式 - 工厂方法 链接:C 设计模式 - 原型模式 链接:C 设计模式 - 建造者模式 抽象工厂(Abstract Factory)是一种创建型设计模式,它提供一个接口,用于创…

docker 安装与配置 gitlab

前提条件 Docker:确保你已经安装了 Docker 和 Docker Compose。可以通过以下命令来检查是否安装 Docker:docker --version1. 拉取 GitLab Docker 镜像 首先,我们需要拉取 GitLab 的官方 Docker 镜像。可以使用以下命令来获取 GitLab CE&…

C语言-详细讲解-字符串加密

1.题目要求 编写加密程序,将用户输入的一个英文句子加密为加密字符串,然后输出加密字符串。假设句子长度不超过50个字符。根据给定的句子加密函数原型SentenceEncoding,编写函数SentenceEncoding调用字符加密函数CharEncoding完成句子加密。然…

stratovirt

title: 探索 Stratovirt:云时代的虚拟化新力量 date: ‘2024-12-29’ category: blog tags: Stratovirt云计算虚拟化技术技术解析 sig: Stratovirt archives: ‘2024-12’ author:way_back summary: Stratovirt 作为新兴的虚拟化技术,以其独特的架构和先…

一文复盘:RAG技术-大模型

原文:https://zhuanlan.zhihu.com/p/13962398269 RAG(Retrieval-Augmented Generation)之所以被关注,有两方面原因: 1、没有跑大模型的资源:大多数人没有GPU集群搞LLM的预训练。 2、大模型缺乏知识&…

使用 OpenCV 绘制线条和矩形

OpenCV 是一个功能强大的计算机视觉库,它不仅提供了丰富的图像处理功能,还支持图像的绘制。绘制简单的几何图形(如线条和矩形)是 OpenCV 中常见的操作。在本篇文章中,我们将介绍如何使用 OpenCV 在图像上绘制线条和矩形…

WinForm 美化秘籍:轻松实现 Panel 圆角虚线边框

文章目录 1、引言2、案例实现1、创建自定义 Panel 类2、定义圆角矩形3. 使用自定义 Panel4. 调整属性5、使用背景图片来实现5、拓展:使用 Panel 的 Paint重绘单独实现虚线边框效果 3、实现效果4、总结 1、引言 在 Winform 应用程序开发中,美化用户界面&…

Spring Cloud LoadBalancer (负载均衡)

目录 什么是负载均衡 服务端负载均衡 客户端负载均衡 Spring Cloud LoadBalancer快速上手 启动多个product-service实例 测试负载均衡 负载均衡策略 自定义负载均衡策略 什么是负载均衡 负载均衡(Load Balance,简称 LB) , 是高并发, 高可用系统必不可少的关…

OpenCloudOS简介

OpenCloudOS是一款开源的云操作系统,具有诸多特性和优势,广泛应用于多个领域。 一、项目背景 开源社区发起:由操作系统、云平台、软硬件厂商与个人共同倡议发起的操作系统社区项目,旨在打造全面中立、开放、安全、稳定易用、高…

NLP 中文拼写检测纠正论文 Automatic-Corpus-Generation

拼写纠正系列 NLP 中文拼写检测实现思路 NLP 中文拼写检测纠正算法整理 NLP 英文拼写算法,如果提升 100W 倍的性能? NLP 中文拼写检测纠正 Paper java 实现中英文拼写检查和错误纠正?可我只会写 CRUD 啊! 一个提升英文单词拼…

区块链安全常见的攻击合约和简单复现,附带详细分析——不安全调用漏洞 (Unsafe Call Vulnerability)【6】

区块链安全常见的攻击分析——不安全调用漏洞 Unsafe Call Vulnerability 区块链安全常见的攻击合约和简单复现,附带详细分析——不安全调用漏洞 (Unsafe Call Vulnerability)【6】1.1 漏洞合约1.2 漏洞分析1.3 攻击步骤分析1.4 攻击合约 区块链安全常见的攻击合约和…

生成excel文件(有备注和表头的情况)

要使用 Java 导出 Excel 文件,并且通过 ExcelProperty 注解进行列的映射,可以利用 EasyExcel 库。EasyExcel 是阿里巴巴开源的一款高性能 Excel 读写工具,它支持通过注解将类与 Excel 的列进行映射,简化了 Excel 操作的复杂性。 …

Excel 面试 01 “Highlight in red the 10 lowest orders”

要在 Excel 中完成“Highlight in red the 10 lowest orders”的任务,可以使用条件格式(Conditional Formatting)。以下是详细步骤: 步骤 1:选择数据范围 打开包含订单数据的工作表。选中包含订单金额或数量的单元格范…

留学生交流互动系统|Java|SSM|VUE| 前后端分离

【技术栈】 1⃣️:架构: B/S、MVC 2⃣️:系统环境:Windowsh/Mac 3⃣️:开发环境:IDEA、JDK1.8、Maven、Mysql5.7 4⃣️:技术栈:Java、Mysql、SSM、Mybatis-Plus、VUE、jquery,html 5⃣️数据库可…