Real hackers don’t use CSS
Back in the old days of 1996 there were two kinds of people. Those who understood the web, often referred to as "hackers", and those that didn't. A hacker could throw together a website in a few minutes, filled with the latest possibilities that the web offered: animated gifs, scrolling marquee text and blinking red text for the really important stuff. It was a glorious time and the hackers really ruled the web. It started growing.
Hackers and designers#
With growth came the designers. They wanted to use the web just like the unlimited piece of paper it was. So they sent their designs, the same designs they had previously printed, to the hackers and said: "I want this on the web". The hackers looked at the designs and didn't like them at all. But the designers were the ones paying their salaries so they had no chance but to do what the designers wanted.
When the hackers started working they quickly came to the conclusion that this was harder than they had predicted. Then a smart guy that really knew his way around the web found a tutorial describing how to do something called "image maps". The hackers cheered! They could take the dreaded designs and put them up on the web as images. Then add transparent clickable areas on top of the images that linked to other images. The hackers' status had been reinstated and the designers looked at the results and were happy, "It looks just like we want" they said.
How to make a website, a hacker’s guide:#
- Convert the designers images to JPG
- Add an image-map to each one of them
- Make sure all links work
- Show the designers
Hackers and customers#
Here entered the customers. The company website, that looked just like the designers wanted and was coded just like the hackers wanted, was very slow. Sometimes it took over 15 minutes for the customers to get the info they wanted from the site. Phones started ringing in the hackers' offices and they all gathered to try to solve the problem. This was when the major breakthrough in the web history came.
One clever hacker suggested that they split the images in many parts and used tables to put them back together. The older hackers scratched their heads, "Tables? Where did they hear of them before?”. After some research they found that tables were sometimes used in research reports to show a grid of values. “Just put some images in those cells instead and it will look just like before”, explained the clever hacker. He continued, "… but that doesn't make anything faster. To make the page faster we split it so that we can remove some parts. If there is a large block of blue somewhere we can remove that image and set a background-color on the cell instead!". There was much rejoice and the hackers got to work. Many had problems dealing with splitting the images in the image programs, but after a couple of weeks of training they mastered it.
The years passed by and the hackers got better and better at taming tables to do just want they wanted. Someone came with the idea of putting another table inside the first one. That made the code a little easier to maintain since they didn't require the use of row- and colspan. Additionally that made it possible to add margins to your text, something that made the designers happy. Someone came with the clever suggestion that sometimes text can be removed from the image and written in the cell instead. This made the designers a bit annoyed since sometimes the customers got the wrong font but it wasn't an issue big enough to start a fight over.
How to make a website, a hacker’s guide (version 2):#
- Convert the designers images to JPG
- Slice the images so that the big one-colored areas can be replaced with a table cell
- See if any of the text can be removed from the image and set in a cell
- Link each individual image correctly or use an image-map.
- Make sure all links work
- Show the designers
- Show the customers
Hackers and standardists#
The earth shook and the web standardists entered the scene. The standardists said to the hackers, "You are doing things all wrong, you need to redo your sites and learn everything from scratch again". The hackers laughed. Their customers were happy, the designers were happy, they were happy, why should they change? The standardists spoke again, "but your page will load faster with standards". The hackers looked back and remembered how slow their sites once were, they looked at the adoption of high speed internet connections and they reckoned that speed wasn't a problem.
The standardists were now annoyed, why couldn't the hackers understand why standards were better? They gave it one last chance and said "But if you use CSS for layout your sites will be much easier to maintain!". In reply the hackers showed all their table skills they had acquired over the years. One guy had 16 nested tables to show. Another guy used frames to layout his site and had a whopping 25 frames in a spectacular pattern which all the other hackers envied. The hackers really knew what they were doing. They said, "There’s no need learning this new stuff, it will just take a lot of my time and it isn't any better".
How to make a website, a standardist’s guide:#
- Look at the design the designer gave you, figure out what parts the design consists of.
- Start writing the HTML corresponding to those parts. Try to avoid adding elements to the HTML just for the sake of design. Make sure all content in the design is represented in the HTML (text preferable).
- Link a CSS file to your HTML and start adding style to the document. Test in the modern browsers and read guides with common bugs to fix problems you encounter.
- Show the designers and explain why they can't have it look just like it would on paper.
- Do user testing to determine things work or not.
- Release it to the customers and be open to feedback.
Conclusion#
When you, as a standardist, talk to hackers about standards, keep in mind that they are good at what they do. There's a reason they are doing it a certain way and it works. Just throwing out a "Tables are so -96" won't bite; you need to be smarter than that. Don’t forget that you were once in the same seat, and use the same arguments that made you switch.
And yes, that guy using frames for layout in the text above, was me.
Comments
By: Henrik Feldt (#1)
Det var en av de roligaste artiklarna jag har läst på länge! Underbar referens till Ferdinand.
I've actually never used tables for layout. They're complicated. I've used frames, which was OK, but I get really annoyed when Aftonbladet's ungtval06 site uses them. I mean, 2006 and frames??!
Time to start arguing about xhtml 1.1 sometimes soon? Using it for all my new sites. It's really good because if you can't make mistakes, or it won't work ;). Also, it's nice to be able to use MathML and SVG when they come widely accepted.
By: Emil Stenström (#2)
By: Mark C. (#3)
This is how it used to be.
By: Ho-Sheng Hsiao (#4)
By: Emil Stenström (#5)
By: Mihai Campean (#6)
By: Emil Stenström (#7)
By: redSAID! (#8)
By: Emil Stenström (#9)
By: Soup (#10)
I wonder what you think about truly allowing designers to have what they want. If you look at the CSS Zen Garden, you can see how flexible and creative any designer can be using CSS, positioning, DIVs, and background images (just like your site has so well taught us). Slices are still important, so to speak, but in a completely different way. Am I right?
By: Eric TF Bat (#11)
By: Mihai Campean (#12)
By: Emil Stenström (#13)
@Eric TF Bat: Good advice. I would use a bit softer and friendlier language than that but I get your drift ;)
@Mihai Campean: Indeed. Let me know if you have any suggestions of improving the code of this site.
By: Soup (#14)
By: Johan (#15)
CSS when knowing it well can make astounding designs.
proof: my fav
http://www.cssplay.co.uk/index.html
http://csszengarden.com/?cssfile=http://www.css-praxis.de/cssocean/zenocean.css
By: Mihai Campean (#16)
No suggestions, the stie looks good, and the code I think is nice and maintainable so I don't see any reason to entangle it witth nested tables and slices... :)
By: Joaquín (#17)
This is very important, but how do I show a designer that it's ok their design down't look like they want?
By: Emil Stenström (#18)
By: Craig (#19)
I recalled my first blog (long ago) using tables for the layout (and updating it manually with each post).
The term "webmaster" is seldom heard now. It used to point to an individual who was both the designer and the content provider.
Nowadays, the replacement is "blogger". Well, I am also a blogger, so no offense there. But the milestones as described in your post explain how the webmaster became void and the blogger became the trend.
And on standardization: how about the frustration when you realize your CSS looks different in every browser..!
By: Emil Stenström (#20)
The big frustration when it comes to CSS is surely all the bugs.
By: ??? (#21)
I correct it now.
By: Bryan Ray (#22)
By: Emil Stenström (#23)
Fixed the... ehm... 12 typos. Thanks :)
By: Chris (#24)
"Advice for standardists: before you try to convince the set-in-their-ways old farts to upgrade their skills to the noughties, get your facts straight: CSS is no better than tables if you’re just replacing tr/td with div/span. The point of CSS is that your site should WORK (ie serve up all the required content) with NO STYLES AT ALL. No graphics, no colours, no pretties at all."
I agree! If you merely replace TR/TD with DIV/SPAN, then you haven't completed converting a site to be any better. Once you have removed all of the formatting and placed it into a single CSS area (whether using external CSS, or CSS contained within the file), you have completed the switch to both standards, and allow the folks to not waste their time downloading all the images if they so choose not to.
By: oracle (#25)
By: Kalle (#26)
By: Thomas Watson Steen (#27)
Why Web Standards Matter (Case Study)
By: xhumn (#28)
Every time a see a tableless page like this one I take off my hat.
Tables, transparent pixels and colspans should become history for most of the cases.
Especially now that there are sites with 'open-source' CSS templates like www.openwebdesign.org (found it via digg.com)
thanks
By: Jennifer (#29)
The same issue was occuring with ZoomText, when it was chosen to read the page, it reads top to bottom and left to right, and includes side navigation in the readings.
This is a huge issue, and one that does not seem to be mentioned a lot.
I think it may be a placement issue, and more than likely incorrect coding, however there seems to be an assumption that CSS is the panacea to all accesibiity issues, and this thinking concerns me.
If there are any usability testing that has occured in regards to CSS, I would be interested in reading the reports.
Regards
Jennifer
By: Emil Stenström (#30)
@Thomas Watson Steen: Good article, thanks for sharing. I believe those testcases are very important for convincing some people of the value of using web standards.
@Jennifer: Good addition. CSS does not automatically solve _all_ accessibility issues. The separation of content and design does a lot of good though. For your research you might want to check out Accessibilty features of CSS on w3, it's a good read.
By: Stephanie Booth (#31)
A typo: "the years passed" instead of "past".
By: Bill Rehm (#32)
Quick hint: it is not synonymous with "hack". More heavily connected with "code bums".
A preferred term for the individuals you're describing is script kiddies.
By: Emil Stenström (#33)
By: MJ (#34)
I really enjoyed your "story" about 'real hackers dont use css'. And I laughed at the end of the story you mebtioned that it was you who used frames.
The article is good, and you will learn something. I am still a lil bit of the 'hacker' a novice with css. :)
By: Adedeji Olowe (#35)
By: kalealcrooks (#36)
By: Jeremy (#37)
By: Steve (#38)
By: Cult of Secrets » Gigantus Intro Post (#39)
By: Play (#40)
By: Margarida.net [v.62] - Blog, portfolio e tutoriais [pt] Blog Archive : Hackers e Standards (#41)
By: viva la standardistas (#42)
VIEW SOURCE
CSS cleans the presentational cruft out of the markup. This makes pages so much easier to maintain.
Especially when dealing with server-side code like php, asp, cfml, etc.
Can you imagine trying to maintain application code with all of that font, bgcolor, spacer gif garbage mixed in with it? I've lived it, and it was horrifying.
By: Siegfried (#43)
By: Emil Stenström (#44)
By: Siegfried (#45)
By: Alan Hood (#46)
And if you're worried about people getting bored while they are doing all that, stick a big flash animated loading screen for them to look at. Don't forget to give a link for those who haven't got flash player installed yet though!!
Seriously, happened upon this page at work whilst I was browsing sites to improve my CSS skills and it brightened up my afternoon. So much rings true.
By: Roland (#47)
I can remember very well, how it was when I started using CSS and XHTML for tableless, semantic Webdesign. Some colleagues were annoyed, cause they didn't want to change their ways of working.
Nice article!
By: Alexander (#48)
Hackers hack things. They gain access. We are developers.
By: Arshad (#49)
By: Emil Stenström (#50)
By: Gustavo Benedito (#51)
;)
By: Stahn (#52)
By: BordomBeThyName (#53)
By: Mohammed Shaheer (#54)
can you give me some links of 96 sites which are still the same as they were before (in 96)?