【发布时间】:2021-08-25 12:36:26
【问题描述】:
注意:由于poor support table,MRE 可能无法在某些浏览器中运行。
@property --width1 {
syntax: '<length>';
inherits: false;
initial-value: 20em;
}
@property --width2 {
syntax: '<length>';
inherits: false;
initial-value: 200px;
}
div {
margin: 30px;
height: 30px;
background: black;
color: white;
text-align: center;
}
#div1 { width: var(--width1); }
#div2 { width: 20em; }
#div3 { width: var(--width2); }
#div4 { width: 200px; }
<div id="div1">var(--width1) = 20em</div>
<div id="div2">20em</div>
<div id="div3">var(--width2) = 200px</div>
<div id="div4">200px</div>
在px 中,div3 的宽度与预期的div4 相同。
在em 中,div2 的宽度符合预期。但是在div1 中,几乎就像var(--width1) 被忽略,宽度设置为auto。 var(--width1) 有什么方法可以按预期工作吗?
【问题讨论】:
-
正如您在帖子中所说的那样 - 它是实验性功能,所以不要指望它能够正常工作
-
@Justinas 意味着我需要坚持使用旧的手动更改宽度的形式:( 没有与此主题相关的文章吗?
-
你不能在那里使用相对单位(你也可以尝试使用百分比,它不起作用)。不幸的是,规格页面现在已关闭,无法为您提供答案:drafts.css-houdini.org/css-properties-values-api-1/…
-
@TemaniAfif 你可以使用百分比。如果您将数据类型更改为
length-percentage或只是percentage。不知道为什么em不起作用,因为您可以在这里看到developer.mozilla.org/en-US/docs/Web/CSS/length#unitsem是length数据类型接受的单位之一。 -
@MihaiT 这是一个长度,但它是一个相对。我总是在初始值内遇到问题。您可以尝试使用
vw、ch等。有时行为有点随机
标签: html css css-variables css-houdini