San*_*ord 5 sass css-selectors
我正在尝试使用 SCSS 设置进度条的样式。为了使其在 Webkit 和 Gecko 浏览器中都能工作,我需要同时使用-webkit和-moz前缀:
progress {
height: 50px;
-webkit-appearance: none;
appearance: none;
background: cyan;
&::-moz-progress-bar,
&::-webkit-progress-value {
background-color: orange;
}
&::-webkit-progress-bar {
background-color: cyan;
}
}
Run Code Online (Sandbox Code Playgroud)
这呈现为
progress {
height: 50px;
-webkit-appearance: none;
appearance: none;
background: cyan;
}
progress::-moz-progress-bar, progress::-webkit-progress-value {
background-color: orange;
}
progress::-webkit-progress-bar {
background-color: cyan;
}
Run Code Online (Sandbox Code Playgroud)
这在 Firefox 中效果很好,但 Chrome 似乎不喜欢它。比较以下两个实现:
progress {
height: 50px;
-webkit-appearance: none;
appearance: none;
background: cyan;
&::-moz-progress-bar,
&::-webkit-progress-value {
background-color: orange;
}
&::-webkit-progress-bar {
background-color: cyan;
}
}
Run Code Online (Sandbox Code Playgroud)
progress {
height: 50px;
-webkit-appearance: none;
appearance: none;
background: cyan;
}
progress::-moz-progress-bar, progress::-webkit-progress-value {
background-color: orange;
}
progress::-webkit-progress-bar {
background-color: cyan;
}
Run Code Online (Sandbox Code Playgroud)
progress {
height: 50px;
-webkit-appearance: none;
appearance: none;
background: cyan;
}
progress::-moz-progress-bar, progress::-webkit-progress-value {
background-color: orange;
}
progress::-webkit-progress-bar {
background-color: cyan;
}Run Code Online (Sandbox Code Playgroud)
<progress max="1" value="0.5"></progress>Run Code Online (Sandbox Code Playgroud)
问题似乎来自于在逗号分隔列表中使用特定于供应商的伪代码渲染 CSS。 有什么方法可以强制 SASS 处理器将逗号分隔列表中的每个选择器呈现为其自己的声明吗?
不使用 mix-ins 会很好,但如果这是唯一的方法,那就是唯一的方法。
是的,你可以这样做!如果您想将 SASS 渲染为单独的 CSS 规则,只需将逗号分隔列表分成两个单独的规则即可。SASS 将不同的规则分开,不会将它们包装在一起。例子:
// ### > SASS
xprogress {
height: 50px;
appearance: none;
background: cyan;
//## divide comma seperated selectors
//## into different rules
&::-moz-progress-bar {
background-color: orange;
}
&::-webkit-progress-value {
background-color: orange;
}
&::-webkit-progress-bar {
background-color: cyan;
}
}
// ### > compiles to css
progress {
height: 50px;
-webkit-appearance: none;
-moz-appearance: none;
appearance: none;
background: cyan;
}
//## when compiling CSS
//## different rules will survive
progress::-moz-progress-bar {
background-color: orange;
}
progress::-webkit-progress-value {
background-color: orange;
}
progress::-webkit-progress-bar {
background-color: cyan;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
686 次 |
| 最近记录: |