CSS中能否将a:link规则嵌套写入#Ford的属性规则块内?
结论:你的初步判断不完全准确,是否可行需要分场景判断:
- 如果你直接在浏览器运行原生CSS,且需要兼容2023年之前发布的旧版本浏览器:该结论完全正确,这种嵌套写法不符合传统CSS语法规范,浏览器会将嵌套的
a:link规则判定为无效语法直接忽略,无法生效。传统原生CSS下只能分开写两个独立规则块:
#Ford { width:34%; text-align:center; border-width:15px; border-style:inset; border-color:#F7DC6F; background-color:teal; padding:10px 220px; } #Ford a:link{ text-decoration: none; }
- 如果你使用Sass、Less、Stylus这类CSS预处理器:这种嵌套写法是完全合法可行的,预处理器在编译阶段会自动将嵌套规则展开为符合传统CSS规范的后代选择器写法,编译后的代码可以在所有浏览器正常运行。
- 如果你只需要兼容2023年之后发布的现代浏览器:原生CSS已经正式支持嵌套语法(CSS Nesting Module Level 3已成为W3C正式标准),你的写法是合法的,Chrome 112+、Firefox 117+、Safari 16.5+及更高版本的浏览器都可以直接解析运行这种嵌套CSS规则。
内容的提问来源于stack exchange,提问作者Cris Navas
相关产品推荐
相关产品推荐

