Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
faq [2018/02/03 00:56] florianfaq [2020/07/29 20:05] – [Adding more named colors] florian
Line 1: Line 1:
 ====== Frequently Asked Questions ====== ====== Frequently Asked Questions ======
  
-===== Styling <sup> and <sub> using font-variant-position =====+===== Styling <sup> And <sub> Using font-variant-position =====
  
 === Question === === Question ===
Line 71: Line 71:
  
  
-===== Selectors that depend on layout =====+===== Selectors that Depend on Layout =====
  
 === Question === === Question ===
Line 137: Line 137:
 then we can never add another selector that would depend on other properties ever. then we can never add another selector that would depend on other properties ever.
 Which one goes first? Which one goes first?
 +Something that we can only do once, ever,
 +and that will affect our ability to evolve CSS in the future,
 +is probably a bad idea for the language.
  
 Yet another way you could try to remediate all this Yet another way you could try to remediate all this
Line 147: Line 150:
  
 Instead of doing all of this, so far we've just short-circuited the entire debate and disallowed selectors from being affected by properties. Instead of doing all of this, so far we've just short-circuited the entire debate and disallowed selectors from being affected by properties.
 +
 +== Why Doesn't This Argument Apply To :hover? ==
 +
 +A common retort to the above is "we already have :hover, which has circularity issues, why can't we add this?".
 +
 +First, the fact that we've made one mistake isn't an argument for repeating the mistake. :hover *is* problematic in implementations, and we'd prefer not to add more things like it.
 +
 +Second, and more important, the circularity of :hover is very "wide" - when you apply :hover rules, you get all the way thru styling, then layout, then painting, and finally to hit-testing before you realize the element isn't hovered anymore and have to go re-style.  The user gets to at least see the full results of hovering before the engine has to figure things out again.  This is different from most other circular pseudo-classes, which circle around after just styling or layout, before the old results are even presented to the user.  This would effectively freeze the page, as the layout engine isn't even allowed to complete a single full run before it gets restarted.
 +
 +Furthermore, hit-testing is easy to for UAs to "tweak" to mostly get around the hover problems - UAs generally don't rerun hit-testing until the user moves their pointer, so as soon as they stop moving it, it settles on one rendering or the other.  Again, this isn't the case for other circular pseudo-classes.
  
 === References === === References ===
Line 173: Line 186:
 it is to browse the web as it exists, it is to browse the web as it exists,
 not as we would like it to be. not as we would like it to be.
-Whether authors correctly used well designed features, +Whether authors correctly used well-designed features, 
-correctly used poorly designed features,+correctly used poorly-designed features,
 used features in creative or weird ways, used features in creative or weird ways,
 or even accidentally depended on some bizarre behavior, or even accidentally depended on some bizarre behavior,
Line 233: Line 246:
 #sensible .selector, #sensible .selector,
 syntax = !error, syntax = !error,
-::new-feature {+:new-feature {
   background: red;   background: red;
 } }
Line 240: Line 253:
 Because of how selectors are parsed, this is not applied at all. Because of how selectors are parsed, this is not applied at all.
 Wouldn't it be nicer if it could apply to elements that match ''#sensible .selector'', Wouldn't it be nicer if it could apply to elements that match ''#sensible .selector'',
-also apply in up to date browsers to elements that match :new-feature,+also apply in up to date browsers to elements that match '':new-feature'',
 and just skip the syntax error? and just skip the syntax error?
  
Line 250: Line 263:
  
 == more details == == more details ==
-However, this particular case it interesting. +However, this particular case it interesting. If we did this change, all previously valid pages would continue to work, so what's the problem?
- +
-If we did this change, all previously valid pages would continue to work, so what's the problem? +
- +
-For new content, that behavior would be be nice, +
-but for existing content it would be a huge problem.+
  
 It turns out that since mistyping a selector is an easy mistake to make, It turns out that since mistyping a selector is an easy mistake to make,
Line 268: Line 276:
  
 Effectively, even though it is not intentional, Effectively, even though it is not intentional,
-the page, which has been fixed through other css declarations, +many pages which have been fixed through additional css declarations 
-now depends on this cruft not to work.+now depend on this sort of cruft not to work.
 More often than not, “randomly“ changing the background, More often than not, “randomly“ changing the background,
 the size, the borders, or the display value of some elements in the page will break it badly. the size, the borders, or the display value of some elements in the page will break it badly.
Line 280: Line 288:
  TBD  TBD
  
 +===== Adding more named colors =====
 +
 +=== Question ===
 +
 +Can we add new named colors to CSS?
 +
 +
 +=== Answer ===
 +
 +No.
 +
 +== more details ==
 +
 +The built-in set of named colors in CSS is weird and bad, and we keep them mainly for legacy interop reasons. There's very little utility to adding to a set of colors where you have to look up the proper spelling and remember what actual colors the names map to.
 +
 +Naming colors can be done in stylesheets using custom properties. It is not likely we will ever add more names to the built-in set.
 +
 +=== References ===
 +
 +  * https://github.com/w3c/csswg-drafts/issues/3192#issuecomment-427132614
 +  * https://www.youtube.com/watch?v=HmStJQzclHc
 
faq.txt · Last modified: 2023/09/21 04:45 by SebastianZ
Recent changes RSS feed Valid XHTML 1.0 Valid CSS Driven by DokuWiki