Re: [csswg-drafts] [css-content] Implementing content:none on elements is not web-compatible (#6503)

Just to clarify Chromium's behavior. Chromium implements `content` as a single linked list. Both `normal` and `none` used to be represented as `nullptr` (empty list). So they were equivalent. When serializing a computed style, nullptr would become `none` for `::before` and `::after`, and `normal` for other things.

But I changed the behavior when implementing `::marker`. Now empty list means `normal`, and `none` has its own value. So they now have different computed values. But I didn't want to have compat problems, so I kept the old serialization behavior for things other than `::marker`.

Regarding the `inherit` example, `::marker` fails to inherit `none` because `content: inherit` [never works in Chromium](https://source.chromium.org/chromium/chromium/src/+/main:third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc;drc=87b3fd9b73e6ac73689384748a988bb761ba8f15;l=2149-2152):

```cpp
void Content::ApplyInherit(StyleResolverState& state) const {
  // FIXME: In CSS3, it will be possible to inherit content. In CSS2 it is not.
  // This note is a reminder that eventually "inherit" needs to be supported.
}
```

-- 
GitHub Notification of comment by Loirooriol
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/6503#issuecomment-907477091 using your GitHub account


-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config

Received on Friday, 27 August 2021 21:08:20 UTC