- From: Rune Lillesveen via GitHub <sysbot+gh@w3.org>
- Date: Tue, 17 Dec 2024 19:38:13 +0000
- To: public-css-archive@w3.org
> Came here after reviewing the related MDN / Google materials on CSS Style Queries. It doesn't seem like any of the documentation mention that it does not resolve calculated values.
>
> Amusingly you can match the exact calc value as a string
>
> ```css
> .container {
> container: test / inline-size;
> --test: calc(1px + 1px);
> }
> @container test style(--test: 2px) {
> /* in your dreams */
> div {
> border: 3px solid red;
> }
> }
> @container test style(--test: calc(1px + 1px)) {
> /* this works! */
> div {
> border: 3px solid purple;
> }
> }
> ```
>
> https://jsfiddle.net/20as4jgk/
The thing is that `--test` is not a registered custom property, so it is merely a string and calc() does not have a meaning in that context other than its string representation.
If you register the custom property as a length, you can both query calc() and the absolute value:
```html
<!DOCTYPE html>
<style>
@property --test {
syntax: "<length>";
inherits: false;
initial-value: 0px;
}
#container1 {
--test: calc(50px + 50px);
}
#container2 {
--test: 100px;
}
@container style(--test: 100px) {
#target1 {
color: green;
}
}
@container style(--test: calc(40px + 60px)) {
#target2 {
color: green;
}
}
</style>
<div id="container1">
<div id="target1">Green</div>
</div>
<div id="container2">
<div id="target2">Green</div>
</div>
```
--
GitHub Notification of comment by lilles
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/7185#issuecomment-2549448309 using your GitHub account
--
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Tuesday, 17 December 2024 19:38:14 UTC