- From: Tab Atkins Jr. <jackalmage@gmail.com>
- Date: Mon, 25 Apr 2016 07:50:39 -0700
- To: Ting-Yu Lin <tlin@mozilla.com>
- Cc: www-style list <www-style@w3.org>
On Mon, Apr 25, 2016 at 12:04 AM, Ting-Yu Lin <tlin@mozilla.com> wrote: > Do we want to redefine other counter styles keyword like 'disc' other than > disclosure-open/closed to be a 'content' keyword? I don't see any particular reason to. I only added the disclosure-open/closed keywords to list-style-type because I anticipated <summary> using display:list-item when I wrote the Counter Styles spec. > If we remove > disclosure-open/closed from being a keyword of 'list-style-type', won't this > cause a backward compatibility issue? With who? > I'm a implementer for Firefox, so this is from the implementation point of > view. > > Tab's proposal is cleaner, but I'm worrying about the implementation > complexity > for defining ::marker to be another universal pseudo like ::before for > solving > the issue for summary implementation. I'm curious what the impl complexity is - you already have code to handle creating ::marker for display:list-item, and you have code to handle ::before/after pseudo-elements on all elements. Are the two too hacky to simplify reasonably? > We do want the summary marker to be > stylable. However, from the current details and summary usage I saw, authors > are > either satisfied with the built-in rendering of the triangle, or they're > hiding > the built-in one, and replace it by stuff in summary::before. Needless to > say that if they want the marker position to be at the end of summary > they'll still need to hide the triangle, and provide ones in summary::after > like this page. Why so? That page (<https://developer.microsoft.com/en-us/microsoft-edge/platform/faq/>) can just use "summary { display: flex; } summary::marker { order: 1; }". > And using summary::before is also the practical way for a > decent > web page to work across browsers with or without details and summary > implementation. > > Even though summary being a list-item is hacky, it did provide a clean way > to hide > the triangle by summary { list-item-type: none }. Same under my proposal, you just do "summary::marker { content: none; }" (or display:none, whichever feels most natural). > I can live with hacks in browser implementation as long as we provide a > cleaner way for the authors to style the triangle, and a not-too-difficult > way for > vendors to start implement or adopt the standardized details and summary > feature. > >> fantasai offers an alternate proposal: leave <summary> as is, leave >> the hack for the first problem, but make the list-style-* properties >> actually only apply to the ::marker pseudo, rather than to list items. >> Inheritance ensures that we maintain today's behavior, but HTML can >> then set list-style-position:inside directly on the summary::marker, >> and avoid the second problem entirely. > > I feel changing list-style-* properties to *only* apply to the ::marker > could be > another source for compatibility issues. Other implementers who are familiar > with counter styles might want to comment this. I don't see how it can cause any compatibility issue at all, in any scenario. The list-style-* properties today only apply to list items, they inherit, and ::marker is always a child of a list item, so all code that today uses them to style a list item would, under this proposal, style the marker instead, and no page can accidentally pick up marker styling if it wasn't already styling the list item. ~T
Received on Monday, 25 April 2016 14:51:26 UTC