css - 当多个ID具有相同的代码时,编写更少代码的正确方法是什么?
问题描述
我正在尝试将项目中的某些代码的 css 转换为 less。
我有以下代码css:
#broker_upload_doc .broker_personal_form .well,
#broker_upload_agr .broker_personal_form .well {
padding: 2em 2em 0 2em;
}
现在,如果我将其转换为 Less,它将变为:
#broker_upload_doc {
.broker_personal_form {
.well {
padding: 2em 2em 0 2em;
}
}
}
#broker_upload_agr {
.broker_personal_form {
.well {
padding: 2em 2em 0 2em;
}
}
}
现在我的问题是,当我在多个 ID 下有相同的代码时,这是转换此代码的唯一方法还是任何其他方式?看来我正在用更少的代码而不是使用 css 编写更多代码。
解决方案
理想情况下,具有 ID 的元素将共享一个公共类,例如.broker_upload
. 因此,它可以有效地组织您的 HTML,并且与 CSS/Less 关系不大。然后你可以这样做:
.broker_upload {
.broker_personal_form {
.well {
padding: 2em 2em 0 2em;
}
}
}
而且,当然,您仍然可以这样做(尽管看起来很明显?):
#broker_upload_doc,
#broker_upload_agr {
.broker_personal_form {
.well {
padding: 2em 2em 0 2em;
}
}
}
(在旁注中,Sass 有一个@at-root
指令可以让你以另一种方式做到这一点。但是 afaik Less 缺少这个功能。)
推荐阅读
- php - 为什么重定向不起作用?你会如何解决它?
- firebase - Firebase 存储规则奇怪的行为
- r - 使用 group_by() 后,按时间帧窗口为数据帧中的每一行设置数据子集
- python - 函数返回包含子字符串所有元素的第一个可能的子字符串
- javascript - 在javascript中更改输入数字时如何使值自动更新?
- php - 如何在 Apache 2.4.46 上启用 HTTP 请求标头
- excel - 如何使用 VBA 轻松将 CSV 文件输入 Excel?
- php - laravel excel导出 - 数据存储为文本而不是数字
- c# - C#:使用 foreach 和数组元素组合 2 个列表
- javascript - 我们如何在 beforeEach 中正确初始化 Cypress 拦截?