- From: joonghunpark via GitHub <sysbot+gh@w3.org>
- Date: Mon, 28 Aug 2023 14:43:06 +0000
- To: public-css-archive@w3.org
joonghunpark has just created a new issue for https://github.com/w3c/csswg-drafts:
== [css-background] Question about serialization of multiple layers of css background ==
I was looking into the bugs of chromium, https://bugs.chromium.org/p/chromium/issues/detail?id=1473894,
and found that Firefox and chrome shows a different behavior for serialization of background shorthand
when they are used with its longhand properties in a mixed way.
FF: Serialize background shorthand + its longhand => longhands only
Chrome: Serialize background shorthand + its longhand => background shorthand only.
And as a result, chrome's serialization result is not matched with the result of its specified original statements.
For example, for style rule below, FF and chrome shows the different CSSStyleDeclaration result.
<style>
      input {
        background: #00ee00 no-repeat;
        background-image: linear-gradient(to bottom, #8ab73e, #8ab73e),
          linear-gradient(to bottom, #353535, #353535);
        background-size: 0 1px, 100% 1px;
        background-position: 50% 50%, 50% 100%;
        border: none;
      }
    </style>
1) FF CSSStyleDeclaration
input { background-color: rgb(0, 238, 0); background-repeat: no-repeat; background-attachment: scroll; background-origin: padding-box; background-clip: border-box; background-image: linear-gradient(rgb(138, 183, 62), rgb(138, 183, 62)), linear-gradient(rgb(53, 53, 53), rgb(53, 53, 53)); background-size: 0px 1px, 100% 1px; background-position: 50% 50%, 50% 100%; border: medium; }
2) Chrome CSSStyleDeclaration
input { background: linear-gradient(rgb(138, 183, 62), rgb(138, 183, 62)) 50% 50% / 0px 1px no-repeat, linear-gradient(rgb(53, 53, 53), rgb(53, 53, 53)) 50% 100% / 100% 1px rgb(0, 238, 0); border: none; }
Because 'background' shorthand's omitted properties uses their default values, meanwhile longhand properties repeats the list of values until there are enough if a property doesn’t have enough comma-separated values to match the number of layers,
so chrome's shorthand presentation of serialization result seems like a buggy behavior.
If we want to keep chrome's current behavior, it seems that we need to manipulate the shorthand 'background' serialization result to include the repeated value list(https://www.w3.org/TR/css-backgrounds-3/#layering),
but I'm not sure which way is the right one between the current FF and Chrome behaviors.
Is there a spec for 'background' shorthand property's serialization result?
I'd like to ask about it before I proceed the chromium bug further.
Thank you for your help!
Please view or discuss this issue at https://github.com/w3c/csswg-drafts/issues/9254 using your GitHub account
-- 
Sent via github-notify-ml as configured in https://github.com/w3c/github-notify-ml-config
Received on Monday, 28 August 2023 14:43:08 UTC