gpt4 book ai didi

css - -ms-filter 和过滤器 CSS 规则的允许语法

转载 作者:行者123 更新时间:2023-11-28 11:10:11 24 4
gpt4 key购买 nike

我正在尝试让我的 CSS 通过验证,我有很多样式规则如下所示:

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='../../../public/images/circ_logo_trans_50.png',
sizingMethod='crop')";
filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(
src='../../../public/images/circ_logo_trans_50.png',
sizingMethod='crop');

当代码如您所见时,验证器似乎会抛出错误。但是当我删除换行符时,它通过了。

我的理解是 -ms-filter 后面应该跟一个带引号的字符串,而 filter 不应该。

到目前为止我所说的是否正确?此语法还有其他不正确的地方吗?

我在尝试缩小 CSS sass in.scss:out.css --style compact 时偶然发现了这个问题。当所有代码都在一行时,最后的样式会停止工作,因为前面有一些无效的东西。我很确定它与这些过滤器有关。

最佳答案

您对 -ms-filterfilter 属性的理解是绝对正确的。

CSS 的重要问题在于字符串的语法。 spec明确指出字符串不能直接包含换行符。为了在源代码本身中将字符串分成多行,只需在除最后一行(出现结束引号的地方)之外的每一行的末尾添加反斜杠:

-ms-filter: "progid:DXImageTransform.Microsoft.AlphaImageLoader(\
src='../../../public/images/circ_logo_trans_50.png',\
sizingMethod='crop')";

这将允许验证器正确解析您的 CSS 而不会阻塞。它不应该给 IE 带来问题,因为它试图解析字符串供自己使用;不幸的是,我不能肯定地说它不会。如果它确实有问题,那么您可能必须要么

  • 完全取消换行符,或者
  • 删除反斜杠并使这些声明无效。下次验证时,将这些行注释掉以防止验证器解析器阻塞。

请注意,未加前缀的 filter 属性在验证时仍然存在问题,因为它是一个不带前缀的非标准属性(可以这么说,前缀是 the standard way of declaring non-standard properties )。当然,您不必担心这一点,因为您知道您使用的是一种被广泛认可的非标准形式的属性。

关于css - -ms-filter 和过滤器 CSS 规则的允许语法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23636540/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com