css - 简化长 CSS 选择器
问题描述
我有以下 CSS 选择器:
#AllContextMenus :not(.menu-iconic-left):not(.menu-accel):not(.menu-accel-left):not(.menu-accel-container):not(.menu-accel-container-left):not(.menu-iconic-accel):not(.menu-right)::before
出于可读性目的,我喜欢将所有代码行保持在 100 个字符以下。
有什么方法可以简化、优化或编写这个 CSS 选择器而不改变它匹配的内容并且不降低性能?
例如,是否可以在 中使用任何类型的“and”运算符 :not()
?
解决方案
您通常无法在不更改匹配内容的语义的情况下简化选择器。
但是您可以在许多点将选择器分成多行以满足最大行长度要求。只需使用注释并将换行符放在注释内即可。像这样:
#AllContextMenus :not(.menu-iconic-left)/*
*/:not(.menu-accel)/*
*/:not(.menu-accel-left)/*
*/:not(.menu-accel-container)/*
*/:not(.menu-accel-container-left)/*
*/:not(.menu-iconic-accel)/*
*/:not(.menu-right)::before
#AllContextMenus :not(.menu-iconic-left)/*
*/:not(.menu-accel)/*
*/:not(.menu-accel-left)/*
*/:not(.menu-accel-container)/*
*/:not(.menu-accel-container-left)/*
*/:not(.menu-iconic-accel)/*
*/:not(.menu-right)::before {
color:red;
content:'TEST '
}
<section id="AllContextMenus">
<div class="a">A</div>
<div class="menu-iconic-accel">menu-iconic-accel</div>
</section>
推荐阅读
- javascript - 如何为div内的每个元素设置边框颜色?
- c# - 在 Unity3D 中,如何在迭代 FileInfo[] 数组(非阻塞)时异步显示 UI 径向进度条?
- android - 当用户在 android 应用程序中执行某个操作时,有没有办法知道所有函数被调用?
- javascript - 如何有效地存储大量 URL
- mongodb - mongoDB "$lookup 的参数必须是字符串,let: .... is type 3",
- python - 如何在 Python 中使用正则表达式捕获数字?
- javascript - html动态居中文本上下图像
- java - “java.lang.NullPointerException:尝试在空对象引用上调用虚拟方法'...'”是什么意思,我该如何解决?
- excel - 为什么类型转换不能解决这个 VBA 溢出错误
- android - RecyclerView 项目仅在添加时未对齐