Slashdot Mirror


W3C Member Proposes "Fix" For CSS Prefix Problem

Pieroxy writes "The W3C is proposing a set of new rules for CSS prefixing by browser vendors. This would greatly mitigate the problem caused today where vendor specific prefixing is seeing its way through production sites. The problem is so bad that some vendors are now tempted to support other browsers' prefixing. The article also has a link to an email from Mozilla's Henri Sivonen that does a nice job of addressing many potential issues and shortcomings of this new proposal." I was under the impression that browser prefixes existed to allow use of experimental CSS features before standardization; just ditching the vendor prefix seems like a step backward.

144 comments

  1. The solution is.. by Psylok · · Score: 4, Insightful

    Drop them all.

    I always wondered why they've put them there in the first place. I mean: since you are implementing the function, why call it with a different name?

    1. Re:The solution is.. by Anonymous Coward · · Score: 4, Funny

      Yes, they should just use the standard.

      Stupid microsoft.

    2. Re:The solution is.. by Sarten-X · · Score: 3, Insightful

      Because IE's implementation of a given function might be different from WebKit's, so a designer has to resort to more painful workarounds to get a perfect design. It's easier to just duplicate the same detail with different prefixes (and slightly different parameters, as needed), and know that the directive will be ignored by browsers that don't do exactly what the designer wanted.

      It's like back in the bad old days of web design, where websites ran JavaScript to detect what browser was in use, so the page elements could be repositioned on the fly as needed, and the right objects would be used in other scripts.

      --
      You do not have a moral or legal right to do absolutely anything you want.
    3. Re:The solution is.. by WrongSizeGlass · · Score: 4, Informative

      Yes, they should just use the standard.

      Stupid microsoft.

      Many of the browser vendors are to blame. I'd love to point the finger at Microsoft, but they aren't the only one who isn't compliant with the supposed standards (CSS, DOM, Javascript, etc).

    4. Re:The solution is.. by Anonymous Coward · · Score: 5, Informative

      Because before it's allowed to be a recommendation, it has to have "beta'd" in 2 browsers. So, usually they prefix with the vendor-name (minus webkit browsers which use the engine-name).

      Sometimes they have competing syntaxes, such as in gradients, which webkit and gecko duked out.

      Basically, they need to allow to experiment, allow backwards compatibility (NEVER BREAK THE WEB), and still be able to ship. Prefixes solve this problem.

      The problem most are having with this, is web developers are getting lazy, and on mobile sites only including (pretty much) webkit. So now, IE9Mobile and Firefox Fennac(? is it still called that), are having to implement the -webkit- features because sites look terrible on them, because developers got lazy.

    5. Re:The solution is.. by chrissigler · · Score: 5, Informative

      In some cases, different engine authors have different ideas of what the best way to define the spec would be. And given that there's no solid standard yet, they want to do it the way they want to do it. And over time, they can even change their minds, perhaps submitting to the weight of the broader industry.

      For example, consider Webkit's two implementations of a simple linear gradient, from black at the top to white at the bottom:

      -webkit-gradient(linear, left top, left bottom, color-stop(0%,#000000), color-stop(100%,#ffffff)); /* older webkit method */
      -webkit-linear-gradient(top, #000000 0%, #ffffff 100%); /* newer webkit method */

      Note that the "new" approach to the arguments is based more on the emerging "standard" (implemented the same way with -ms-, -moz, and -o- prefixes). But when you're out there before the standard emerges (or better yet, is defined), you don't just presume to define the standard.

      Or, at least that's how I imagine it went down...

    6. Re:The solution is.. by Samantha+Wright · · Score: 1

      Because the standard won't be done for like a bajillion years, and the correct syntax could change. The prefixes are supposed to be dropped at the earliest opportunity by site implementers, and should serve as a warning to the coder that the feature they're toying with isn't done yet—unfortunately, W3C has once more underestimated the cargo-cult mindset of web developers.

      --
      Bio questions? Ask me to start a Q&A journal. Computer analogies available for most topics!
    7. Re:The solution is.. by xouumalperxe · · Score: 2

      Because many of the prefixed CSS properties have not actually been fully standardised, so having vendors support them with prefixes and varying (possibly incomplete!) implementations/syntaxes means we actually get to try the various approaches being proposed, and only pick one to standardise on once the dust has settled and people have made up their minds as to which one is better.

    8. Re:The solution is.. by gl4ss · · Score: 2

      Yes, they should just use the standard.

      Stupid microsoft.

      Many of the browser vendors are to blame. I'd love to point the finger at Microsoft, but they aren't the only one who isn't compliant with the supposed standards (CSS, DOM, Javascript, etc).

      I think it was a sarcastic jest at the parent post, which suggested that a browser producer should name a css property superblubbery instead of ms-superblubbery, which is what ms did and got flak for?

      who really gives a fuck about w3c anyways? it's not like they're ever on the leading edge. devices api group? oh they're only 5 years late and based on vendor specific stuff that shipped 5 years ago, how very nice.

      --
      world was created 5 seconds before this post as it is.
    9. Re:The solution is.. by pmontra · · Score: 2

      Agreed but there is more to that. W3C should take its share of blame for not having standardized yet rounded corners and the like. But among W3C members there are also browser vendors, so maybe it's them who don't like to agree on standards with their competitors.

    10. Re:The solution is.. by QuasiSteve · · Score: 4, Insightful

      It's like back in the bad old days of web design, where websites ran JavaScript to detect what browser was in use

      Those bad old days are ongoing. Just because everybody and their dog are including jquery now doesn't mean the sites aren't still using browser-specific javascript, css, markup, etc.

      It's easier to just duplicate the same detail with different prefixes (and slightly different parameters, as needed), and know that the directive will be ignored by browsers that don't do exactly what the designer wanted.

      Which, unfortunately, got broken with the popularity of WebKit (whether one blames Apple or Google, doesn't really matter), because designers just started using the webkit prefixed CSS and ignored the rest because it still looked 'okay enough' in other browsers, so why bother making those look 'great'?
      The same applies to things outside of the CSS realm, like the apple-touch-icon link. Android uses it. Yep - want pretty bookmarks on Android? Specify the Apple (by name) icons.
      Largely this is because the standards people are moving way, way too slow.

      But then there's the flipside of the coin. The Opera article in which they announced - along with Mozilla - to support some webkit prefixes, was hilarious.

      Their solution is to essentially alias the webkit prefixes to their own. Fine, right? But what happens if there's directives for both? Well, the last one specified overrides. Note that not the vendor-specific one that applies to that vendor's browser overrides, just the last one specified.

      So when it comes time to build a site that works well on all browsers, including the ones that use such aliasing, what do they suggest?


      blah {
      -webkit-foo : bar;
      -moz-foo : bar;
      -ms-foo : bar;
      -o-foo : bar;
      foo : bar;
      }

      But then they also note that for some features, they don't support the prefix-less version for reasons of it not being finalized yet.

      So let's say webkit specifies a blue background, moz specifies a yellow one, and o specifies red. When you view it in Opera it will be? red.
      Now you view it in a Mozilla browser, using the same aliasing nonsense, what color will it be? red. Opera's. Because that was specified last.
      Want to fix it to yellow? You'll have to specify the moz line last.
      Except that then Opera will also render it in yellow.

      It's all good and well to want to accept other vendors' prefixes, but why would you not let your own override, rather than the last-specified? I realize that as CSS goes, last-specified is supposed to override when there are conflicting specifications... but given the vendor-specific prefixes, there is no actual conflict.

      Most hilariously, they already anticipated one response... "So I only need to use -webkit- prefixes now? w00t!" and answered it with "absolutely not." and then go on to give a very, very weak defense for why developers shouldn't do exactly that. Use the webkit prefixes where webkit doesn't make use of the non-prefixed version, use the non-prefixed version to make the page future-proof (assuming the behavior stays the same, but them's the breaks), and call it a day, because Opera now supports the webkit prefix, Mozilla apparently intends to support it, and IE... well, IE...

    11. Re:The solution is.. by mwvdlee · · Score: 4, Informative

      I used to think that too, but then I started to do web development.
      Usually I develop a site on Chrome.
      Then verify that everything works on Safari, FireFox, Opera and iOS/Android if applicable.
      Then replace CSS styling with images to make it work on IE9.
      Then reduce layout to make it work on IE8.
      Then replace the div layout with nested tables to make it work on IE6.
      Then thank the gods I don't have to support IE5.5 any more.

      Yes, all browsers have compliancy issues. IE is just far, far worse than all the others.
      Even IE9 is more troublesome than a version of FireFox from a few years ago.
      IE10 improves a lot, but is still worse than the other major browsers.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    12. Re:The solution is.. by spottedkangaroo · · Score: 1, Troll

      I think they're talking about stuff like this... not really a microsoft problem. #example1 { -moz-box-shadow: 10px 10px 5px #888; -webkit-box-shadow: 10px 10px 5px #888; box-shadow: 10px 10px 5px #888; }

      --
      Imagine if you weren't allowed to use roads because a bus company complained about your driving 3 times. --skunkpussy
    13. Re:The solution is.. by Anonymous Coward · · Score: 3, Interesting

      What we need is a more "amateur" web, where people only do the work in your first step, maybe also do the second step (test on one or more other (non-IE) browsers) which only takes a minute or two, and then say they're done -- simply blowing off the question of whether or not the site looks perfect on IE.

      You can't do that (neither can I) at our jobs but for a situation where there isn't some boss telling you "21% of our users are still using IE so the site has to look ok," then blowing off IE is simply no problem.

      I mean it's not a problem for anyone, not even the IE users, because they would either accept they're not seeing the same web as everyone else (and there's actually nothing wrong with that) or else they'd upgrade. Or, worst case, they would bitch like they always do and balkanize off to their own web and the world wouldn't miss them.

      Nobody loses, if only we had a less professional approach. "Pro" doesn't mean "better."

    14. Re:The solution is.. by Piata · · Score: 2

      I really hope you're exaggerating about using nested tables to make a site work in IE6. A custom stylesheet that only targets IE6 can do the job just as well. The only hard part is knowing all of IE6's quarks.

      Personally, I prefer to go the slightly more controversial route and not support anything below IE8. If a client wants IE6 support, they're going to pay through the nose for it.

    15. Re:The solution is.. by MickyTheIdiot · · Score: 1

      When ANY browser does something non-standard, it breaks the web. Period.

    16. Re:The solution is.. by Cajun+Hell · · Score: 1

      The same applies to things outside of the CSS realm, like the apple-touch-icon link. Android uses it. Yep - want pretty bookmarks on Android? Specify the Apple (by name) icons. Largely this is because the standards people are moving way, way too slow.

      Didn't we already have link rel="icon"? Apple fucked around for no good reason that I can see. All they did was make people add more crap to their page heads, to make those pages say they same thing they were already saying, a new way.

      Combined with Microsoft's shittiness (although perversely, they and their ico format are better than everything else, at dealing with multiple icon sizes as an alternative to scaling), my pages' heads specify icons three different ways (not counting the fact there's also a /favicon.ico). Bloat bloat bloat for no reason at all, other than there being three ways to say the same thing.

      Indeed, my pages heads are just plain getting fucking huge with all the shit.

      (It's not just browsers, either, but also the crawlers/scrapers/robots. Facebook, you bastards! OGP just couldn't just use all the same tags that everything else already knew how to read. link rel="img_src" and meta property="og:image" to specify the same image url, *sigh*. At least meta name="description" property="og:description" content="blah" seem to combine ok into one tag so I don't have too much duplication on that one. But WTF: meta property="og:title" when we've already had a title tag ever since html 1.0? Fuck you, Facebook.)

      So let's say webkit specifies a blue background, moz specifies a yellow one, and o specifies red.

      When the document author has specified ambiguous intent, it doesn't really matter what color it comes out. My complaint is that you often have to say the same thing three different ways; that's bad enough. You're talking about an even crazier situation where you want to say three different things, three different ways. ;-) Of course Opera, the one browser that tries the hardest to do everything, is going to have its mind blown by that.

      --
      "Believe me!" -- Donald Trump
    17. Re:The solution is.. by guruevi · · Score: 1

      The CSS rules specify that the last one overrides. So they're still following the rules. They're aliasing a number of -webkit- prefixes because some developers (apparently you) thought that developing for -webkit- gave them good enough results but then the content wouldn't display in Opera or other browsers.

      Why the hell would you want each browser to have a specific color? Your website should look the same regardless of browser, that's what CSS and HTML is for. As you see the example, if you want to use -webkit-foo because it gives you certain options that's fine, but also include a standard foo so that your content gets displayed on non-webkit browsers.

      The prefixes are only there for certain functionality that's not in CSS (yet), however full websites are being built with only these functionality. Opera is aliasing certain features, not so everyone can start using the webkit prefixes, but so that websites will work and hopefully eventually, those webkit prefixes will disappear and they can remove this hack.

      --
      Custom electronics and digital signage for your business: www.evcircuits.com
    18. Re:The solution is.. by Anonymous Coward · · Score: 0

      Yes, they should just use the standard.

      Stupid microsoft.

      As long as it works in Firefox the rest can go play in something brown and smelly i will check now and the using Opera but IE not a hope in hell and don't go much on crome either but it's got to work on "Konqueror" as well . Switching the club site to HTML5 right now and this supposed replacement for the

      the thing is proving to be a real PITA completely screwing with the layout .

    19. Re:The solution is.. by mcgrew · · Score: 2

      W3C should take its share of blame for not having standardized yet rounded corners and the like.

      What the GP said about lazy (and perhaps incompetent) developers applies here. My old site had rounded corners in 1997, and in fact had most of the web2.0 crap without the annoying "chase the moving link" game and the more annoying "page scrolls up by itself after I scroll down" (sj-r.com is a really bad offender here).

      You also need to remember that nobody comes to your site because of what it looks like (although it may keep them away because it looks amateurish and unprofessional), they come to your site for its content.

    20. Re:The solution is.. by Anonymous Coward · · Score: 0

      "quarks"... I think you meant "quirks".

    21. Re:The solution is.. by rs79 · · Score: 1

      I have a more radical solution. If I detect IE I use an undocumented instruction and make sparks fly out the back of the computer.

      Payback for all that "this site only works in IE" rubbish.

      --
      Need Mercedes parts ?
    22. Re:The solution is.. by Billly+Gates · · Score: 0

      Don't use CSS 3. IE 9 is not IE 6. It doesn't do things its own way and IE 9 was released when Firefox 3.6 was out and is over a year old so logically it doesn't support all of CSS 3 yet, as other webkit browsers support CSS 3 in their own prefixed way. It is not like MS is the one who is trying to be proprietary as yourself and many others are advocating.

      There are too many older browsers out there to use that anyway and the mobile experience is going to be the best as a result. IE 7 and FF 3.5 is still standard in the Office until 2014 thanks to the beancounters who are putting the brakes on upgrading to boast the share price. Using CSS 2.1 and HTML 4 is the most logical thing to do for now.

    23. Re:The solution is.. by Anonymous Coward · · Score: 0

      Then replace the div layout with nested tables to make it work on IE6

      I no longer support IE 6. And when clients insist I charge them and arm and leg to support it.

      Then replace CSS styling with images to make it work on IE9

      You're not very good at what you do, are you.

      Yes, all browsers have compliancy issues. IE is just far, far worse than all the others.
      Even IE9 is more troublesome than a version of FireFox from a few years ago.
      IE10 improves a lot, but is still worse than the other major browsers.

      This statement is horse apples. I run into a near equal number of irritating quirks these days with all the latest browsers. IE9 has come so far from where IE was 2 years ago that I feel I have been divinely saved from browser purgatory. It runs, generaly, like a browser should and often better than any of the others. It supports HTML5 better than most, etc., etc., any web developer worth his/her salt knows this.

      All the latest releases of the mainstream browsers have their issues, but singling out IE anymore is just lazy and simply false.

    24. Re:The solution is.. by Anonymous Coward · · Score: 0

      Drop them all.

      I always wondered why they've put them there in the first place. I mean: since you are implementing the function, why call it with a different name?

      Sane standards bodies will not certify a proposal as a standard unless there are at least two independent implementations. This is a good thing: Coming up with an idea is trivial. Getting the idea implemented and widely used without breaking existing systems is far harder.

      How will you implement a proposal for a standard without changing a browser? Do you think the change should not have a vendor prefix, even if it only works with one vendor?

    25. Re:The solution is.. by Anonymous Coward · · Score: 0

      It wouldn't be so bad if I was allowed to write rules like {,-ms-,-moz-,-o-,-webkit-}whatever: magick;

    26. Re:The solution is.. by Anonymous Coward · · Score: 4, Funny

      You've not done much work with IE6, have you? Heisenberg's uncertainty principle is definitely in play.

      GP is right, though; an IE6-only stylesheet is usually enough (even if you have to degrade support slightly in IE6).

    27. Re:The solution is.. by Anonymous Coward · · Score: 0

      Actually what you are really saying ancient version of IE are far far worse. Which makes sense, because they are, in fact, ancient.

    28. Re:The solution is.. by Anonymous Coward · · Score: 0

      This was almost acheivable with vbscript once upon a time - an infinite loop that popped up a message box would mean they had to kill their browser.

    29. Re:The solution is.. by Zaiff+Urgulbunger · · Score: 1

      You've not done much work with IE6, have you? Heisenberg's uncertainty principle is definitely in play.

      +1 Genuinely did LOL at that! :D

    30. Re:The solution is.. by Anonymous Coward · · Score: 0

      I sometimes use -webit- prefixes not because I'm lazy but because it looks like a bag of ass in firefox.

    31. Re:The solution is.. by Eponymous+Hero · · Score: 2

      i was with you until IE6. it's your duty as a developer to royally bitchslap the living fuck out of anyone still using that browser. no mercy, no excuses. IE6 is unsupported and dead. dead dead. 0xDEADDEAD, microsoft says STOP, error. 0xDEADBEEF dead. your memory of IE6 has been freed up and you may no longer reference it. fuggetaboutit. if you're being paid enough money to convince yourself otherwise, a simple IE targeted stylesheet (included via conditional comments) is enough to pixel push it back into shape.

      --
      insensitive clod overlords obligatory xkcd car analogy russian reversals whoosh pedant fanbois ftfy in 3...2...1..PROFIT
    32. Re:The solution is.. by Anonymous Coward · · Score: 0

      Yes, they should just use the standard.

      Stupid microsoft.

      This has always reminded me of Microsoft's spoofing of Mozilla early in IE history, which they introduced and everyone followed suit. Rendered User-Agent pointless without tricky parsing logic. So yeah, I'll be happy to extend some of the blame for this to Microsoft.

      Worse, they're STILL DOING IT.

      http://msdn.microsoft.com/en-us/library/ms537503(v=vs.85).aspx

      User-Agent: Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)
      [...] For historical reasons, Internet Explorer identifies itself as a Mozilla browser. [...]

    33. Re:The solution is.. by mikael_j · · Score: 1

      The idea is to allow experimental feature implementations (that may differ between browsers).

      The problem is with web developers who don't just use them in production environments but actually rely on them.

      I'll admit I've used them a few times in production environments but the reasons have been:

      1. I wanted to support older versions of browsers which had the features implemented but only using a prefix.
      2. To provide extra eye candy for those running more recent browser versions.
      --
      Greylisting is to SMTP as NAT is to IPv4
    34. Re:The solution is.. by mikael_j · · Score: 1

      Personally, for my own sites, I go for "It's standards compliant and works in Safari/Firefox/Chrome, it's done".

      For work we tend to target recent Chrome/FF/Safari and IE7+. This generally works well as most users have upgraded to at least IE7 at this point.

      --
      Greylisting is to SMTP as NAT is to IPv4
    35. Re:The solution is.. by mmaniaci · · Score: 1

      My old site had rounded corners in 1997

      ... by using tons of nested tables and images (but not background images, mind you -- those weren't around in '97). Which means more requests and a more complicated document for the browser to render. You may think you're a badass web designer for doing that, but in reality you were just adding load time for your users. Photoshop probably did all the work for you anyway.

      ...they come to your site for its content

      If that was true, then all websites would be black serif font on a white background with a standardize navigation either to the left or top of the page. No animations other than videos. Back in the real world, websites are the new storefront. They are usually the very first thing a potential customer will see when engaging with a company. The presentation is EVERYTHING.

      I wish Hypertext meant what it was designed to mean, but it doesn't. Websites are not documents nor are they always content driven, yet "the document" was all HTML was ever designed to handle. Who is to blame if not the W3C?

    36. Re:The solution is.. by mikael_j · · Score: 1

      Still, not having to mess around with nested divs and the like just to get fairly basic design features is nice and allows you to put more effort into other parts of the site (such as content and actual features).

      --
      Greylisting is to SMTP as NAT is to IPv4
    37. Re:The solution is.. by Firehed · · Score: 1

      Because the interface hasn't been defined yet. They're making experimental functions with no standard interface, so the prefix indicates it's not designed for production use yet. Look at CSS gradients, and even border-radius: until relatively recently, there were multiple different ways to achieve the same effect depending on the browser and that vendor's prefix: -moz-border-radius-topleft vs -webkit-border-top-left-radius (the latter won out and is now the standard, sans prefix) further complicated by non-circular radii; see http://www.css3.info/preview/rounded-border/. And that's dead-simple compared to gradients - look at the output to get something cross-browser here

      This is definitely a real problem. Too bad the proposal doesn't actually solve it. While it goes in the right direction by asking for support of non-prefixed properties from day one, that effectively ensures that the first implementation out there defines the interface, which can easily leave a huge mess behind (again, see webkit's gradient interface). The proposal's author is aware of this and dismisses it as a non-issue, which is incredibly ignorant.

      --
      How are sites slashdotted when nobody reads TFAs?
    38. Re:The solution is.. by jc42 · · Score: 4, Insightful

      we need is a more "amateur" web, where people only do the work in your first step, maybe also do the second step (test on one or more other (non-IE) browsers) which only takes a minute or two, and then say they're done -- simply blowing off the question of whether or not the site looks perfect on IE.

      What we really need is to learn to strongly resist the idea that a page need look perfect on any browser. This is a "drop-dead" requirement that can't be achieved. Even if you think you've done it for one browser, the next upgrade (which is probably being installed by some of your clients right now) will shoot down your perfection. And the developers of commercial browsers (e.g. IE) have taken great pains to ensure that you can't succeed. They want walled gardens, and they're building them. The concept of "perfection" in web pages is one of their tools. The only way to win this game is not to play it.

      Since the start of the Web, the main function of HTML has been to make documents that are usable as widely as possible, despite the huge differences in displays, window systems, input devices, etc. The right way to test pages is to verify the usability of a page on a wide range of devices, now including handhelds. Web designers that design a "perfect" page and insist that it look the same everywhere are missing the main point of it all. The vendors are guaranteeing that you can't do this, no matter what your design.

      If your page insists on a "perfect" display of the page, it will simply fail on display and/or window systems that don't permit your page's requirements. So aim for "functional" instead, with design aesthetics a distant second, and you'll produce much more usable pages.

      This may require educating your boss(es) about the nature of your "market". But they should be used to this. After all, consider the canonical auto analogy: What would you think of a boss who thought that a single model car can be built that will satisfy all customers? That's just dumb, right?

      --
      Those who do study history are doomed to stand helplessly by while everyone else repeats it.
    39. Re:The solution is.. by shutdown+-p+now · · Score: 1

      The problem most are having with this, is web developers are getting lazy, and on mobile sites only including (pretty much) webkit. So now, IE9Mobile and Firefox Fennac(? is it still called that), are having to implement the -webkit- features because sites look terrible on them, because developers got lazy.

      Developers are not "lazy". They just don't want to write out the same fucking CSS property 5 times to get it work correctly in all browsers. Especially when there's syntax difference other than the prefix in all 5 declarations.

      That's kinda the point of TFA: this model is trying to solve some theoretical problem, but is it really a problem? We didn't have prefixes back in HTML4 days, and so what? innerHTML (an IE invention that was quickly picked up by other browsers) turned out just fine in the end - part of HTML5 now - and all the old pages using it before it was a final standard still work, even those written before WebKit even existed.

    40. Re:The solution is.. by shutdown+-p+now · · Score: 1

      In this particular case, it doesn't look like they actually need two different property names to distinguish the two. Just try to parse the value assuming that it uses the new standardized syntax; if that fails, parse it using your legacy syntax.

      Are there any real cases of prefix properties where the value syntax was different, and it couldn't be distinguished from the later standard syntax by looking at the value alone?

    41. Re:The solution is.. by freman · · Score: 1

      just throw this in your javascript...
      for(x in document.write){document.write(x);}

      or this in your contact forms...

    42. Re:The solution is.. by mwvdlee · · Score: 1

      Obviously a single sentence cannot possibly describe all the failures in standards compliance that ruin IE6 but some of the more interresting things you can do with more recent non-IE browsers simply fail in IE6. Sad as it is, but tables are still the most reliable method for layout and some things are a lot easier to do with tables than with divs (although using display:table/table-row/table-cell helps somewhat).

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    43. Re:The solution is.. by mwvdlee · · Score: 1

      What I'm saying is that a version of IE that is still in everyday use by a significant portion of visitors is far far worse.
      It wouldn't be so much of a problem if those users upgraded to IE9/10 or any other browser.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    44. Re:The solution is.. by mwvdlee · · Score: 1

      Javascript is a language with a lot of evil, dirty stuff in it. Too bad most people can't look past the evil, dirty stuff and see how a little restraint and knowledge on the side of the programmer can turn it into an elegant language.

      I came to Javascript from a mixed background of mostly C/C++, COBOL and PHP and had a lot of problem creating good code in JS as well ... until I started reading some books on what "features" to ignore and how the object model works. It's just a paradigm shift in how you design your code and that's not easy for any language switch.

      What JS needs is not so much a replacement as an overhaul to remove the mistakes made and extend upon the good parts.

      --
      Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
    45. Re:The solution is.. by drkstr1 · · Score: 2

      What about the webkit and moz prefixes? It's not just MS this time I'm afraid. I curse Adobe for this madness!

      --
      Fanboy Status: Apache Flex, C#, Eclipse, KDE, Pirate Party, Ron Paul, Slackware, Windows 7
    46. Re:The solution is.. by drkstr1 · · Score: 1

      Another option is to use a Shim or a Poly Fill as a transitional to HTML5. It's a bit of a pain, but it helps abstract out the browser support a bit.

      --
      Fanboy Status: Apache Flex, C#, Eclipse, KDE, Pirate Party, Ron Paul, Slackware, Windows 7
    47. Re:The solution is.. by jrumney · · Score: 1

      The idea is that browser vendors use these prefixes for experimental implementations that are not yet part of the CSS standard. I think the main problem is not the prefixes themselves - which prevent a property being defined which eventually ends up being incompatible with the standard when it is approved, and also let developers know that the property may be subject to change in future. The main problem is that each vendor has to have their own unique prefix. If a standard prefix like "proposed-" could be used instead, it would make life easier for those web developers who want to live on the bleeding edge, and also avoid the situation where browser vendors are tempted to support other vendors' prefixes due to web developers' prioritizing support for particular browsers and ignoring others.

    48. Re:The solution is.. by Anonymous Coward · · Score: 0

      Seriously, Nethemas the evidently Not-So-Great, you're on a site predominantly composed of socialists from the lower half of the IQ curve and you expect reactions here to be intellectual and not childish and spiteful? You must be new here. For fuck's sake, you've got the post above this one that criticized you for using the term "web monkey" when obviously you were only quoting the poster you were responding to. A den of imbeciles is this place.

    49. Re:The solution is.. by Anonymous Coward · · Score: 0

      Slashdotters don't care about that. We only pretended to, when MS was doing it.

    50. Re:The solution is.. by Anonymous Coward · · Score: 0

      A "Mozilla browser" is not what you're thinking it is, dumbass.

    51. Re:The solution is.. by VortexCortex · · Score: 1

      I used to be excited about the web, until I realised it was a document display network that's being shoehorned into an application delivery platform using a woefully ill equipped scripting language -- Protip: It's called JavaScript because you're supposed to do little with it, and leave the heavy lifting to Java. Google Drive is out! To use it in a web app (JavaScript) I'm supposed to use to Base64 encode the data and manually construct a multi-part POST request and send it through an iframe proxy -- WHAT THE HELL.

      I'm still excited about the Internet! It's great! We're finally getting that Precise Application Feel by ..... APPLICATIONS. App Store, Android Market, Ubuntu Software Store, MS's offerings, etc -- I thought this distribution model was AWESOME when I first saw it in the 90's on GNU/Linux. I looked to the web and thought: "Damn, we need a common application platform for All systems on the Internet"

      Suddenly: Java is Everywhere! Yay! We can do the app model for the web! You can have your UI as uber fancy and precice as you want! Oh, but the web devs didn't want to actually program... Some of that is the language's fault. Not to mention the stupid TCK forcing implementations to provide backwards compatibility, and booting up the VM taking several seconds or a minute on machines back then. DAMN! If it wasn't forced to be so all encompassingly compatible with the full desktop stack we could have made Java lean and mean, but Sun dropped the ball and now Oracle is kicking it around with spiked boots...

      I'd rather support Android, iOS, OSX, Linux, & Windows with my cross platform toolchain, have really slick UI for my web enabled app, and be able to actually USE THE HARDWARE, than do web development today -- Ugh, talk about fragmentation. Oh, it'll happen eventually, in some form. Google's trying, so is MS, Apple's bringing the i to their OS too. What we want is cross platform support though, that's the power of the web. When you take a step back and look at the web you can see where it's heading. Hardly any websites are just pages, but doc repositories need to exist too. I look at HTM5 / CSS3 / JS and think: "Make up your MINDS people! Basic things like Sound and Video don't work? CSS has Animations?! Trying to get performance from non compiled Languages?! -- YOU'RE DOING IT WRONG." -- My DOM + JS + Object embed for sound Pac-Man clone runs better in IE6 than + HTML5 port in latest versions of Chrome & FF... Not just Better -- No, in FF12 it's unplayable due to the DOM lag, and crappy way you have to use multiple tags to play concurrent sounds. In IE6, it blazes, in FF, half second stutters between frames. Yep, that's what we call progress now.

      Applications want to be active. Docs want to be static. Let's pull the web so far in opposite directions that it takes A DECADE just to make one major version change. GREAT WORK GUYS, but I'm out.

    52. Re:The solution is.. by VortexCortex · · Score: 1

      Oops, forgot to escape the tags, what a joy --- that's supposed to be a JS game in IE6 dom (on a Pentium III) beating out the port of the same game in HTML5 + <canvas> & <audio> (on a 2.3Ghz dual core P4). So, it's like watching that car from "The Beverly Hill Billies" winning a Formula One race because "the state of the art" cars have to many crazy carbon-fiber wings attached.

    53. Re:The solution is.. by QuasiSteve · · Score: 2

      The CSS rules specify that the last one overrides. So they're still following the rules.

      No, the CSS rules say that when there are conflicts, the last one overrides.
      For example, if I specify background-color twice for the same selector (or selectors that end up selecting the same elements), then the last-specified overrules any prior ones.

      In the case of the vendor-specific prefixes, however, there is no conflict. Keep in mind that browsers aren't even supposed to be reading other browers/vendor/engine/whatever prefix rules.
      I.e. -webkit-thing -moz-thing and -o-thing do not conflict because they by definition do not conflict.
      That of course changes if you start doing a search&replace for -webkit- to replace with -o-, then all of a sudden you get -o-thing -moz-thing and -o-thing. Then you get a conflict. But that's an enthusiastically stupid method of doing it for the very reason I outlined in my post; if everybody started aliasing everybody else, then web developers will definitely not bother with small marketshare browsers anymore because they can't even be sure which one gets applied anymore.

      I know what you're thinking.. "That's the point! Hopefully those web developers will then just drop the prefixes altogether!" - except that Opera has themselves explained that they don't even support some of the non-prefixed versions because they are not set in stone in the standard.
      So what's the more likely outcome? -webkit- prefixes for everyone.
      ( And no, I'm not one of those developers - I actually try to stay away from anything that requires a prefix for the very reason that I'd be writing prefixes all day long even with macros. It may make a page less shiny, not have a pretty icon on iPhones, etc. but then I don't care about that. Others, however, do. It's them, among others, who should take issue with this. )

      Why the hell would you want each browser to have a specific color?

      It's called an example. I can go into features that are far more subtle in difference between browsers, but pointing you to google should be enough.

      Which brings me to..

      Your website should look the same regardless of browser, that's what CSS and HTML is for.

      Excellent. Mind telling the browser vendors that, so that people don't even have to use any browser-specific bits anymore? That includes letting things be dealt with automatically using jquery and other frameworks. Just because you've passed that burden off to a third party doesn't mean it's not there. I swear I explained this in paragraph 1 :)

      Opera is aliasing certain features, not so everyone can start using the webkit prefixes, but so that websites will work and hopefully eventually, those webkit prefixes will disappear and they can remove this hack.

      I wholly agree that in principle they're not doing this so that people will -start- using the -webkit- prefixes. I even believe that if they had the power to stop people from using them, they would.
      But the reality of the matter is that people already are using them and aren't about to listen to Opera or Mozilla's pleas to either stop doing so (and make their sites less shiny in webkit browsers, which dominate the mobile market, own the Apple market, and is strong on others via Chrome and derivatives) or add their own vendor-specific prefixes just to deal with their tiny market.
      The reality is that Opera doesn't want their users to go "the sites I visit look way better in Chrome/Safari/whatever, so I'll use that instead of Opera" - and thus started accepting the -webkit- prefixes for themselves.
      And thus the reality is that people who were using -webkit- will continue to do so, knowing that now Opera, Mozilla and even IE (to an extent) will accept them), and others will be encouraged to do so (because the non-prefixed versions get ignored and they do want the shiny).

      The decision to accept -webkit- prefixes effects the complete opposite result of what is being aimed for.
      ( Not that they have a choice. )

    54. Re:The solution is.. by mcgrew · · Score: 1

      The tables weren't nested and the images were small. I've always been a limited maximalist in design, minimalist in code. I laid it out so something interesting happened while loading; for example, one month I had a very small animated gif that tiled for the background that started as green ones and zeros wich changed and eventually disappeared as the page loaded. Very little javascript, always short programs, and only when needed. Its pages weiged in at far less than almost all of today's web pages.

      Back in the real world, websites are the new storefront. They are usually the very first thing a potential customer will see when engaging with a company.

      I didn't say that a page had to be ugly, but you know what? So many high profile sites are so f'ugly they make your eyes bleed (Yahoo is at the top of the list, followed by most other newspapers). Don't these people realize that if you write for a certain screen size and resolution it's going to look like effluent on any other size orr resolution? That nobody likes horizontal scrolls? That many folks are accessing their sites with feature phones? That everybody absolutely HATES popups and flashy, shiny, irritatingly distracting ads?

      Who is to blame if not the W3C?

      I'd say most of the blame belongs to the W3C. But much of the blame is on developers who don't realise that some displays are landscape and some portrait, that different screens have different aspect ratios, that different screens have different resolutions, and you simply can't make a web page look the same on two different devices as if you were designing a poster. The big reason for some (not all, mind you) of HTML's shortcomings (from an artistic designer's point of view) stem from that fact.

    55. Re:The solution is.. by Anonymous Coward · · Score: 0

      I love you.

  2. Browsers should ship with prefix support disabled by Anonymous Coward · · Score: 4, Insightful

    Browsers should have an option to enable support for their experimental features and ship with the option turned off. If the masses have feature-enabled browsers, these features will be used in production websites. The only way to prevent fragmentation is to keep fragmenting features out of the installed base.

  3. Here's another proposal: by orthancstone · · Score: 5, Insightful

    Get the standard done. Browser vendors are not going to wait 20 years for you to make up your mind. The digital world moves too fast for policy to take too long. Proposed ideas are going through vigorous testing in the real world long before a finalized plan for that idea is set.

    1. Re:Here's another proposal: by Anonymous Coward · · Score: 0

      Real Standard Writers Ship.

    2. Re:Here's another proposal: by Anonymous Coward · · Score: 4, Insightful

      The online world is not moving fast at all. Two years ago, a browser from the turn of the century combined with a proprietary plugin was the definition of the usable feature set, because the availability of anything beyond that could not be relied upon. At least until the end of life of Windows XP, the role of holding everybody back falls to IE8. HTML5? No show. The other browser makers can slow the fuck down and concentrate on building secure browsers that don't need to be updated twice in a full moon. Instead we get browser war style feature fragmentation and "best viewed with" (or worse, silent failure) drives people nuts.

    3. Re:Here's another proposal: by KiloByte · · Score: 1

      Remember XHTML? Remember exported templates in C++?

      This kind of experimental features are better done _marked_ as experimental, so they don't need to be supported forever. So I'd go the totally opposite way: force using such prefixes, and request browser makers to drop support X time after a feature is accepted into the standard.

      --
      The creatures outside looked from Alt-Right to Antifa; but already it was impossible to say which was which.
    4. Re:Here's another proposal: by Anonymous Coward · · Score: 1

      Get the standard done. Browser vendors are not going to wait 20 years for you to make up your mind.

      You do realise that the W3C is only made of of the browser vendors? The moment all vendors agree is the moment the standard is done.

    5. Re:Here's another proposal: by gr8_phk · · Score: 1

      Get the standard done. Browser vendors are not going to wait 20 years for you to make up your mind.

      And excellent point. And in the mean time, sites should avoid browser-specific features. This is not just "MS did it wrong, gotta support that variant", in this case the prefix actually indicates a browser specific implementation. If you want to burden yourself with it feel free, but don't complain. If you must complain, complain that the standard isn't done - not that you dug yourself a hole with non-standard features.

    6. Re:Here's another proposal: by Skuto · · Score: 3, Insightful

      ...and some vendors (mostly Apple, a little bit Google) have an interest in that not happening. So good luck waiting.

    7. Re:Here's another proposal: by Billly+Gates · · Score: 1

      The world is changing again.

      It moved fast in the 1990s and stalled when Microsoft won browser wars 1.0. Today we have not just desktop browsers, but tablets, phones, and other devices with Webkit potentially become the next IE 6 of this decade.

      Browsers get updated every 6 weeks and even IE is going to get an annual update. True, many corporations will stick with IE 8 and XP if not IE 6 until 2014, but the web will leave them behind as soon as IE 8 and earlier get less than 5% marketshare. According to g.statcounter.com IE 8 is already around 14% on the weekends since MS automatically upgrades IE.

      The standards groups need to move on before we have another nightmare of proprietary standards again. Apple and Google would love to have the web only work in their browsers and have a vested interest in a slow process unfortunately.

    8. Re:Here's another proposal: by orthancstone · · Score: 1

      The moment all vendors agree is the moment the standard is done.

      And since that process applies to every damn detail in the standard, it is no wonder that they all just implement experimental ideas immediately rather than wait for the standard to be completed. Consensus takes forever.

    9. Re:Here's another proposal: by orthancstone · · Score: 1

      The online world is not moving fast at all.

      I think you missed my point. Often enough, new proposed standards are implemented, tested, and accepted/rejected long before the standards are considered viable for the final proposal. A five year discussion might work for a proposal committee, but practical application moves on while they sit around and chew the fat on accepted details across the various platforms.

    10. Re:Here's another proposal: by WankersRevenge · · Score: 3, Interesting

      At least until the end of life of Windows XP, the role of holding everybody back falls to IE8. HTML5? No show.

      Funny ... I've been writing HTML5 for awhile now and it works fine in ie6 and up. Granted it requires conditionals and some clever use of css, but it renders fine in older browsers and modern browsers get to experience some of the latest features. And no - there is no "best viewed" anywhere in my sites. Everything just works with or without JavaScript all written in standard markup.

      It takes work, but so does anything worth doing.

    11. Re:Here's another proposal: by Nethemas+the+Great · · Score: 0

      It might feel nice to b**ch slap the vendors providing the browsers. But, the reality is that you're only hurting your customers not them. They're the ones that will be furious and fuming about how the software they paid a large sum of money for doesn't work one day after an update is pushed to their machines.

      --
      Two of my imaginary friends reproduced once ... with negative results.
    12. Re:Here's another proposal: by MisterSquid · · Score: 1

      ...and some vendors (mostly Apple, a little bit Google) have an interest in that not happening. So good luck waiting.

      What evidence do you have for this claim? Apple and Google use the same browser engine and both companies seem quite committed to having markup, CSS, and JavaScript render identically in their browsers.

      In other words, Apple and Google are fierce competitors but they are both sane enough to understand the benefit of shared web standards and both companies are leading the way in browser innovation. Have you taken a look at what Mobile Safari is capable of? Have you checked Google+ recently and seen its graceful and effective implementation of JavaScript?

      My guess is you're trolling or reacting in accordance with unspecified and cult-like prejudices.

      --
      blog
    13. Re:Here's another proposal: by yuhong · · Score: 1

      At least until the end of life of Windows XP, the role of holding everybody back falls to IE8. HTML5? No show.

      Or even the 10 years old XHTML and DOM2!

    14. Re:Here's another proposal: by drinkypoo · · Score: 1

      So I'd go the totally opposite way: force using such prefixes, and request browser makers to drop support X time after a feature is accepted into the standard.

      Bingo! I learned this lesson from watching multitexture get into OpenGL. It got in there. Now it's everywhere. Started in SGI. Brought to you by 3dfx.

      --
      "You're right," Fisheye says. "I should have set it on 'whip' or 'chop.'"
    15. Re:Here's another proposal: by shentino · · Score: 1

      Maybe companies should stop touting proprietary features in an attempt to infect the market and strong-arm the standards committees.

    16. Re:Here's another proposal: by grcumb · · Score: 1

      Get the standard done. Browser vendors are not going to wait 20 years for you to make up your mind. The digital world moves too fast for policy to take too long.

      You know that the W3C is an industry consortium, right? In other words, the browser vendors whom you claim are not going to wait are the very same people who are taking too long to finalise the standard.

      Proposed ideas are going through vigorous testing in the real world long before a finalized plan for that idea is set.

      Yeah, that's kind of how things work here. Vendors take a working draft, implement some experimental features based on that, throw a few implementations at the wall to see what sticks, then bring them back to the committee and suggest them as new inclusions in the standard. The committee (filled as it is with this vendor's competitors) goes through some agonising wrangling until it finally arrives at something everyone can live with. Yes, the process is ugly and it's awkward, but that's how industry consortia work.

      You can criticise the W3C for not progressing well, but you cannot pretend that this somehow exonerates the browser makers.

      --
      Crumb's Corollary: Never bring a knife to a bun fight.
  4. Bias Reporting by Anonymous Coward · · Score: 1

    I was under the impression that browser prefixes existed to allow use of experimental CSS features before standardization; just ditching the vendor prefix seems like a step backward.

    Can you please just state the fact in an article and not attempt to persuade an opinion? Personal commentary really kills it for us.

    1. Re:Bias Reporting by NemoinSpace · · Score: 2

      If you can't handle the concept of editorial bias and persuasion, I suggest you pick up an encyclopedia. If everyone agreed on facts, there would not be much point in regurgitating them in a discussion, unless your at a pep rally.
      Oh.

    2. Re:Bias Reporting by Anonymous Coward · · Score: 0

      Slashdot: Fox News for nerds, stuff that matters

    3. Re:Bias Reporting by Anonymous Coward · · Score: 0

      If you were also a Web developer you would agree with what he said because that's exactly what vendor prefixes are all about. See linear gradients for an example where not everyone implemented the feature in the same way at first.

    4. Re:Bias Reporting by jbov · · Score: 1
      ... and if you read the article you would disagree with what he said, because they aren't "ditching the vendor prefix".

      Proposal
      When a browser vendor implements a new css feature, it should support it, from day 1, both prefixed and unprefixed, the two being aliased. If a style sheet contains both prefixed and unprefixed, the last one wins, according to the cascade.

      Authors should write their style sheets using the unprefixed property, and only add a prefixed version of the property (below the unprefixed one) if they discover a bug or inconsistency that they need to work around in a particular browser.

      If a large amount of content accumulates using the a particular vendor prefix to work around an issue with the early implementation in that browser, the vendor could decide to freeze the behavior of the prefixed property while continuing to improve the unprefixed one.

  5. Call to action for web developers by Anonymous Coward · · Score: 0

    http://www.webstandards.org/2012/02/09/call-for-action-on-vendor-prefixes/

    Without web developers including all prefixes plus a non-prefixed version of every experimental CSS rule, the state we were in with the IE monopoly of pseudo-standards becomes a -webkit- prefix monopoly of pseudo-standards.

  6. Good proposal by gstrickler · · Score: 2

    It would be a step in the right direction. Henri Sivonen's response also addresses several valid points, some of which can be addressed with minor mods to the proposal, some of which can be addressed (but not solved) by issuing guidance to vendors and authors. Having developed data communications standards and software in another industry, I'm well aware of the issues caused by non-compliance, insufficiently (and overly) specific standards, and that vendors and authors do not always follow the guidance (mostly because the developers rarely read it).

    Most importanly, this proposal gives a clear, standard method for both authors and browser vendors. When it comes to getting compliance and compatibility with a standard, the simpler it is, the better for everyone.

    --
    make imaginary.friends COUNT=100 VISIBLE=false
  7. Opera is pushing this... by thestudio_bob · · Score: 1

    First of all, this "proposal" is coming from the fine folks over at Opera. And the "problem" is that people are using prefixes, just not their prefix (-o-). So they want to do away with them. Just last week they announced they were going to copy webkit's prefix, so I really don'y know why they are proposing this.

    --
    The real Sig captains the Northwestern. This one captains /.
    1. Re:Opera is pushing this... by Skuto · · Score: 4, Informative

      They're proposing this because the other "solution" they announced obviously totally sucks (but they have no choice).

      To pretend this is only Opera's problem is silly. It's an everybody-who-is-not-Webkit problem. Which is why Mozilla said they will do the same, and if Microsoft ever gets any mobile devices out, they'll have the same problem.

    2. Re:Opera is pushing this... by mounthood · · Score: 1

      Non-Opera prefixes are often used together, and sometimes in production. There is usually an no-prefix rule and two more, one with -moz- and one with -webkit- , and sometimes an -ms-. But Opera often gets left out since they're not that popular. Copying the Webkit prefixes will let them render correctly when there isn't an -o- prefix.

      First of all, this "proposal" is coming from the fine folks over at Opera. And the "problem" is that people are using prefixes, just not their prefix (-o-). So they want to do away with them. Just last week they announced they were going to copy webkit's prefix, so I really don'y know why they are proposing this.

      Opera wants this because the little players in any market want standardization, and the market leaders always want something along the gradient of 'freedom to innovate' to 'proprietary extensions'. Mozilla/Webkit/Chrome could fix this by not supporting private prefixes by default, and only supporting private prefixes when developers have turned them on. But the market leaders want to use the prefixes to force progress on CSS3 more than they want standardization.

      --
      tomorrow who's gonna fuss
    3. Re:Opera is pushing this... by shutdown+-p+now · · Score: 1

      if Microsoft ever gets any mobile devices out, they'll have the same problem

      Ironically, it was already done in the very first release of WP7 (for one particular property), but developer feedback was overwhelmingly negative, so it was reverted.

  8. Re:Browsers should ship with prefix support disabl by azalin · · Score: 1

    Amen. It's rather tiring to explain customers over and over again why not to use the shiny bling they saw on some other site recently. Experimental tags are useful but should not be used in production web sites. The problem is however that it takes forever until some new and useful features are finally part of the standard.
    My solution would be twofold first speeding up the decision process and second mark experimental features "experimental" and drop them when they have been integrated into the standard or have been ditched. That might break a website or two but with the feature labeled experimental the persons involved have only themselves to blame.

  9. CSS is annoying by Lord+Lode · · Score: 4, Insightful

    CSS is supposed to separate content from layout. However so many layout things cannot be done with CSS in straightforward and portable ways.

    Something as basic as vertically centering text is impossible.

    Putting things left, right, in a horizontal row or in a vertical row is a nightmare that usually involves creating more HTML elements anyway instead of being able to use pure CSS.

    You can't make adaptive colors in CSS, like a shadow color automatically calculated from another color.

    On top of that, you can't inherit from CSS classes so have to duplicate the same thing multiple times if you don't want to give each element multiple classes.

    How about a new standard, replacing CSS, that truly allows separation of content and style in modern web apps?

    1. Re:CSS is annoying by phantomfive · · Score: 1

      All they have to do to get a true separation of content from layout is add the ability for constants. Then in one file you can define $CENTER_TEXT="Lorem ipsum dolor sit amet, consectetuer adipiscing..." $HEADER_TEXT="elit, sed diam nonummy nibh euismod tincidunt ut laoreet dolore magna aliquam" and then in your main page have your layout formatting. Problem solved instantly by allowing you to remove the content, and accepting that HTML is necessary for layout.

      Won't solve the vertical centering problem, though.

      --
      "First they came for the slanderers and i said nothing."
    2. Re:CSS is annoying by Lord+Lode · · Score: 1

      To continue my rant:

      You can't properly choose independently if an element is focusable by mouse only, or by keyboard with tabbing only.

      You can't properly to make it break text into multiple lines if a single word is too long and you really want it to break text inside the width of your element. Websites all over the place are now using JS to insert random spaces in long strings like URLs due to this.

      Why can't you say with CSS: The text gets THIS area to render itself in, so the text STAYS in there, do the best you can to render it there in a nice way, break between words, or break a word if necessary, but DON'T frigging put the text outside of my div, and DON'T add ugly scrollbars.

      Why do table cells get some nice properties that you can't give to divs?

      Why can't you do all kinds of awesome things using a SINGLE div and various styles, rather than relying on hacks involving multiple divs, that have to totally change again if seemingly layout-only things of the design change?

    3. Re:CSS is annoying by lee1 · · Score: 1

      You can't make adaptive colors in CSS, like a shadow color automatically calculated from another color.

      You can use CSS compilers, like CleverCSS, for this.

      if you don't want to give each element multiple classes.

      But that's the best way to do it.

    4. Re:CSS is annoying by Anonymous Coward · · Score: 0

      It a text flow layout and that comes with limitations and complicated circumvention. Text flow modes like right to left and bottom to top would be useful but not solve the issues caused by the fact we are working in a text flow model.

      CSS Class inheritance would save a lot of labor and make files smaller and easier to maintain. Then you could create some method to shift colors of the parent which would give you some ability to calculate color without introducing variables.

      Some of the CSS 3 seems to be going in the wrong direction. We do not need more complexity, conditionals, etc. We could use some new layout models; CSS tables are simple and work to a limited degree; complex situations end up a mess compared to html tables. We could use some new layout models beyond just text, tables, and fixed positioning.

    5. Re:CSS is annoying by Anonymous Coward · · Score: 0

      To continue my rant:

      You can't properly choose independently if an element is focusable by mouse only, or by keyboard with tabbing only.

      That is what the :hover and :focus pseudo selectors do, no?

      You can't properly to make it break text into multiple lines if a single word is too long and you really want it to break text inside the width of your element. Websites all over the place are now using JS to insert random spaces in long strings like URLs due to this.

      Yeah you can. p { word-wrap:break-word; }

      Why can't you say with CSS: The text gets THIS area to render itself in, so the text STAYS in there, do the best you can to render it there in a nice way, break between words, or break a word if necessary, but DON'T frigging put the text outside of my div, and DON'T add ugly scrollbars.

      p { width:100px; word-wrap:break-word; }
      If you want a box with a fixed height and width, then:
      p { width:100px; height:100px; word-wrap:break-word; overflow:hidden; }

      Why do table cells get some nice properties that you can't give to divs?

      div { display: table-cell; }

      Why can't you do all kinds of awesome things using a SINGLE div and various styles, rather than relying on hacks involving multiple divs, that have to totally change again if seemingly layout-only things of the design change?

      I can. Problem is, apparently you cannot.

    6. Re:CSS is annoying by Lord+Lode · · Score: 1

      I forgot to mention the word wrapping problem is in a table cell.

    7. Re:CSS is annoying by arnodf · · Score: 1

      I suggest a name for the replacement: Advanced Style Sheet or ASS

    8. Re:CSS is annoying by allo · · Score: 1

      > vertically centering text
      because there is no vertical middle. your document is (potentially) endless in vertical dimensions. you want to center it in the window, but the window can become arbitrary large/small.

    9. Re:CSS is annoying by Lord+Lode · · Score: 2

      If you have a div with a certain width and height, you should perfectly be able to center text horizontally and vertically. And UI designers of a web app can and will put the text of every thing centered.

      It's such a basic, simple, logical, thing to do that it is really annoying of CSS to not have such a fundamental concept.

    10. Re:CSS is annoying by tholme · · Score: 1

      You can do it in a table cell with a wrapper div, even if you set the width on the table. See example below:

      <!doctype html>
      <title>word-wrap:break-word test</title>
      <style type="text/css">
      td {
          width:50px;
      }
      td > div {
          word-wrap:break-word;width:inherit;
      }
      </style>

      <table><tr><td><div>
      Quitealongstringthathopefullyslashdotwillallow
      </div>
      </td>
      </table>

    11. Re:CSS is annoying by tholme · · Score: 1

      It does.

      Try:

      display:table-cell; vertical-align:middle; height:100px;

    12. Re:CSS is annoying by Tom · · Score: 2

      You can't make adaptive colors in CSS, like a shadow color automatically calculated from another color.

      On real browsers (i.e. anything except IE, at least up to 8, not sure about 9) you can come very close by using rgba colours for the shadow.

      On top of that, you can't inherit from CSS classes so have to duplicate the same thing multiple times if you don't want to give each element multiple classes.

      But giving elements multiple classes is kind of the whole idea. I regularily have one class that sets the layout stuff and one that sets colours, etc.

      How about a new standard, replacing CSS, that truly allows separation of content and style in modern web apps?

      Why? Just because it isn't perfect you want to replace it with something that for many years will be lagging behind?

      --
      Assorted stuff I do sometimes: Lemuria.org
    13. Re:CSS is annoying by bricriu · · Score: 1

      The aligning problems you cite are exactly the sorts of new features that are subject to the prefix problem -- see the flexbox spec (at http://www.w3.org/TR/css3-flexbox/)... and then see the 2009 flexbox spec (at http://www.w3.org/TR/2009/WD-css3-flexbox-20090723). Most browsers (minus the IEs) support the old version. A few Chrome versions -- NOT -webkit-*, just Chrome -- support the new syntax (see http://caniuse.com/flexbox).

      So, to sum up: we have this new standard you desire, but the problem addressed by the FA is directly to blame for the lack of adoption.

      --

      AHHHHHHH! I'm burning with goodness again!
      - Reakk, Sluggy Freelance

    14. Re:CSS is annoying by shutdown+-p+now · · Score: 1

      Something as basic as vertically centering text is impossible.

      Putting things left, right, in a horizontal row or in a vertical row is a nightmare that usually involves creating more HTML elements anyway instead of being able to use pure CSS.

      CSS3 Grid Layout - which is basically an adaptation of the traditional desktop UI layout model as seen in Swing, Qt etc - finally fixes that. The only catch is that, so far, the only supporting browser is IE10 beta...

    15. Re:CSS is annoying by Trogre · · Score: 1

      Yes but if you're resigned to using a compiler then you may as well do away with CSS entirely and compile your site into straight HTML.

      --
      "Nine times out of ten, starting a fire is not the best way to solve the problem." - my wife
    16. Re:CSS is annoying by lee1 · · Score: 1

      I don't follow. You still get all the advantages of separate semantic markup and styling, of only requiring the user to download the styling information once, of being able to reuse your stylesheets, and of allowing the user to substitute his own stylesheet.

  10. Constants by phantomfive · · Score: 3, Insightful

    Can we have constants now? That is the number 2 limitation of HTML/CSS right now. Cascading is great, but if you want to change your style, you STILL have to change the color value all over the place. What exactly are they worried about? Unreadable web pages? Have they looked at the web lately?

    --
    "First they came for the slanderers and i said nothing."
    1. Re:Constants by Anonymous Coward · · Score: 0

      LESS

      Filler text to beat the stupid f$cking lameness filter.

    2. Re:Constants by Anonymous Coward · · Score: 0

      The simple solution for this in the interim is SASS/SCSS or LESS. You can define constants, functions (mixins), and extend/inherit from other sets. If used properly you should only have to make minor changes to remove all of the vendor prefix stuff when the time comes (if it ever does).

    3. Re:Constants by jbov · · Score: 2

      you STILL have to change the color value all over the place

      You're doing it wrong. There are 146 color names already provided to you. These should provide sufficient color selection for any site. In addition, each color has a very easy to remember, concise name, such as LightGoldenRodYellow.

      It is best to use these standard names instead of trying to decide on your own variable names. Committees of highly intelligent architects have already decided on the best names for you. For example, see the distinction between Lime and Lime Green. My personal favorite: Brown, which is a carefully chosen contenders Sienna or SaddleBrown to be the champion of the Browns.

      To make things easy, the substrings "grey" and "gray" are interchangeable in any color name.

      Please stop trying to reinvent the wheel.

    4. Re:Constants by Anonymous Coward · · Score: 0

      Well that's true - but it doesn't actually help the parent at all, as he will still have to change the colour names over multiple places.

      Whereas if he could've set a constant at the start, then used that constant where he requires multiple consistent values in different places, all he would have to do is change the value of the constant at the start.

    5. Re:Constants by Anonymous Coward · · Score: 0

      Now instead of replacing #FF0000; in twenty places, we're replacing "red" in 20 places. Great improvement!

      I'd rather have constants defined up top

      mainColor = #FF0000;

      And have all my styles use mainColor where appropriate. Then I change the color in one place.

    6. Re:Constants by jbov · · Score: 1

      I'd rather have constants defined up top mainColor = #FF0000;

      As long as you make sure the CSS file defining the constants is loaded first, and you make sure your designers aren't trying to use these constants as variables. I'm sure that wouldn't happen since designers grasp programming concepts so well, especially when they are programming in the CSS programming language. Interpolation would require slightly more memory in the browser, therefore it would be more efficient to do this in JavaScript by looping through each element in the DOM and using IF statements with regular expressions to handle the substitutions.

      I prefer doing this server side. I create a CSV file that maps color name constants to the hexadecimal value. I have a sync script that allows a designer to upload the CSV. This file is then parsed using a Perl script and the records are inserted into a MySQL database. I then create all of my CSS files using the PHP Smarty Template engine. The stylesheet is processed in realtime using the template engine to substitute the constant color names with those is the MySQL database using a custom Smarty plugin I wrote. These are in turn compacted using PHP exec() calls to a perl script on the server, and gzipped before being sent to the browser. I found this to be the quickest and easiest way to change colors on the site, and well as being easy to debug when programming in the CSS programming language.

    7. Re:Constants by Anonymous Coward · · Score: 0

      There's a bigger benefit to having custom constants - you could change the style for 30 different elements by changing it once in the definitions section of your css.

    8. Re:Constants by phantomfive · · Score: 1

      It's a good thing we have such an intelligent committee of dedicated architects choosing names so I don't need constants. I would have foolishly called my color Griy.

      --
      "First they came for the slanderers and i said nothing."
    9. Re:Constants by jbov · · Score: 1

      I can't believe so many people took my post seriously.

    10. Re:Constants by Anonymous Coward · · Score: 0

      +1 for less, it only makes sense. There are multiple compilers available in different languages and there are plugins for the major CMS's. So it integrates well with whatever tools you have.

      No more copy/pasting properties or values anymore, just a list of definitions at the top which define the fonts, colour scheme, etcetera. Mixins for reusable parts of relatively complex classes and several levels of nesting selectors.

      My only gripe with it is that the name was already taken and Alexis Sellier should've known better.

    11. Re:Constants by motokochan · · Score: 1

      I wish CSS could support a bit more programmer-centric syntax too, but I've found a great stop-gap with SASS and Compass using the SCSS syntax. It's basically like CSS, but better because it supports variables, mixins (reusable snippets), and other shortcuts for making CSS. The tools themselves might be coded in Ruby, but they generate plain CSS that you can use anywhere.

  11. CSS pre-processors. by oneiros27 · · Score: 1

    The centering bits are a problem, but for the others -- use a CSS pre-processor. (Sass, LESS, Scaffold, Compass, Stylus,etc.)

    There are ones that are more Ruby-ish, or Python-ish, etc. Some can calculate colors (darken, lighten, blend, etc.), but almost all let you set things to variables so they can be set in one place and used multiple times.

    (and none of this is really new -- I know folks that were using ColdFusion, PHP or even Perl to generate their CSS a good decade or so ago ... it's a page of text, and pretty much anything that can generate an HTML page can generate CSS too)

    --
    Build it, and they will come^Hplain.
    1. Re:CSS pre-processors. by phantomfive · · Score: 2

      Can we agree that using a CSS pre-processor is a horrible hack, and that it shouldn't be necessary?

      --
      "First they came for the slanderers and i said nothing."
    2. Re:CSS pre-processors. by Anonymous Coward · · Score: 0

      Can we agree that using a CSS pre-processor is a horrible hack, and that it shouldn't be necessary?

      I used to be of this opinion, then I actually tried using one. It's since been an integral part of my design workflow. Variables, mixins, et al make managing stylesheets much easier and time efficient.

    3. Re:CSS pre-processors. by phantomfive · · Score: 2

      No, that's the problem. They DO make it so much easier. You shouldn't need to add that crap to CSS.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:CSS pre-processors. by sourcerror · · Score: 1

      You should add that crap to CSS.

      FTFY

    5. Re:CSS pre-processors. by Anonymous Coward · · Score: 0

      I always have problems with CSS. I will definitely be trying some of those pre-processors. I have bookmarked your /. comment, lol.

  12. Re:Browsers should ship with prefix support disabl by Anonymous Coward · · Score: 3, Insightful

    If microsoft didn't push out their ActiveXObject("Microsoft.XMLHTTP") in IE 5.5 - and people wouldn't exploit it like mad, we still wouldn't use ajax today.

  13. Re:Browsers should ship with prefix support disabl by Anonymous Coward · · Score: 1

    The possibility for AJAX lingered so long before it saw widespread use that I have to question if a more standards oriented approach might have been better, i.e. propose a method for Javascript to get and push documents, then make that feature available as an experimental (default OFF) feature, let developers play with it, standardize it and enable it everywhere. AJAX has its problems, which might have been avoided if Microsoft had not set them in stone by making the first implementation the reference for all others.

  14. Automatic prefixes by Anonymous Coward · · Score: 0

    I'm surprised noone has mentioned prefixfree.js (http://leaverou.github.com/prefixfree/) or cssfx (http://imsky.github.com/cssFx/). Both are polyfills that will automatically apply any missing vendor prefixes at runtime, allowing you to author the CSS without worrying about prefixes.

    1. Re:Automatic prefixes by Anonymous Coward · · Score: 0

      mod parent up

  15. Wrong solution to the wrong problem by Archibald+Buttle · · Score: 2

    IMHO the use of vendor prefixes was the right thing to do, and remains exactly the right thing to do.

    The problem instead is that the standardisation process is taking far too long.

    2D transforms, 3D transforms, transitions and animations still aren't officially standardised. They've existed for years, and are now supported in all major browsers (if one includes IE10), and are all essentially compatible. There's mostly only been minor tweaks to them all since they first appeared. Yet these CSS3 features are all at "working draft" stage. Indeed, the 3D transforms spec is a working draft, dated March 2009, over 3 years ago. It's absurd.

    The real solution should be instead to expedite the standardisation process. That way the vendor prefixes can vanish much faster.

    1. Re:Wrong solution to the wrong problem by BZ · · Score: 1

      What happened with those specs is that Apple proposed the drafts and Apple employees were the original editors (which all makes sense so far)... and then they did absolutely nothing for a while. Completely ignoring feedback mail, not fixing obvious bugs in the text (e.g. the text totally not matching what every browser, including WebKit, implements).

      Hard to expedite the standardization process when some participants sandbag.

      After a bit of this, new editors got assigned to the drafts, and they're making better progress now.

      Note that you should not be confusing "whatever happens to be published under /TR" with "the current state of the spec. The current state of CSS transforms (2d and 3d got folded into a single document) is at http://dev.w3.org/csswg/css3-transforms/ and pretty much no one involved in the working group or the browsers that are implementing these specs pays any attention to what's happening in /TR land.

      One last comment: there have in fact been pretty major changes to 2d and 3d transforms since they first appeared, both in terms of browser behavior (esp. around transitions between transforms) and even more in terms of the actual spec (because the initial drafts submitted by Apple didn't even match WebKit's behavior).

    2. Re:Wrong solution to the wrong problem by zzyzyx · · Score: 1

      You're right, but who sits in the W3C standardization committee ? Names such as Apple, Microsoft, Mozilla, Opera ... the browsers vendor themselves are refusing to move the standard forward.

  16. Sadly needed by Anonymous Coward · · Score: 0

    Browser vendors need to wait to ship new CSS features until they work. People use these for compatibility hacks where things render differently.

    Let's look at the good old days. When CSS first started appearing in user agents, we had crazy stuff like Opera interpreting z-index BACKWARDS. It was fixed in the next major release, but it was a real problem. I had been pushing many of our users to Opera (web designer + tech at ISP) and had to stop recommending it after that. At the time, I could have used something like moz-z-index: 10; o-z-index: -10 or something to work around the broken Opera folks implementation. This was somewhere between opera 3 and 4 and around the time they hired one of the co-authors of the CSS standard.

    Not to just pick on opera, remember IE3's very limited CSS which basically let you do link color and hover. In fact, what we really need is a clear CSS1, CSS2, CSS3 definition that browsers provide when they have FULL support for the standard as well as a way to detect user agent and version within a style sheet. It's terrible it's come to this, but if I could just wrap IE is broken crap in a ua:ie { } type thing it would make people happy. Let's face it, object detection was a great idea but it's still a fail. Things don't work right in IE or Opera. Firefox or Chrome can be picky about certain things and lose features in newer versions. Security on iframes and cookies keeps tightening up. Having the object doesn't mean it behaves like it did 3 versions back. We need a whole new model for defining capabilities that isn't broken on the web.

  17. Is not broken, don't fix. by Tei · · Score: 1

    I have write a lot of open source software. I am OSS supported as the next guy, and for OSS standards are very important.

    But standards are not more important than progress. With the current system, browser creators can invent any fun stuff and add it on the next update this week. And it don't break anything. And theres nothing bad in that.

    About webmaster using it, what is wrong is the level. Wen a JQuery extension or a CSS library (think... reset.css) use a extension, is Ok, because it abstract a problem, so the normal webmaster don't have to know or use all these -moz- -webkit- etc things. These things HELPS, helps so much that we can fix broken things on the web using then, like... making all browsers act the same way. And to do that, sometimes we need a library author, or a JQuery plugin author to put his hands on these extensions. Another similar thing is how you don't have localStorage of HTML5 support everywhere, but you can use it everywhere trought a library that uses something else in browsers that don't support it ( IE has something similar to localStorage from IE5, that is superugly but can be forced to provide the feature).

    These extensions are GOOD, but should be reserved to be used by the library authors, not the general webmaster public.

    This proposition is WRONG because sometimes you may want to support "opacity", but your programmers can't support exactly as speced, is better to have a --ie-opacity than have a opacity that work different than the standard. The browser extensions allow browsers to support things in a dirty/not complete mode, withouth breaking standards. This proposition is wrong.

    --

    -Woof woof woof!

    1. Re:Is not broken, don't fix. by Your.Master · · Score: 1

      The problem is that the system is broken. The web is starting to be written to webkit in much the same way as it used to be written to IE6, even where it doesn't make sense. Using a library is already possible and is already not working. It doesn't matter whether you think it's really the web developer's fault for not using libraries, or the library's fault for not being updated; it's happening.

      That doesn't mean I agree with this proposal. I'm wondering if there's a new thing that can be introduced that allows the benefits you described while mitigating the problems that vendor prefixing is causing. For instance, a vendor-neutral prefix for all experimental features coexisting with the vendor-prefix. Maybe that's no better than libraries in the end.

  18. PROTIP: by Anonymous Coward · · Score: 0

    Really web monkeys? Is that the best you can do? Mod me down because you don't like what I have to say?

    People are probably modding you down because you're referring to people them as "monkeys." If you were interested in frank discussion, you don't start with disparaging comparisons to other mammals. That's trolling no matter how well founded your arguments might be.

  19. The real solution by Spudley · · Score: 1

    The real solution to the problem is to make the experimental features more obviously experimental.

    It should be mandatory that a pre-standardised feature be disabled by default in the browser, and enabled via a preference setting for developers to try them out.

    Most non-developer users would not bother to fiddle with these prefs, and thus the features would remain truly experimental until they were standardised.

    Yes, this would mean that developers would get frustrated by stuff they want to do which is tantalisingly out of reach in terms of being able to use it for mainstream development. But on the flip side, I believe it would also act as an encouragement to all parties involved to get the features through the standardisation process at a decent speed (this has been a large part of the underlying cause of the problem, not the prefix policy itself).

    --
    (Spudley Strikes Again!)
  20. check your sarcasm filter by Anonymous Coward · · Score: 0

    check the batteries in your sarcasm filter

  21. Re:Constants (solution) by Richard_J_N · · Score: 1

    The trick is to write the CSS as a PHP file, but make sure it is only parsed rarely, and cached. On the server, create "style.php" (linked from thje main HTML just as if it were a normal style.css file). Then fix the caching and mime-type. Result: easy to write, still efficient.

    //Respond with 304 (not-modified) unless the file is changed. This means the PHP file is only evaluated once per client per session.
    $last_modified_time = filemtime(__FILE__);
    $etag = md5_file(__FILE__);

    header("Last-Modified: ".gmdate("D, d M Y H:i:s", $last_modified_time)." GMT");
    header("Etag: $etag");

    if (@strtotime($_SERVER['HTTP_IF_MODIFIED_SINCE']) == $last_modified_time ||
        trim($_SERVER['HTTP_IF_NONE_MATCH']) == $etag) {
        header("HTTP/1.1 304 Not Modified");
        exit;
    }

    $max_age=600;                                               //10 minutes.
    header("Cache-Control: max-age=$max_age");   // HTTP/1.1  (Client won't even try to reload more than every 10 mins).
    header("Content-type: text/css");                     //Set the mime-type to CSS  (so the browser will cope with it.)

    //Now write out the CSS, using PHP to help make it more terse.

  22. Re:Constants (solution) by Anonymous Coward · · Score: 0

    I used to do this but have since changed to SASS. Worth a shot if you haven't tried it out!

  23. Re:Browsers should ship with prefix support disabl by shutdown+-p+now · · Score: 1

    It's the same old argument - do you want the standard to be a rubber stamping of an ad hoc development with all its quirks and flaws, but available to play with early on in all browsers? Or do you want it to be a polished document produced by a committee of several dozen people deliberating over the fine details of syntax for 2 years, but available very late (and in the meantime, incomplete/fragmented implementations between browsers)?

    TFA argues for the first model. If it works, let it stick, even despite minor flaws. If it doesn't work, it'll just go away, and no-one will care if it was prefixed or not.

  24. Re:Browsers should ship with prefix support disabl by Anonymous Coward · · Score: 0

    I'm not saying the implementation can't be first. I'm saying, don't enable it by default in the installed base before it's a standard (formal or informal). That way the people who want to play with it can, without being tempted to use it in production sites, where it'll break sooner or later if the standard isn't just a rubberstamping of exactly the first implementation. By making the feature available default-off, the implementers can still see if the specification is clear and unambiguous, and the users can still see if the feature is useful as it is.

  25. Re:Constants (solution) by phantomfive · · Score: 1

    That's a fine trick, and it is clearly beneficial since you are willing to go to such an effort to do it, but this only demonstrates how truly constants are needed in CSS, because everyone is making their own hacky workaround.

    --
    "First they came for the slanderers and i said nothing."