html - 转换为 CSS-IE 前缀时,SCSS 打破了我的网格
问题描述
我遇到了行为不端的网格问题。对于上下文,我有一个单页应用程序,我正试图将其转换为大屏幕上的网格布局。我的 HTML 有一个包含整个页面的“主网格”div:
<body>
<div class="main-grid">
...
</div>
<script ... > </script>
</body>
在此媒体查询之前,我没有向此元素添加任何属性:
@include media-md {
.main-grid {
display:grid;
grid-template-columns: minmax(1em,1fr) repeat(3, minmax(10rem,30rem)) minmax(1em,fr);
gap: 2em;
}
我遇到的问题有两个第一:这个 scss 编译成这个:
.main-grid {
display: -ms-grid;
display: grid;
-ms-grid-columns: minmax(1em, 1fr) (minmax(10rem, 30rem))[3] minmax(1em, fr);
grid-template-columns: minmax(1em, 1fr) repeat(3, minmax(10rem, 30rem)) minmax(1em, fr);
gap: 2em;
}
我从研究中了解到 IE 使用括号中的语法而不是重复,但 VSCode 似乎并不理解这一点。它在[3]处引发错误,并导致 chrome 和 FF 也使我的常规网格选项变灰。
我之前删除了这些并输入了每一列,但 Chrome 和 FF 仍然无法识别此代码。有谁知道这是怎么回事?以防万一我不够清楚:这是我的 devtools 的实时照片,以供在不稳定的网格和灰色样式上参考;
解决方案
如果您将黄色警告标志悬停在浏览器开发工具中,则会显示代码变灰的原因。
在我看来,这似乎是两个不同的问题:
(1)-ms-grid-columns
完全灰显,因为该属性的 NAME = '-ms-grid-columns' (不是值)在正确的浏览器(即 FF、Chrome 中)中是未知的。(括号[3]
似乎不是原因)。
(2)grid-template-columns: minmax(1em, 1fr) repeat(3, minmax(10rem, 30rem)) minmax(1em, fr);
属性的VALUE 错误,显示为灰色。所以代码在浏览器中根本不起作用。
第二个问题的原因似乎是使用fr
没有价值的单位。尝试改变它,即1fr
应该工作。
只是对单元的评论fr
:由于兼容性,我不太确定现在使用该单元是否是一个好主意。浏览器似乎不支持该单元,并将canIuse.com
其标记为实验性的......也许你想自己看看:
推荐阅读
- python - 绘图后使用 glOrtho 函数而不重绘整个屏幕
- python - typeerror 不支持 ^ 的操作数类型:python 和 fusion360 中的“float”和“float”
- delphi - 将 TDirect2DCanvas 与 Font Awesome 图标一起使用
- python - 如何使用 Python 替换文本文件的多行中的某些字符?
- cassandra - 如何按 Cassandra 中的二级索引或列对结果进行排序?
- python - 带有可选文本的电话号码正则表达式,在在线工具上运行良好,但在我的代码中却不行
- excel - 对象'_Workbook'的方法'SaveAs'失败
- amazon-web-services - 为什么集群自动扩缩器不能在 AWS EKS 上运行?
- c++ - 错误:构造函数期望和接收不同数量的参数、预期的主表达式错误和没有匹配的函数
- multithreading - 如何为 Akka HTTP 配置特定的调度程序?