Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/37.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 如何在属性选择器中使用/模拟类似正则表达式的反向引用?_Css_Css Selectors - Fatal编程技术网

Css 如何在属性选择器中使用/模拟类似正则表达式的反向引用?

Css 如何在属性选择器中使用/模拟类似正则表达式的反向引用?,css,css-selectors,Css,Css Selectors,我要做的是编写一个选择器,在一个位置匹配任意值,然后稍后要求另一个值等于它。如果[attr=“value”]将“value”解析为正则表达式,那么这将解决我的问题: *[class="(.+)"] *[class="if_\1"] {/* styles */} 显然,我可以单独列出每个可能的类,但这会带来很大的便利 这可能吗?不,不可能。属性选择器几乎完全是静态的,几乎不提供动态匹配功能(除了子字符串匹配之外,子字符串匹配仍然是静态的,而不是基于动态模式的)。它们不支持任何类似于日常正则表达式

我要做的是编写一个选择器,在一个位置匹配任意值,然后稍后要求另一个值等于它。如果
[attr=“value”]
将“value”解析为正则表达式,那么这将解决我的问题:

*[class="(.+)"] *[class="if_\1"] {/* styles */}
显然,我可以单独列出每个可能的类,但这会带来很大的便利


这可能吗?不,不可能。属性选择器几乎完全是静态的,几乎不提供动态匹配功能(除了子字符串匹配之外,子字符串匹配仍然是静态的,而不是基于动态模式的)。它们不支持任何类似于日常正则表达式的内容


样式表预处理器(如Sass或更低版本)将允许您生成所需的静态CSS规则,但所做的只是自动执行手动任务,分别列出所有可能的值,这证明了我的第一点。

您的问题是关于CSS还是关于Javascript?标题上写着CSS,但唯一的标记是Javascript。也许你应该重新设计你的代码,不需要这种魔力。@Boaz我的错误,标记现在被修复了。@JanDvorak我已经修复了。我只是想看看是否有其他人能让这种方法发挥作用,因为它将是一种更简洁的方法,毫无疑问在其他地方有用。“因为它将是一种更简洁的方法,毫无疑问在其他地方有用。”–这首先需要浏览器做更多的工作,然后再看看哪些元素与选择器匹配……这是完全不实际的。我不认为Sass、LESS或任何仅CSS的预处理器可以帮助实现这一点,而不是没有可能值的列表,因为你必须以简单的旧CSS结束。@twberger在我能想到的每种方法中,你都需要有这个列表,或者作为第一步来构建它。@twberger:这就是重点,但我觉得有必要添加一个关于预处理器的单独段落,以免其他人继续谈论它,好像我不知道它们的存在一样。@JanDvorak same。我希望我们中的一个人能想出不同的想法。