CSS Proposed 20 Years Ago Today
An anonymous reader writes: On 10 October 1994, Opera CTO Hakon Lie posted a proposal for Cascading HTML style sheets. Now, two decades on, CSS has become one of the modern web's most important building blocks. The Opera dev blog just posted an interview with Lie about how CSS came to be, and what he thinks of it now. He says that if these standards were not made, "the web would have become a giant fax machine where pictures of text would be passed along." He also talks about competing proposals around the same time period, and mentions his biggest mistake: not producing a test suite along with the CSS1 spec. He thinks this would have gotten the early browsers to support it more quickly and more accurately. Lie also thinks CSS has a strong future: "New ideas will come along, but they will extend CSS rather than replace it. I believe that the CSS code we write today will be readable by computers 500 years from now."
I’m sure this won’t be the only "css" sucks comment. I didn't like css when it first came out, I didn't like it when it became supported enough to use, and I still don't like it.
For styling and formatting it’s ok, but for layout it is a convoluted mess. Grid based layout is a standard of just about every UI engine for a reason we like stuff to line up, we like stuff to scale gracefully, and grid based systems work very well for both. "But.. but.. in html tables were made for text" I can hear some web dev whine. That doesn’t mean the whole concept of grid based layout should be tossed out and replaced by the clusterfuck that is CSS layout.
Simple things like a complex form, which would be trivial with a grid (and are trivial with tables) are an epic pain with CSS layouts. And what great benefit has it given us? Panels that float around the screen (and break if something is resized, zoomed in, or a block of text is larger than expected).
And detaching content from style epic failure. The oft referenced CSS Zen Garden is to me an illustration of exactly how CSS failed at this goal. The layout is still being largely defined by the HTML. You can only _somewhat_ adjust how things are positioned in relation to each other with CSS, which requires you to have multiple layers of nested <div id="random_section_that_you_might_use_for_something_or_not"> to give the kind of flexibility that CSS Zen Garden does. Actually take a look at the HTML for those pages. This is not an example of how things should be done.
Maybe he meant to say 50 years?
"the web would have become a giant fax machine where pictures of text would be passed along"
No, we would have just kept using tables and <font> tags.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
> I believe that the CSS code we write today will be readable by computers 500 years from now.
Perhaps vacuously this statement is true, as in 500 years, humanity will have unraveled itself and there will be no running computers left. So yes, all computers 500 years from now will be able to read CSS, because the set of all computers is the empty set.
Won't we be able to read most computer code that is ubiquitous today 500 years from now?
C is still going strong after 40+ years, and may continue for another 50 years. CSS should stick around a little bit longer.
A little piece of web history, and then you have to end it with a statement about computing 500 years from now. Obviously current web standards still will still apply...
Nice piece of CSS history though.
Kurt Cobain saw what was being proposed and . . . . (well you know the rest)
(Too soon?)
I am Slashdot. Are you Slashdot as well?
that in 500 years i'll still hate the fucking "float: left;" bullshit
I believe that the CSS code we write today will be readable by computers 500 years from now.
I was feeling so good this morning, the I read this. Thanks Debbie Downer, I'm going to go cry in the bathroom now, this is the saddest thing I've read all week.
"First they came for the slanderers and i said nothing."
Well I thought since this was 2014 the browser css rendering inconsistencies were pretty much gone and for the most part they seem to be yet after testing a few websites I just build using some basic designs the default Android browser is rendering horizontal list/text spacing all wrong vs PC/iThings.
So off I go to read up on it and all of a sudden there this @media query thing. After seeing some examples I'm liek WTF? People are using 100's of lines of extra markup or extra style sheets to make things cross platform. Talk about a flash back from the late 90's/early 2000's of nasty css.
by TheSpoom (715771) Uncaring Linux user here. I have nothing to add to this but please continue. *munches popcorn*
I started learning CSS and HTML in 1997 on one of those free websites, Earthlink or something else that didin't survive the dot com bust. I later got a Unix shell account through my ISP and hosted my website from there. Cut my teeth on a text editor and never learned how to use a WYSISWYG editor (most wrote spaghetti HTML).
People need to stop whining about CSS and learn how to use it. It's not that complex, guys and gals. It even has flexbox, calc, rgba, before/after/content, and all sorts of features that your average "let's use classes for everything" web dev would be shocked at. Hell, I've been able to replace gigantic JS functions with a single CSS3 selector in some cases and still had better performance.. and the dev didn't even know it was possible, despite calling themselves an advanced CSS user. Sure, if you STILL want to target IE under 9 or ancient iPhones/Droids you might need to resort to hackery, but that's not CSS's fault. That's the price of progress being stifled by people who don't want to progress.
Then there's all the people who claim that layout-centric markup (tables, font, etc) were a good enough solution that could have evolved into a superior tool... don't seem to realize how complex that would be. I guess it could work if you wanted to have several versions of a site's markup just to get the same result, but then you're mixing everything into one format. That's insane. HTML for semantics and CSS for presentation makes much more sense and is a lot less work these days, unless you still demand that your web page be viewed in one or two resolutions the way YOU want it to be viewed. Which makes you the problem, not CSS.
Also, advanced constraint-solving solutions are a nice way to ease the developer's time, but they make your site barely usable unless you use them sparingly. Given that modern computing devices can barely handle advanced CSS3 in some cases, I think people need to stop opining that these were a better solution for yesteryear, when even a powerful PC could barely handle CSS more complicated than the classitis and divitis ridden monstrosities we came up with back then.
One of Opera's claims to fame before I joined was that the browser would fit on a floppy disk (which is 1.44 MB). "Fits on a floppy" was a great slogan in those days. When CSS was added, a few more bytes were needed and Opera would no longer fit. "Almost fits on a floppy" doesn't quite have the same ring to it.
Even though I've been around long enough, it blows my mind now that *anything* ever fit on a floppy.
Dear Slashdot: next time you want to mess with the site, add a rich-text editor for comments.
The Opera web browser it is dead now it has become a Google spyware dominated by Google. The first version of the Opera web browser had advertising in the corner of the browser. The second version I paid for it was called the pay for version of the Opera web browser, it was a truly locale as the French, say locale LANG=cs_blah blah. I also use their first Linux desktop version the first one which crashed quite a lot but eventually ended up working just great considering Linux desktops are shit. The Apple version look very nice. Even the virus security products started supporting it with add-ons for the Windows, version sandboxing. I have seen their latest offering and Opera is truly dead it is a Google product.
It's the only way to be sure.
The wonderful Tcl/Tk toolkit solved the layout problem in the 1990's with its excellent constraint-based geometry managers: The grid engine, the packer and the placer. I'm sure it would have been possible to express each of those layout engine's rules in something analogous to CSS.
That would have made page layout so simple it'd almost be fun.
While I have a laundry list of complaints I like the underlying idea more than I dislike it. Amazing how simple html content ends up being and how flexible changes become once you have made a reasonable attempt to declare content and decouple style.
This said I'm very much less certain what my sentiment of CSS actually translates to in the real world.
The underlying problem while technology wants data presentation to work across maximal number of display sizes and capabilities such things too often appear as intolerable annoyances to designers. The world is teaming with fixed width websites and crap like zen garden is a joke. Without assumptions of fixed content tailored specifically for the garden those layouts would fall apart.
It often takes different skill sets to design something that both looks cool and is able to survive with coolness intact across a number of different and perhaps unknowable parameter changes.
This in my opinion is responsible for about half of the great tables v CSS layout arguments. What designers really want is for each page to have a known width and a known height without all of the compatibility bullshit or having to think about unknowns... what they actually want looks a heck of a lot more like PDF than it does HTML/CSS.
Without significant design / technology change to bring competing interests into better alignment I wouldn't bet on CSS lasting 50 years.
Lol, in 500 years from now you may be get acquainted with clear: both
It is my very firm opinion that whoever came up with CSS should not be putting it on his/her resume, because I wouldn't be hiring them for this monstrosity. It is a mess that's so thoroughly convoluted and unintuitive to use as to make the people involved in the core design essentially persona non grata of the tech world. I wouldn't want those people designing anything that I myself would have to deal with, no, thank you.
The idea behind the CSS is sound. The implementation is beyond horrible. It tells you something when you need to go through less hoops to get the layout you want in TeX, than in CSS, and TeX's basic block model was not designed for most of what it's being used for nowadays. CSS's design is an abomination that perhaps resulted from not having much in the way of exposure to the high-level designs of any layout software, or perhaps in the designers having grandiose aims with not much experience to back it up. Either way, it's just bad. I'd call CSS barely functional, like you have with some alcoholics who can hold a job and go through life "mostly fine" - as in without quite killing themselves or anyone else around them.
As an example of an API/interface design, CSS is precisely the way nobody should be doing it.
A successful API design takes a mixture of software design and pedagogy.
Lol, thats not a great feat, the problem is that as computers became more powerful, the standard for developers have been going down (exponentially, if Moore's law has any credibility).
But if you seriously want to get your mind blown away and get inspired for life, google "HEAVEN7W.exe", download it and run it. Just make sure to take the normal precautions (since the file it is an executable)
On 10 October 1994, Opera CTO Hakon Lie posted a proposal for Cascading HTML style sheets.
How come?
Sorry, someone had to do it. :)
Thanks to the War on Drugs, it's easier to buy meth than it is to buy cold medicine!
Yeah, all the CSS lovers will pile on. Have a party. I still think CSS is a stupid idea.
1) Cascading. What the F? In order to figure out what is going on I have to work back through all the cascaded sheets to figure out what's going on
2) "Separation of content and presentation" Yeah, that's a great idea, but not in HTML. HTML *is* a presentation layer. Who writes content in plain jane HTML? Idiots, that's who. Everyone else writes in something else (Markdown, XML) and compiles to HTML.. CSS is a negative there.
3) CSS syntax is completely unrelated to HTML syntax. Thanks a lot
It still sucks.
CSS has been a thorn in my side since it came out, and it still is (even though I don't do web development anymore). It's because of the difficulties with CSS that we have such terrible things as my personal pet peeve -- web pages that have fixed minimum or maximum widths. While CSS does have advantages, it also has disadvantages -- and the effects of those disadvantages on web site design in general very often makes the web less useful to me than it would otherwise be.
Too long to paste in its entirety, but instantly made me think of this:
http://leonsbuddydave.tumblr.com/post/54879645535/today-css-is-the-worst-possible-way-to-describe
CSS still readable in 500 years? I think this guy has an over-inflated sense of personal legacy.
"Molest me not with this pocket calculator stuff."
- Deep Thought
CSS is good. Really. It is not too bad, has a few warts and so, but we are finally there. Or will be in 5 years when all the browsers finally support the new Grid layout module.
The problem with CSS is that it took 25 damn years to get to the point where windowing system were already in the 90s. There are 2 main problems up to now
First, the block model. Seriously people, if I specify that a block has a width of 300 pixels I mean that the block has 300 pixels, and not the content inside the block without the padding. Really. That makes no sense. For some reason it did to the authors of the standard. It hurts me to say this, but Internet Explorer 5.5 got this right and simply ignored the stupid, dumb standard. Most of the nightare that is CSS layout was caused by this clusterfck of stupidity. Now there is finally a solution, one can set the box-sizing and almost all browsers support it. Those that do not are old and can fly.
Secondly, tables vs grid. I get the whole tag is not semantic thing. Really. But often, strangely standards people, we DO WANT THINGS TO BLOODY LINE UP IN A TABLE. But nooooo, we must not use tables because it is not fashionable or something.
Floats were meant to be used to put pictures inside a large block of text. It is great for that. Now it is used for laying out elements on a page. And this is supposed to be LESS hacky than using a table? Seriously??
CSS grid layout finally, finally, finally solves all of this hacker bull. It does something that should have been in there since the 90s. After all, pretty much any window manage on the planet could deal with this back then. People still use tables because it is easier. Grid also decouples the sequence of the elements in the markup from the sequence on the screen, which is cool. But, but even Chrome only experimentally supports grid layout so I have to wait another 5 years.
A couple of other things on my wishlist.
Calculation. Based on the current state of the screen. Sometimes saying that I want the thing should be 500px - the width of the div with id #blabla would make a lot of all the CSS shenanigans unnecessary. Yes, I know that some designers can't add, but I can and I want to. And no, I do not want mathematica in there. Simple basic arithmetic would be fine. Right now you can do 3D transform in CSS3 but you can't subtract the width of an element??!! FFS why??!!! There is a new calc module but that will take another 5 yars to become commonplace.
Better control of height. I want to say "This div fills the rest of the container vertically/horizontally" One of the reasons tables are useful for layout is that you CAN do this by setting the width of a column to *. Layout engines in GUI land, such as Interface builder and the oooold News uses a concept called Springs which expand. Coool feature, missing from CSS.
The fact that you can book loads of courses and read lots of book on how to arrange things on a page with CSS is a real shame. It simply should not be necessary to have that level of expertise just to such a trivial thing.
25 years. This is the time from the end of WW2 to the day I was born (almost precisely). 25 years is the time between the invention of the transistor and the invention of the CPU. 25 years is the time between the first flight and the first ocean crossing over the Atlantic. 25 years is the time that someone goes from being born to being a working productive adult. 26 years is the time between Columbus' discovery of the new world and Hernando Cortes conquest of the entire Aztec empire.
25 years is a quarter of a century.
25 years is the time between the invention of CSS and the moment it is viable to lay out a page without being an expert in some very arcane hackery. Why was this really necessary??!!!
The dangers of excessive individualism are nothing compared to the oppressiveness of excessive collectivism
Well... he can't tell the truth.
Nice to styling. Mostly terrible for layout: :after & :before - nice but abused for adding stuff; why not multiple instances of each? And also by doesn't content has a default?
- float: center - how hard can that be? Content to flow around an object, please (And I know, MS, have proposed float: center - finally...)
- CSS regions - get on with it, ffs. A basic DTP concept from when DTP was actually a concept.
- Vertical centering - shouldn't be that much of a fudge
- centering elements that aren't fixed width - yes, it's possible but really, should be easier.
- anything that requires a negative margin: this isn't a workaround but a sign that it's not quite descriptive enough.
-
At least it's mostly consistent (bleeding edge aside) across browsers (in a way this nonsense was worse a few years ago).
He says that if these standards were not made, "the web would have become a giant fax machine where pictures of text would be passed along."
Self righteous nonsense. If these standards were not made, others would have been made instead.
C is dead for mass market, it bowed out of client/server software...C++ devs are under delusion of embeded hardware and they may win that area so..
Proposed 20 years ago, and it's still not Turing complete.
What a bummer.
If Pandora's box is destined to be opened, *I* want to be the one to open it.
I'll bet a million dollars in 500 years time money that there won't be any such thing as computers in 500 years!
The web should have been given a low-level, machine readable standard which human-friendly formats and tools could have formed and evolved around. Sure we'd still have markup and CSS and script, but you can bet your ass applications wouldn't have been built on that crap. We are easily 10 years behind where we could have been because of a poor choice of level of abstraction.
I think C will make it 500 years, if we still have embedded things then, and civilization.
Sent from my PDP-11
Yes, CSS is a "hacked-on lie".
Depends what you call embedded. But C++ in the embedded world is not very likely for a variety of reasons. C itself vs. Asm is still a debate I have with my colleagues on a daily basis. I have delusions of a replacement for C in the low-level embedded world - but chances are it would be hard to displace even with all of its flaws.
The article summary says "I believe that the CSS code we write today will be readable by computers 500 years from now." Yet at the bottom of the Slashdot main page it says "All seems condemned in the long run to approximate a state akin to Gaussian noise. -- James Martin"