Thursday 15 March 2007

Baseline Implementations of CSS

Let’s put on our fantasy hats for a moment and imagine that all browser vendors agreed to implement a common baseline for CSS 2.1 in their next dot zero release. Which features of the CSS specs up to CSS 2.1 would you absolutely want for that baseline?

Filed under:   general
Posted by:   Molly | 17:43 | Comments (57)

Comments (57)

  1. Interoperability on the already supported features.

  2. Anne, do you mean that each supported feature is implemented consistently? If so, I strongly agree.

  3. We already have a much better baseline than we did a year or so ago, so I’m going to be greedy and ask for generated content. ๐Ÿ™‚

  4. Multiple background images for one element. Oh wait, I think that’s CSS3. How about being able to specify input elements by type (eg input[“text”] – I think IE does not do this).

  5. I think… generated content, display:table-cell and multiple backgrounds though it’s from CSS3 ๐Ÿ˜‰

  6. …IE7 already know about input[“text”] ๐Ÿ˜‰

  7. All the fun stuff -stuff that will really make the way I go about building pages like opacity, rgba units, multiple bg images – I’m really waiting for is in 3.0 [or in a few cases, were pulled between 2.0 and 2.1], but glancing at the 2.1 TOC again here’s my wish list: for baseline performance

    – full gamut of selectors [though we’re doing pretty good on that front]
    – generated content [incl. counters]
    – all values of display property working — particularly run-in and table related options
    – the end to all things ‘hasLayout’, old and NEW

    Guess that last one isn’t in the spec, but its an awful non-spec concept that just continues to bite you in the ass.

  8. I’d like to see the box model consistently applied and for MSIE to recognize CSS for nested ULs utilized in dropdown menus so no Javascript is needed.

  9. All of them, dammit.

    (All of them in CSS2.1, that is.)

  10. Dang, Anne took my answer!

  11. display:table et al. to get rid of the last argument the table junkies have against CSS layouts.

  12. Another vote for generated content. Also, pseudo-element selectors, attribute selectors, and more pseudo-class selectors.

  13. This is possibly controversial but I would say that, would make my life and I’m sure other developers would be to set a Browsers current implementation as the baseline, and lets make it easy, well easier, set it as Firefox 2(.o.2) since although I prefer Firefox, Opera has mainly set the bar higher, in most respects.

    Then have all of the default styles the same act the same without tricks (, next would be to make sure the bugs are gone or at least documented by the browser developers, don’t worry to much about hacks or whatever I’m sure we can work around them somehow if we know they are going to happen and when.

    Finally since this will not be implemented without a look towards backwards compliance give us a ‘conditional comment’ type statement to activate this ‘mode’ – baseline.1 perhaps (as the best thing Microsoft ever came up without an alleged or otherwise copy, was conditional comments IMO)

  14. pepelsbey: I stand corrected. So IE7 supports attribute selectors, but IE6 didn’t. That was an issue for me a couple times.

    I think Eric put it best: all of them. And quickly!

  15. Oops ps (to an already long post) also that I agree with Anne / Molly in that whatever is implemented *needs* to be consistent even to the point that I would prefer it to be *wrong* but consistent but right in one browser but different in all of the others.
    It’s like writing “color” in Css I’m British so it should be “colour” but it’s all good I learn the way it has to be spelt and live with it (although obv. moan every now and then ๐Ÿ™‚ )

  16. The display property. The other cool stuff (like text-shadow) has either been dropped due to lack of implementations or is in CSS3 (like multiple backgrounds).

  17. display:table stuff and generated content (inlcuding CSS quotes), are way too useful to ignore. Of course, to support CSS 2.1 quotes fully, a browser first needs to support the q element. Eh hem.

  18. My wish would be that I could make the fantasy-hat superfluous, and that posts like this never had to see the daylight.

  19. I want the CSS 2.1 spec supported on all browsers across the board. Same rendering on all of them. Dear God if I could work without multiple stylesheets…

    How is it not in their best interest to support this? Make it an MCC for CSS.

  20. I would like to see consistency in specificity. I’ve run into issues with Safari, Firefox and IE all processing selectors in a different way.

    For those of us that leverage the cascade in our designs, this can be a real pain.

    I’d also like to see browsers notify users when they view table-based sites. Whenever a bad table-based site comes up, a little window says “WARNING: The owner of this site is lazy and/or living in 1999. Would you like to send the webmaster an obnoxious e-mail?”

  21. CSS Tables. CSS Tables. CSS Tables.

  22. Everything that is set within the 2.1 spec.

    Additionally, if a browser developer is going to implement proprietary properties, e.g. IE7s zoom property and its associated interpolation mode, that such properties be thoroughly tested before implementation, that the developer be receptive to and have methods available for reporting bugs and that sufficient resources be made available for temporary workarounds when these proprietary properties fail.

    Thank you.

  23. I haven’t read up on the specs enough to know whether CSS 2.1 includes a solution to this, but…

    – A real layout engine.

    Floats were never meant for multi-column layout, and layout is the one thing about CSS that always feels like a cheesy hack to me.

  24. I don’t think it’s too much to ask to have the entire CSS 2.1 and HTML 4.01 specs supported accurately. At the very minimum the screen-based properties should be completely supported (paged and aural media would be nice as well, but are not critical to have in a “baseline”).

    I think it’s ridiculous that “good” browsers like Firefox, Opera, and Safari are implementing parts of the non-final CSS 3 spec when they don’t even have complete HTML 4.01 support.

  25. – All selectors (yep, every last one)
    – Generated content
    – Min/Max width
    – All display properties

    Failing that, I’d settle for everyone matching Opera ๐Ÿ˜‰ *ducks and runs*

  26. Oh goodness, such a list I could write…

    * ditto on the consistent implementation concept (including browser defaults)
    * a direct/proper way to perform vertical centering would be nice
    * more typographic control – if I had to pick one item from under that umbrella, it would be finer kerning/letterspacing
    * consistent styling of form fields (mostly Safari’s problem, hopefully fixed soon… ties into the “default styles” issue)

    I can come up with more, it’s just late and I’m still in my post-SXSW coma, and couldn’t rest today. I promise a song or two will be coming your way shortly as well ๐Ÿ™‚

  27. The :before and :after pseudo-elements, display:table, rounded borders.

  28. Consistency, consistency, consistency. Make IE7 fully compliant with CSS2.1. It’s still ways and leaps behind Opera and Firefox and still needs to play catch-up to … catch up. I still have to employ IE-only hacks, even for Internet Explorer 7. And now it’s even harder than before, since they support most selectors, but a lot of the properties and values (especially certain combinations of them) are really badly implemented.

  29. What to add, everything has been said… Consistency, and full support of CSS2.1 and HTML 4.01 in all browsers. I still find it hard to believe that this is so hard to achieve, why is it too much to ask that all browsers stick to what are well established standards ?

  30. Attribute selectors, and :hover on all elements have to be the bare minimum.
    If we’re going to go nuts, then lets throw min-max widths in there and kill all float bugs too!

  31. Min- and max-width would be great, and multiple backgrounds… I know they’re from 3.0 but that would be sooooo useful ๐Ÿ™‚

  32. I see absolutely no reason why we can’t shoot for the entire specification. In fact, I was surprised that we hadn’t got to that stage by the time IE7 was released. I’d also like to see agreement of specification interpretation between manufacturers.

    In fantasy land, I would prefer NOT to see proprietary CSS extensions of any kind. I would rather see such things incorporated into future CSS specifications for later implementation, instead of one browser going it alone.

    Finally, I’d like to see browser manufacturers apologize for making life so difficult for us all the time. Especially Microsoft for taking so long to give us “position:fixed”.

  33. I agree with Nick Harris. :hover for all elements, min and max widths, and the death of float bugs.
    I’d also throw in standardization of ul and li elements and form elements… seems like each browser handles these with various different combinations of margin and padding.

  34. If you’d said CSS2.0 then I would have given you the bits I thought worthwhile, but with CSS2.1 (like several commenters above) I really don’t see why the entire spec shouldn’t be the goal. Yes, IE’s lagging behind, but this is Microsoft, not a bedroom coder! They’ve done bigger things before, and I’m sure they’ll do them again.

    Besides, how much incentive would that give other browsers manufacturers if they knew they were being beaten in the standards race by IE ๐Ÿ˜‰

  35. Pingback: » What Content Would You Generate?

  36. Like Eric said

    All of it dammit!!!!

  37. Having all the browsers pass ACID 2.

  38. Each and every one of the 2.1, but if not, then just
    – selectors (would help all designers greatly)
    – pseudo-elements and pseudo-classes
    – aural style sheets ->
    and last but not least: full support of the display attribute

  39. Pseudo-elements and classes, esp :before, :after and :lang.

  40. display: inline-block is at the top of my list. Let’s let the overworked, underpaid and rather abused float take a breather and use something that was intended for the role we’re forcing float to play.

    After that, multiple background images, border images, corner-radii… basically the full sweet of possible element decoration. Honestly, this “Here’s another bad way to make rounded corners” thing should be a thing of the past, but it won’t until we get backgrounds and borders as expressive as they should be.

  41. Pingback: » Blog Archive » Molly pregunta sobre CSS y luego se va a Redmond

  42. Just support CSS 2.1, just that, please.

  43. CSS 2.1 already a baseline itself.
    All browsers should support it fully and consistently with no exception for IE.

  44. The cool stuff has either been dropped due to lack of implementations or is in CSS3. And other display property will help you.

  45. Another vote for display:table. That would make a massive increase in the kinds of layouts that could be used in real world applications.

    If IE were to abandon its HasLayout behaviour completely, it would have to implement generated content, or, as the spec stands, there wouldn’t be a way to auto-enclose floats in IE.

    I’m hoping, Molly, that this isn’t just pie-in-the-sky, but will actually be fed to the IE dev team…?

Upcoming Travels