I can't honestly say that I've ever been much of a patron of the dark arts. Mind you, a few years ago I was fascinated to see a chapter for a book on ADO.NET that I'd written come back from review with fifteen paragraphs about devil worship in the middle of it. I was about half way through editing this when I suddenly realized it sounded unfamiliar, and seemed to have little to do with asynchronous data access and stored procedures. I assume that the reviewer had got their Ctrl-somethings mixed up, and I still can't help wondering if there is a Web site out there somewhere that has a detailed description of the behavior of a DataReader in the middle of an article about witchcraft and sorcery.
Anyway, it seems that I have a friend and colleague who actually is a "dark arts" expert. At least he is when the dark art in question is Cascading Style Sheets (CSS). OK, so I long ago accepted that we needed a way of separating style from content in Web pages, and I don't know of any other technology that accomplishes this as well as CSS does. I mean, you can even do dynamic styling in response to UI events and all kinds of clever stuff with it. I'm still amazed at sites like Zen Garden where changing the style sheet actually makes you believe you navigated to a different page.
Yet all my attempts to use CSS to achieve a design that doesn't look like a 1985 Web site (with everything centered and in Times Roman font) seem to result in a page that only works on a 42" screen, or requires you to scroll a mile and a half downwards then read it with your head on one side and one eye closed. It's like they designed the language to be impenetrable to mere humans. I mean, I can fix DNS servers, edit the Active Directory, administer Group Policy, understand design patterns, and I even know a fair bit about enterprise application design and development. But I can't even get margins or padding to work most times in CSS (probably 'cos I don't know which I should be using), and end up with nbsp's and transparent GIFs all over the place. Or (horror), tables for layout...
So when I discovered that a site I manage for the local village residents group was broken in IE8 (and, obviously, had always been broken in Firefox), I put off trying to fix it for as long as possible. The site is based on the Microsoft ASP.NET Club Starter site, and a glance at the stylesheet with its myriad of clear thises and float thats meant I'd probably need to stock up with a month's worth of coffee and cold pizza. After a couple of hours randomly changing stuff (the usual geek's approach to fixing things you don't understand) I'd reached the point where the entire site was totally incomprehensible.
So I emailed my pal Dave Sussman, who has spent the last several years of his life doing clever Web stuff with CSS and other complicated technologies. I know he's good at this kind of thing because he hasn't phoned me for ages to complain about rounded corners and designers generally. And, you know what? Within ten minutes I got the answer. Just take out a clear something or other, or change a margin this to a float that, at it would "just work". And he was, of course, absolutely correct.
Mind you, he admitted he'd resorted to using one of his dark art tools - a wicked device called "Firebug", which does sound like something used by wizards or witches. I'm not sure if he dances around the fire naked at the same time, but I'm too polite to ask...
I assure you that dancing is something I don't do, naked or clothed. Mind you, I did sacrifice a chicken.
Thanks for the clarification, Dave. I did sense there was some unease out there in the Web development commmunity.