CSS Support Could Be IE7's Weakest Link
Ritalin16 writes "Many web developers may be disappointed to hear that Microsoft decided to hold off on full CSS2 support with IE 7.0. As said by Microsoft-Watch: 'One partner said that Microsoft considers CSS2 to be a flawed standard and that the company is waiting for a later point release, such as CSS2.1 or CSS3, before throwing its complete support behind it.'" More commentary available from ZDNet. Generally related to the IE 7 Acid Test thrown down by Opera.
Support CSS 2.1. We're really not picky. Anything is better than nothing.
"One partner said that Microsoft considers CSS2 to be a "flawed" standard and that the company is waiting for a later point release, such as CSS2.1 or CSS3, before throwing its complete support behind it." If MS were so concerned about quality standards, they would embrace the best thing we have: CSS 2. And then, when 2.1 or 3 came along, they'd support that promptly.
I Want To Believe
Well, it probably does *help* to be doing acid when trying to get IE to work properly ...
See, that's the problem. It's just like Microsoft to say "We'll wait til later ( point release, such as CSS2.1 or CSS3) before throwing our complete support behind it" I don't understand! You have to plan for the future, no plan after the fact!
"I cannot think of any need in childhood as strong as the need for a father's protection." -- Sigmund Freud
Certainly not slashdot, it seems. In fact, they don't seem to be adhering to any standards at all.
Funny how that open source superiority give slashcode cruddy HTML code and horrible, outdated design.
This specification defines Cascading Style Sheets, level 2 (CSS2). CSS2 is a style sheet language that allows authors and users to attach style (e.g., fonts, spacing, and aural cues) to structured documents (e.g., HTML documents and XML applications). By separating the presentation style of documents from the content of documents, CSS2 simplifies Web authoring and site maintenance.
CSS2 builds on CSS1 (see [CSS1]) and, with very few exceptions, all valid CSS1 style sheets are valid CSS2 style sheets. CSS2 supports media-specific style sheets so that authors may tailor the presentation of their documents to visual browsers, aural devices, printers, braille devices, handheld devices, etc. This specification also supports content positioning, downloadable fonts, table layout, features for internationalization, automatic counters and numbering, and some properties related to user interface.
more here:
http://www.w3.org/TR/REC-CSS2/
I guess that's not THAT bad.. Sure it would be nice to have CSS2 support, but security seems to be the #1 thing everyone bitches about around here and is probably more important.
Then again, I can't really see why they don't do both...
MS complaining about broken standards.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
Yesterday I had to make a page.
I made it in firefox with no problems. Then, I looked at it in IE and it was terrible. If I code to standards why can't microsoft make their products support standards?
We consider the standard to be flawed. So instead we will continue with our flawed support of the previous standard.
room101 -- how much can you stand before they break you?
(they always break you eventually)
We don't want to support your flawed standard so we can have a chance to push our own flawed standards.
Lost at C:>. Found at C.
People will use IE7 because windows update will automatically put it in place of IE6 one day. It will fix some bugs and create others. It will not change how web developers create sites, it will not derail Firefox, it will not make people salivate for Longhorn.
What a load of crap! CSS3 builds up upon CSS2.1, and even though CSS2.1 is still a candidate recommendation, it's being pushed as the standard by the W3C (as evidenced by the fact they are linking to CSS 2.1 in the navigation menu of their CSS page)
Of course, some people are actually in favour of IE not supporting CSS any better than it currently does - with IE7 being unavailable on platforms older than XP, and any attempted improvement to CSS being likely to add more than it's share of CSS bugs, it would just make another browser developpers need to work around. The evil we know might just be better...
Karma: Could be worse (could be raining)
What. Just because their products have their own flaws means they should adopt all technologies that are flawed?
"Ideas without action are worthless."
Once upon a time, this would have worked. Take the emerging layout standard that doesn't use your bizarro extensions and strange layout tactics, decide not to support it, and force everyone who wants slick new layout features to write for either you or everyone else, or else write every page twice.
But I'm not so sure this is a good idea now. The fact is that more and more people are getting to the point that they would rather write for everyone but IE rather than just IE. I think falling behind on standards while steaming ahead with the next generation of crappy proprietary extensions just isn't going to work again. In fact, I think this might accellerate the death of IE.
Bottom line: bad move. The correct response to more competition is to compete, not to stick your fingers in your ears and scream "LA LA LA I'M NOT LISTENING!"
adam b.
Let's put two and two together:
Perhaps the new microsoft motto will be "IE's not done till Google doesn't run"
This won't be a huge problem since Google can simply update their code. However, I wouldn't be surprised if alot of JS functionality that would be very useful to google either now or in the future is simply "missing" on IE7
There has been alot of talk of Google launching a new era of computing with the web as the OS. But Microsoft controls the web (through IE), and they won't allow the web to become a competitor to Windows.
Rename CSS2 to CSS2.1 or CSS3
It doesn't matter what's inside the documents.
MS only supports what it want's to support.
Think about it!
Grundgesetz * 23. Mai 1949 - 30. November 2007 - http://www.vorratsdatenspeicherung.de/
"I'm Microsoft, and I'm a big monopoly, so I'm arbitrarily deciding not to support standards I don't like. For no other reason than I don't like them. Secretly, it's just because I don't want to adopt standards that compete with my own, but my managers have told me to tell everyone I just think it's a buggy implementation. I never make any of those..."
Someone should start an organization that publicly hands out awards to companies that severely hinder the progress of technology. Microsoft would win every year. The web has been held back for seven years now because IE won't properly support CSS2. That's like someone developing an improved version of gasoline that costs and pollutes less, and then none of the gas stations adopting it for close to a decade even though it's cheap and available. You look back and shake your head that all this time, people could have been saving money and polluting the air less and they have no idea.
The general public doesn't even realize the web would look and interact much better than it does now. We should have been visiting more advanced websites years ago. But the web still looks and functions the way it did in 2000, because the majority browser IE doesn't adopt technological progress. It's times like these I wish I was rich enough to run public service commercials that stated all this, just to inform people how they're being hindered without even knowing it.
Someone should make a ie "plug in" that handdles ccs. We have a couple open rendering engines (geko/khtml)..
Could this be done?
Designing pages for one particular Web browser is a bad idea
Using CSS2 and designing for the set of all browsers known to support most of CSS2 isn't "designing pages for one particular Web browser".
Can we get the parent modded up? It's ridiculous for any employee of Slashdot to be criticizing anyone for their lack of support for web standards.
Forget the whales - save the babies.
I've decided that from here on out I will invoice my CSS time for IE seperately. Being that I create most browser interfaces in XHTML and all layout is 100% CSS, I will now isolate the huge chunk of time I must spend on each project for IE compatability. I will also make it clear UPFRONT by making an accountance in my proposol for just how my design time will be devided up and how much time I estimate to spend on IE compatability vs supporting the rest of the world.
Why single IE out on my invoices and proposols? To let companies know where that extra $2,000.00 went for 20-30 hours of my time. That's why. And in hopes that they will opt not to engage in that expenditure.
I'd urge all other UI designers and developers to do the same.
And if the client decides that they wish not to support IE, a small victory shall have been won.
It was fine 5-6 years ago to say "Ooops -- you're using that Netscape piece of shit, please come back using a real browser"
I say it's time we start doing this again, but for IE and for the exact same reasons.
Since IE doesn't support CSS 2, it's really easy to slap a "Get Firefox!" tag at the bottom of a page, then use CSS 2 selectors to hide it from browsers that follow standards. That means that if IE7 actually does support standards, visitors will stop seeing a warning to switch browsers on my page. And why not? If IE actually could render a page correctly, then I wouldn't have a problem with it. Until then, I'm keeping an FF logo on the bottom of the page and hiding it with CSS 2:
http://deadhobosociety.com/wiki/
Picture a web page that is full screen at any resolution. With a layout that is dynamic and easy to change based on user input without refreshing the page. Text that dynamically increases size for the user. A single web page that looks correct printed, on a web browser, a text mode browser, or even to a blind person. With multiple layouts that a user can choose (low bandiwth, high bandwith, no images, etc)
All that can be done with css, and its very easy to do. And all without any tables.
check out www.csszengarden.com or do some googles.
Why not writing this instead?
a,a.somestyle,a.otherstyle {common formatting}
a.somestyle {specific formatting}
a.otherstyle {specific formatting}
perception is reality
People tend to assume that every Microsoft action is part of some evil master plan. The truth is that they're stumbling around in the dark a lot. The software development effort is conspicuously out of control, and many of their projects are a total mess.
columns are easy, dynamic columns are a right bastard. CSS needs groups and referncing.
myclass{
width = grouped
}
myclass2{
left = myclass.right
height = id.height
}
etc...
thank God the internet isn't a human right.
That's a common misconception. CSS has made that easy for seven years (display: table-cell), it's part of the CSS 2 specification.
The reason why nobody knows about it is because even though Safari, Mozilla, Opera, Konqueror, Firefox, Omniweb, etc. implement it, Internet Explorer doesn't, which means it might as well not exist.
This is why everybody is so keen for Microsoft to implement CSS 2. Or CSS 2.1, which is CSS 2.0 with the more difficult parts taken out and a couple of proprietary Internet Explorer properties thrown in.
It's not "CSS making it hard", it's "CSS making it easy and Microsoft making it hard".
For most purposes, grouping selectors is more than enough. The example you gave is a bit odd, because CSS lets you do that easily:
There are RUMORS people. The fact is, MS hasn't made any definite statements about IE7, except for announcing that there will be one. They've been very tight lipped about it, even within our internal-only IE discussion lists. Lets not waste our breath discussing this 'issue'.
I think that the latest incarnation of CSS may be the "standard", but since IE is by far and away the most popular browser its method of rendering pages is actually the de facto standard.
I don't know how many times I've read this statement from other people - "I like Firefox/Mozilla, but it doesn't render my bank/news/etc site correctly so I have to use IE." Or "I would use another browser but I support IE at work." A lot of people are stuck with IE because of its poor interoperability.
Now why would MS decide to spend money on extra development effort on a project that earns no revenue in order to increase interoperability, thereby incouraging web developers to fix their web sites so that competing browsers can render them correctly? This loses them both dollars and marketshare.
If a page doesn't adhere to standards, but renders well in popular browsers, what's the problem?
The problem, IMO, is that you don't know why or why not things render well.
By conforming to standards, you have a (debatably) clear set of rules that define certain behaviours. For example, you will know that if you want to have some number of pixels pad your elements, then you will not have to resort to ugly hacks to get the same layout in BrowserX as you do in BroswerY. Why? Because each browser will reference the rules for adding the specified amount of padding to an element, in the right place, and in the right proportions.
By not supporting standards, you have a number of problems:
Imagine whipping up a simple page to test out a new design idea in your browser of choice. Everything looks good. Now you try to use it on your production page. Something looks wrong. Is it because you've included it in a tag that overrides your specifications? Is it because you've arranged it next to an element whose properties are spilling over into your space? Is it because you tested it inside of a tag, for which the specification holds, but have erroneously tried to apply it to a tag that does not support it? How will you know, unless your browser developers tell you -- assuming they know themselves?
For me, that's why CSS is useful. For the most part, it's pretty clear as to what things support what attributes.
Since your post was originally about Slashdot's (non-)adherence to CSS and other web standards, here's one major incentive to switch over: bandwidth. Does anyone really like throwing money away?
I'm not entirely sure this is what you are after, but did you realise you can combine classes?
.style1 {color: red;} .style2 {background-color: blue;} .style3 {border: 2px solid black;}
i.e.
<p class="style1">I Have style 1</p>
<p class="style1 style2>I have style1 and style2 combined</p>
<p class="style1 style3">I have style1 and style3</p>
<p class="style1 style2 style3">I have the lot!</p>
The real reason why Microsoft does not fully embrace W3C standards is because they want to move away from browser-based application. This is also the reason why they let IE development go into the tank.
In the browser-based application model, MS does not control the desktop. They have competitions from Firefox and Opera. More importantly, MS also does not control the server. They have competition not only from Apache, but also Google, Amazon, eBay, AOL, and anyone who publishes a web application.
Microsoft's aim is to control both ends of a network application. And the way they are going to do this is to replace HTTP web servers with IIS and Exchange Server and to replace web browsers with Outlook. The .NET platform is just a step towards that goal. If you accept IIS/Exchange and Outlook as a server/client network application platform, there is no need for W3C standards. It also eliminates any competition, or at least make the competition dependent on Microsoft technologies.
Therefore, any effort that Microsoft expends into making "the web" more usable, such as CSS compliance and updates to IE, only enhances the browser-based application model and hurts Microsoft in the long run.
Here are some interesting things to consider:
So, if Microsoft is refusing to attempt proper support for a standard that's been around for close to 7 years, and is waiting for a standard that's already been floating around for a year, why should anyone expect them to support anything whenever it's actually released?
I know this isn't a big suprise, but it's further evidence that they could honestly care less about standards unless there's something they can get out of it. When CSS3 is eventually released, we probably won't get support for another 5 years!
I'm against picketing, but I don't know how to show it.
Why would anybody want to use display: inline-block. The article I link to says "The real use of this value is when you want to give an inline element a width. In some circumstances some browsers don't allow a width on a real inline element, but if you switch to display: inline-block you are allowed to set a width." How many times are people going to run into a situation to need this?
*snip*
For a long time I've been trying to get a list that will appear like a table. You can make a list set them to display as inline. It works, but then you can not set a width, which then makes it useless.
I find it funny that the example you used to document CSS's failings is solved by a modification that you profess nobody needs.
concrete5: a cms made for marketing, but strong enough for geeks.