Since I'm an historian originally, I keep track of what has happened on this site.
See also the newer history.
29 December 2003
Slight reworking of the Iframes page. I created a compatibility table and added some notes on generated iframes.
19 December 2003
I updated the W3C DOM vs. innerHTML benchmark tests. The
overall conclusion is that innerHTML
performs significantly faster than "real" W3C DOM methods
in all browsers.
15 December 2003
New AppleDev article: Web Page Development: Best Practices. It discusses XHTML standards and validation, subjects I normally don't much care about. For the purpose of this article I asked myself: "If I must code exactly according to the standards, how would I go about it?" This is my answer.
12 December 2003
Over on Mezzoblue Dave Shea asked which browser stats people trust. The comments point to a new browser detect service: Reinvigorate's DAS.
I took a look and decided to trust this service. Why this one? Because, surprise, they use my browser detect script! If I can't trust my own script, what can I trust? The down side is of course that the script only detects JavaScript capable browsers. Not perfect, certainly, but it's about the only way to generate centralized stats.
I'm going to give their script a try.
30 November 2003
Added a simple test of the :root pseudo-element. Also added a
Viewport experiment that proves that :root
= html
.
26 November 2003
Added a short page about CSS hacks.
24 November 2003
I rarely backtrack, but comments by by Tom Dell'Aringa and Patrick Griffiths made me realize that my original article about ALA's JavaScript Image Replacement was too harsh. I now offer a second version which is softer towards Christian Heilmann but considerably harsher towards A List Apart.
22 November 2003
On A List Apart,
Christian Heilmann
butchers my ideas in his extremely bad
JavaScript Image Replacement article. It hurt, so I struck back.
Why ALA's "JavaScript Image Replacement" Sucks
20 November 2003
I gave every browser its own page, and wrote an introduction to browsers and a history of browsers.
I updated the pages of the Five Modern Browsers:
Explorer 5 and 6 Windows,
Explorer 5 Mac,
Mozilla,
Safari, and
Opera 7. I also added some
Netscape 4 remarks.
I'd planned to completely rewrite these pages but at the last moment I ran into a time limit. Therefore these
pages aren't quite up to date, although I usually add small notes on browser bugs the moment I discover these
bugs.
I added a page about running multiple IE versions on one computer, and a script that keeps these versions apart for you.
I also updated all compatibility tables on this site to reflect the newest releases of these browsers. I did so in September, and of course Mozilla, Opera and Safari each released new versions in October. I haven't yet studied them because I don't want to repeat the arduous and time-consuming browser testing process so soon after the previous round.
I'm going to update the tables somewhere between January and March, taking the most advanced non-beta browser versions of the moment as my test browsers.
18 November 2003
lang="nl" De Belgische nieuwsbrief deCursor.be presenteert een artikel "Wie volgt de webstandaarden?", bestaande uit interviews met enige experts van Struikelblok, waaronder mijzelf.
15 November 2003 - later
I again upgraded my site's accessibility. I added a hard-coded link to the sitemap on every page. Of course I also created a sitemap.
Initially I was against a sitemap because it'd mean I'd have to maintain yet another long page with links. Until it struck me that I already had a sitemap: the navigation frame. So the solution was to give the navigation page two "views": sitemap and advanced navigation.
Normally the sitemap is shown as sitemap, with a little bit of CSS added for legibility, but no JavaScript.
I run a script which sees if the page happens to be in the navigation frame, which in itself is only possible if
the browser supports the W3C DOM. If so I give it a new stylesheet,
I move all texts behind the links to the links' title
attributes, and I start up my
Navigation: display script.
Simple and efficient, especially the fact that I only have to update one single page to change both sitemap and navigation.
Opera is a bit slow in executing the new script. You'll clearly see the sitemap view before it switches to the navigation view.
I switched all my advanced scripts off in Explorer 5 Mac. It doesn't switch the stylesheet of the sitemap to the navigation frame, and this bug is the last straw: I'm not going to bother with it any more. It simply cannot keep up with modern web development.
15 November 2003
This week I'm going to repeat the modifications and new content on this site that I announced in one great lump when I launched QuirksMode.org . There's so much of it that I think most readers will have missed one or two things. Besides, it'll allow me a much needed breather.
The Viewport section is dedicated to attaching the viewport (browser window) to the HTML/CSS and DOM
trees. This subject is so esoteric that I myself hardly know what I'm searching for. Nonetheless, for over
a year I felt that this research was needed, even if only to prove that the html
element is not an element like any other.
The Introduction gives a short overview of the problem and the lack of standards. The inevitable browser compatibility table helps you to read out interesting viewport information.
Finally, the experiments page contains a few fascinating browser incompatibilities that I unfortunately cannot combine in a neat theory.
14 November 2003
I wrote several pages about the theory and history of web development. First and foremost the history of web development itself, also a history of browsers and an article about the future of JavaScript.
Also some pages about my decision to (largely) stay in QuirksMode, about the making of this site and the Why frames? page.
13 November 2003
Inevitably, the W3C DOM Compatibility Tables have been updated to take Mozilla 1.4, Opera 7.20 and Safari 1.0 into account. No major changes, though a number of minor bugs have disappeared. Core, HTML, CSS and Events.
Two weeks after this update Mozilla, Opera and Safari released new versions of their browsers. I haven't taken them into account yet because I deserve some rest.
I made an old dream come true and wrote a Table of Contents script that shows and links to the headers on each page in this site.
I did some more research into Changing style sheets and discovered serious browser incompatibilities that make this technique a no-go area for the moment.
I decided the Fahrner Image Replacement should not use CSS but JavaScript and wrote a simple script that should be safe.
11 November 2003
I added two new scripts that I use on this site:
I updated the Event handling compatibility table, which now contains the events themselves and a short overview of their properties. I rewrote the Frame busting script from scratch, and found my old code was too complicated.
Finally I discovered a page on event handling in Netscape 4 in my old files. I'd planned to release it in Spring 2002, but never did. While developing this site I received a grateful mail from a webmaster who still has to struggle with this ancient dinosaur and its weird event model. Therefore I decided to publish this old page anyway.
10 November 2003
So much is happening that I can hardly keep up. The discovery that you can run several IE versions on one computer is of course great, but it badly shakes up my reflexes (and I suppose I'm not the only one). A few days ago I discovered many serious problems in Explorer 5.0, but it took me until yesterday evening to realize that I can now solve these bugs because 5.0 runs fine on my computer, installed snugly next to all the other versions. It's weird. Great, but weird.
In preparation I added the Keep multiple IE's apart script to the frameset of this site. If you use my frames you'll see the site title prepended by your Explorer version (if any). I'm going to need this functionality myself, and I suppose it'll help most readers of this site, too.
More Explorer news: I read this piece on a Windows online magazine, which says that Explorer 6.05 will be released in the first half of 2004. It will have some security patches, and it will (according to this article) definitely include popup blocking.
The most interesting point, however, is that this short note does not mention the famous Eolas Plugin Alert at all. I've said it before and I'll say it again: I do not believe that Microsoft will include this alert in a real Explorer version, because such an action would be impossible to explain to the average user.
I'm also planning another accessibility overhaul. I was thinking about adding a sitemap for the benefit of older (or deliberately noscript) browsers. Then I realized I already have a sitemap: the navigation page. I just have to define two views for it: advanced JavaScript view for use within my frameset and plain CSS view for use without my frameset. It'll take some more time, though.
lang="nl" Onlangs is www.struikelblok.nl online gegaan. Deze site hoopt account managers, webontwerpers en webontwikkelaars te overtuigen dat toegankelijke sites niet duur, moeilijk of lelijk hoeven te zijn. Ik ben zijdelings betrokken bij dit initiatief en zal van tijd tot tijd praktische vragen beantwoorden.
I re-researched the problem of background images in elements
other than the body. Contrary to what I first thought, the W3C definition of
background-attachment: fixed
does have its uses.
This means that background-attachment
on elements other than the body
can have three values instead of two. Browsers have
worked around this problem, but each in its own way.
I added pages about the :not and :empty pseudo-classes (supported in Mozilla and Safari), opacity (messy), the content declaration (Opera only), Microsoft's scrollbar colors (work, up to a point, in Opera, too) and my take on Tableless forms.
I revised the display and List styles pages.
Column: Keep CSS simple. Why CSS hacks are evil.
Bug: In all Explorer Windows versions my logo in the top frame as a 32px left margin instead
of the 22px margin I define. This turns out to be a well known bug in this browser's float
support. I'm not yet sure how to solve it, or indeed whether I can solve it without evil hacks (and for
the moment I regard conditional comments as hacks, too).
7 November 2003 - later
OK, it works. I saw this yesterday, and then someone said it didn't work. I tried it today, and it works fine.
You can run IE 5.0, 5.5 and 6.0 next to each other on one Windows XP box without partitioning.
Joe Maddalone discovered it and Ryan Parman made the trimmed-down browsers available.
See the Multiple Explorers page for more instructions. The main problem is that these versions are hard to keep apart. Therefore I wrote a simple script that adds the IE version to the document title.
Of course I have just two days ago received a special Win98 box that I run 4.0, 5.0 and 5.5 on. It now turns out that I don't need it. Sigh...
7 November 2003
New column: Keep CSS simple. Why CSS hacks are evil.
6 November 2003
To my distress I found out that this site seriously craps out in Explorer 5.0 (not 5.5) on Windows. Explorer 5.0 usually doesn't show the floater divs on the right and it may hide substantial amounts of code, too.
The last problem seems to be caused by HTML examples, like <img src="pix.gif">
.
Solve it by toggling 'Smooth scrolling' and not reloading the page.
The first problem is harder to solve. Selecting the floater divs (ie: the odd gaps on the right where you'd expect content but don't see any) helps, but only while the div remains in the visible portion of the page.
Explorer 5.0 is crappy, too. Fine, just what I needed. The worst thing is that I can't put this note
where it belongs, with the other browser FAQs in the floating div to the right, because Explorer 5.0 users
wouldn't see it.
Please upgrade to 5.5 or 6 to view this site normally.
5 November 2003
One week of QuirksMode.org . I thought I'd give you an update.
In the last week I have added three new pages to this site: The future of JavaScript, Why frames? and Centering sites in CSS. This last page is already outdated.
Until now I have detected roughly 25,000 visitors to this site. Since my detection module is ancient and crappy I suspect I've actually gotten a few more. Dare I hope for 30,000?
Rough browser breakdown:
This site has a far higher share of non-IE visitors than the average site, which is quite logical, given its topics. I was surprised by the extremely low share of Explorer Mac, though. In general its share still at least twice as large as Safari's, but not on my site. It may have something to do with Explorer 5.2 (but not lower) crashing on this site, but that fact alone is not sufficient explanation.
I'd counted on this site making the round of the blogs, and bloggers from all over the world didn't disappoint me. Simon Willison's weblog was by far the most prolific giver of hits, but I must have been mentioned on nearly 50 sites, some sending on hundreds of users, others one or two. Regardless of the amount of traffic I'm very happy that all these other bloggers took the time to add my site to their pages. Thank you all.
I've received about 150 reactions so far. In general the amount of mail I get in one week has gone slightly up (though judging this by the very first week of a site's existence is dangerous). Therefore I didn't have the time to answer all of them.
I skipped mails about the browser bugs I note on the homepage, about the bloody Image Protection script I thought nobody was interested in any more, and the silly rants. Neither did I answer Thank You mails (except for the very first one), but I did enjoy getting them!
A few mails will have to wait till later, because they need more time than I can currently give them. Please have some more patience.
The most important reaction came from Tristan Nitot. I strongly disagreed with his claim that JavaScript is and should be dwindling, and wrote The future of JavaScript. JavaScript can play an important role in modern standards compatible accessible web development.
In fact, this site is one huge experiment to see if my ideas about a future use of JavaScript are correct. This site is set up to be accessible to any user agent, though modern visual browsers with advanced JavaScript W3C DOM support receive a large extra layer of usability. Will this system work?
In his latest reaction Nitot concedes that JavaScript may remain an important tool, though he protests against its abuse, for instance in complicated and unnecessary DHTML interfaces. On this point I completely agree with him.
Nitot also says that my site's navigation degrades fast when you switch off JavaScript. Although in the end this is a matter of personal preference, I admit that the average content page of this site offers few generic navigation possibilities. Without JavaScript the Back button was supposed to be the most important navigation tool of this site, but maybe it's not quite enough.
Nonetheless I don't want too many hard coded links on these pages. I maintain them by hand, and updating 200 pages after, for instance, adding a new section to my site doesn't appeal to me. Besides, it'd destroy Last Modified information, and I want my readers to have a clear idea of how old information is.
Nitot again raises an important question. JavaScript will make a site more usable, but how usable should the basic "always-accessible" variant remain? Just barely bare bones, as it was on my site until today, or should we make extra efforts, efforts that we know will be overruled by still better functionalities in JavaScript capable browsers?
At the moment I have no answer. I suspect it will become one of the most important questions for any future theory of JavaScript, and I look forward to discussing it at great length and heat.
Meanwhile I compromised. I added a hard-coded Home link to the footer of all pages. It will allow readers to always go back to the homepage, no matter which browser they use. From the homepage they can dive into my site anew. It's not perfectly usable, but should it be?
2 November 2003
Frame time. Some readers wondered why I've chosen to use frames on this site. The new Why frames? page gives my answer.
I immediately agree, though, that in the past frames have been a crutch for designers who are unable to understand liquid design. I most of all hate the use of frames to center a fixed 800x600 site design. When a business case came my way, I created this mostly CSS way for centering sites in the browser window.
1 November 2003
Found out a very annoying thing about the Apache webserver on OS X that I use at home: it doesn't mind
when a link has no .html
suffix, so href="contact"
will lead to the same page
as href="contact.html"
.
Of course the real Web server my site runs on doesn't accept such fripperies. I found one such link myself, a reader found another one. I'm very certain that there are a few more of these incorrect links, since I wasn't aware of this problem while creating this site and I always test links just by clicking on them. If you find one, please let me know.
31 October 2003
Tristan Nitot of StandBlog is not happy with me. His first post about my new site was a rant, and I wondered why he'd bothered to mention it at all. In his second post he explained himself more.
He uses the "more in sorrow than in anger" tone of voice that I find the single most irritating feature of many standards defenders.
He states that I refuse to make accessible sites, which is untrue. I dare him to find one page on this site, except for the JavaScript archives, that is not accessible in the user agent of his choice.
This site is less usable without a W3C DOM compatible browser, certainly, but its content is accessible. Since a few months I try to extend this principle to all commercial sites I make, with varying degrees of succes.
Nitot also makes one very perceptive and important remark that concerns no less than the future of JavaScript.
30 October 2003 - still later
There turns out to be a standards compatible replacement for the wbr tag: ​
.
Unfortunately it causes ugly glyphs in Explorer. A nice cross-browser conundrum for your pondering pleasure.
30 October 2003 - later
A few people hate frames so much that their eyes start watering and their wits stop working.
All modern browsers except Explorer Windows have an option in their context menu that allows you to open a framed page in a new window. If that's what you want, do it. I don't mind. The site keeps working. You only lose the top and navigation frames.
Besides, I knew from the outset that some visitors would like to view my site outside my frameset. Therefore I added a "No frames" link in the lower left corner in the navigation frame. From the reactions I noticed that mildly anti-frame visitors (those who say "No, thank you" instead of "You silly sod") did find and use the link.
Apparently, true and religious frame haters are not impressed by these solutions, or they refuse to look for them. Especially for those people I have added a nice, soothing, large, user friendly link right here on my homepage.
This is the no frames link:
NO FRAMES
It causes the homepage to be loaded in the top frame, thus destroying my frameset. After you've clicked
on it you can browse my site without those silly framesets that offend your delicate sensibilities.
30 October 2003
Some reactions revealed additional problems, as well as solutions:
float: left
declarations. If I'd used
float: right
I'd have the same problem with the right margins.width
or height
. Now my test paragraph has a proper 50% opacity.float
quirk. That should be enough.29 October 2003 - evening
Webstandards.org writes:
PPK's views on standards, validating, and more specifically the "self-proclaimed caste of bigot priests" mentioned on his explanation page will grate the nerves of zealots everywhere. Perhaps even rightly so, but one wonders if PPK is instead over-balancing in the other direction with such ardent detraction.
In fact, I was wondering the same.
I wrote these pages early in September, and later I found that writing them had worked off some of my frustration,
which is really caused by the standards zealots and not by the standards in general. Especially the discovery that W3C's
background-position: fixed
has a purpose beyond being complicated
has made me decide to rethink the whole standards question.
On the other hand, since September I've become more and more certain that all (X)HTML specifications are
too restrictive. I want to use custom attributes as datasources for advanced W3C DOM scripts. It's an elegant
solution to a whole host of nasty problems, and I won't let a specification stand in my way, especially not
when my technique works in all browsers.
And the CSS spec does contain a few mistakes (OK, OK, I'll make a list. Later.)
So I'll keep my official views unchanged for the moment. I am prepared to consider admitting that I've been too harsh on the standards, but I don't want to decide anything on the spur of the moment.
A few browser FAQs:
position: fixed
I position the footer with. I thought it'd behave as if the
footer has position: static
, but the combination with my Navigation: display
script turns out to be too much to handle.29 October 2003
Wow. It's done.
My old sites are dead, and my new site is alive. ALIVE!
It's all here. The JavaScript Section, the CSS tests, the great compatibility tables, obscure old content, interesting new content, and of course plenty of browser incompatibility fun. It took me five months.
I haven't solved everything. Especially, I need some CSS expert help:
div.logo {float: left}
in logo.css,
but is there any documentation for this bug? Or maybe a solution that does not use CSS hacks?In return I'll show you the wonders of the :not and :empty pseudo-classes,
and try to convince you of the need for a third value for
background-body
.
Finally I'll show you the proper way to do a image replacement: by JavaScript,
and not by CSS.
lang="nl" Ik heb een CSS1 reader te koop, die ik in het afgelopen jaar heb geschreven en herschreven. Deze reader biedt een volledig overzicht van CSS1 en bijna 100 screenshots zodat je kan zien hoe het werkt.
I'm an historian originally, and every once in a while my old instincts creep up. To appease them I wrote a history of web development and a browser history.
Or would you rather read JavaScript news? Generate a Table of Contents or study the latest W3C DOM browser incompatibilities? Fit the viewport into the overall scheme of things? Look over my shoulder while I'm making QuirksMode.org? Find out why I declare Explorer 5.2 Mac a bug ridden crash prone piece of junk?
Let's break it down section by section. Boring and bureaucratic, I know, but what good is my new site structure if I don't use it? Besides, we start with the exception to the rule.
A while ago I heard a few JavaScript developers deploring the lack of a good JavaScript News site. I completely agree. When I'm in the mood for some random surfing, I often want to read about interesting JavaScript developments. Unfortunately there is no site that offers such content after the JavaScript community lost Scott Andrew LePera to the ethereal realms of music.
Therefore I took my responsibility and, as an experiment, started up a JavaScript News page. Feel free to submit your own news; I can't fill this page on my own.
Contains the entire content of the old JavaScript Section, except the Browsers and W3C DOM pages.
Two new scripts that I use on this site:
I updated the Event handling compatibility table, which now contains the events themselves and a short overview of their properties. I rewrote the Frame busting script from scratch, and found my old code was too complicated.
Finally I discovered a page on event handling in Netscape 4 in my old files. I'd planned to release it in Spring 2002, but never did. While developing this site I received a grateful mail from a webmaster who still has to struggle with this ancient dinosaur and its weird event model. Therefore I decided to publish this old page anyway.
Contains the W3C DOM pages from the old JavaScript Section.
Inevitably, the W3C DOM Compatibility Tables have been updated to take Mozilla 1.4, Opera 7.20 and Safari 1.0 into account. No major changes, though a number of minor bugs have disappeared. Core, HTML, CSS and Events.
Two weeks after this update Mozilla, Opera and Safari released new versions of their browsers. I haven't taken them into account yet because I deserve some rest.
I made an old dream come true and wrote a Table of Contents script that shows and links to the headers on each page in this site.
I did some more research into Changing style sheets and discovered serious browser incompatibilities that make this technique a no-go area for the moment.
I decided the Fahrner Image Replacement should not use CSS but JavaScript and wrote a simple script that should be safe.
Contains the old CSS2 Tests pages.
I updated most of the tests to use font-style: italic
as test declaration instead of
color: #cc0000
. Otherwise the tests have remained the same.
I added pages about the :not and :empty pseudo-classes, opacity (very messy), the content declaration, Microsoft's scrollbar colors and my take on Tableless forms.
Finally I re-researched the problem of background images in elements
other than the body. Contrary to what I first thought, the W3C definition of
background-attachment: fixed
does have its uses.
This means that background-attachment
on elements other than the body
should have three values instead of two. Browsers have
worked around this problem, but each in its own way.
A totally new section.
The Viewport section is dedicated to attaching the viewport (browser window) to the HTML/CSS and DOM
trees. This subject is so esoteric that I myself hardly know what I'm searching for. Nonetheless, for over
a year I felt that this research was needed, even if only to prove that the html
element is not an element like any other.
The Introduction gives a short overview of the problem and the lack of standards. The inevitable browser compatibility table helps you to read out interesting viewport information.
Finally, the experiments page contains a few fascinating browser incompatibilities that I unfortunately cannot combine in a neat theory.
Contains all Browser pages.
I gave every browser its own page, and wrote an introduction to browsers and a history of browsers.
I updated the pages of the Five Modern Browsers: Explorer 5 and 6 Windows, Explorer 5 Mac, Mozilla, Safari, and Opera 7. I also added some Netscape 4 remarks.
New pages about this site and myself.
New pages about this site and myself, about my decision to (largely) stay in QuirksMode and about the making of this site.
My CV and publications were already available but have been moved here.
Contains my old Freelance site.
Dutch only: CSS1 reader te koop.
Contains everything else, including the JavaScript Archives.
A vague attempt to study the lowsrc attribute. A clearer study of
the wbr tag. Why you must use both id
and name
when creating a form that uses label
tags.
October 2003
Worked less on this site than I'd planned. I rewrote a few more pages and did a last check. Nonetheless I skipped the final edit round because I was getting very very tired of browser compatibility problem solving.
Mozilla, Opera and Safari each released a new version of their browsers just after I'd completed the great compatibility tables. This was only to be expected. I decided not to bother for the moment, I've done my duty.
September 2003
Finished copying content. Worked on the great compatibility tables. Wrote many new pages.
August 2003
Continued copying content. Wrote a few new pages.
July 2003
Began working on this site. I made a template, copied some content from my old sites and created the navigation script and famous browser quotations. See also The making of QuirksMode.org.
June 2003
Decided to put www.quirksmode.org on my business cards. Hurriedly uploaded my old freelance site to avoid an 'under construction' notice.
May 2003
Decided on the new domain name for my site. Wanted to merge all my old sites at this new URL. Wondered how on earth to do this.