未来的CSS将引入新的媒体查询方式@when和@else

205a6cc7de0f86e3a2e9c07a1f664d32.png

英文 | https://levelup.gitconnected.com/future-css-a-first-look-at-when-and-else-statements-44e33deeb032

翻译 | 杨小爱

在 CSS 中,我们使用媒体查询来选择不同的设备。媒体查询为我们提供了一种基于多种条件选择设备的简单方法,例如屏幕尺寸、像素,格式:即打印或屏幕。

随着时间的推移,这逐渐变得更加复杂,现在,我们经常平衡许多有时相互冲突的条件。

因此,在新的 CSS 条件规则 5 规范试图通过引入两种新的媒体查询方式来解决这个问题——@when 和 @else。这些最终将允许我们直接在 vanilla CSS 中创建条件语句。让我们来看看它是如何工作的!

1、浏览器目前对@when/@else 的支持情况

目前,没有浏览器原生支持@when/@else,但是,这可能很快就会改变。对@when/@else 的完全支持如下所示。

aa4c3632ec30e706dfa88ded5d2beada.png

2、在 CSS 中使用 @when/@else

假设我们有一组规则要应用于宽度小于 780 像素的屏幕尺寸,它支持 display: flex,而另一组规则应该适用于除此之外的任何东西。 

以前,我们必须使用@media 查询来分别选择这两个东西。在选择多种不同的东西时,这变得有点混乱。

使用 @when 和 @else ,它看起来像这样:

@when screen and (max-width: 780px) and supports(display: flex) {
    .my-element {
        color: red;
        display: flex;
    }
}
@else {
    .my-element {
        display: block;
    }
}

我们还可以链接多个条件。 

例如,假设我们有三个场景:最大宽度为 780px 的屏幕支持显示:flex,更大的屏幕支持显示:flex,以及其他所有内容。 

在这种情况下,我们可以有多个条件:

@when screen and (max-width: 780px) and supports(display: flex) {
    .my-element {
        color: red;
        display: flex;
    }
}
@else screen and supports(display: flex) {
    .my-element {
        display: flex;
    }
}
@else {
    .my-element {
        display: block;
    }
}

正如你所期望的,我们可以有更多的@else 语句,但是,上面的内容让你知道@when 和@else 在CSS 中实现时会有多有用。

结论

条件语句从未出现在 vanilla CSS 中,所以,很高兴终于看到它们即将推出。它还将大大简化我们进行媒体查询的方式。 

如果我们使用像 SASS 这样的第三方包,我们在 CSS 中已经有了逻辑,但是当它原生到 CSS 时,我们可以避免使用预处理器或使用此添加构建的需要。

最后,感谢你的阅读,祝编程愉快!

学习更多技能

请点击下方公众号

3d4de64334fbecad3f379714107e0830.gif

27ada65ded39d5f8313e5110a671f979.png

1f1eebf10b983c6d0e841726bc195656.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当对CSS进行缩小化处理时,可能会出现以下警告: 1.语法错误:CSS文件中可能存在语法错误,例如缺少分号、括号不匹配等。这些错误可能导致缩小化过程中出现意外的结果或无法正常工作。 2.命名冲突:如果CSS文件中存在相同的类名、ID或属性名,缩小化过程可能会导致命名冲突。这可能会导致某些样式被覆盖或应用不正确。 3.浏览器兼容性:某些CSS属性或值可能在不同的浏览器中具有不同的兼容性。在进行缩小化时,可能会出现对一些浏览器不支持的属性或值进行了错误的缩小化处理。 4.特殊选择器:CSS中的特殊选择器,如伪类选择器或属性选择器,可能不被缩小化算法正确处理。这可能导致某些样式无法正确应用或产生错误的样式。 5.依赖关系:如果CSS文件中存在依赖关系,如一个样式依赖于另一个样式的存在,缩小化过程可能无法正确处理这些依赖关系,导致样式错误或无法应用。 为了避免这些警告,我们可以采取一些措施: 1.在缩小化之前,确保CSS文件中的语法是正确的,没有任何错误。使用CSS验证工具可以帮助检测和修复语法错误。 2.在设计CSS时,尽量避免使用相同的类名、ID或属性名,以减少命名冲突的可能性。 3.在使用不常见的CSS属性或值之前,先进行兼容性测试,确保它们在主要浏览器中都可以正常实现。 4.在使用特殊选择器时,仔细考虑它们的应用场景,并进行测试确保它们的正确性。 5.如果存在依赖关系,可以考虑使用模块化的CSS开发方法,如使用CSS预处理器,以提高代码的可维护性和可扩展性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值