Slashdot Mirror


Dvorak Rants on CSS

John Dvorak writes on CSS after working on redesigning his weblog, the article ended up being extremely funny. From the write-up:
As we move into the age of Vista, multimedia's domination on the desktop, and Web sites controlled by cascading style sheets running under improved browsers, when will someone wake up and figure out that none of this stuff works at all?!

7 of 522 comments (clear)

  1. Re:Two problems by smokeslikeapoet · · Score: 4, Interesting

    With all do respect, I shouldn't have to be a "decent" web designer to be able to put up a personal homepage that looks the same in all browsers. Instead of using some WYSIWYG editor I decided to strike it out on my own and write a page from scratch using the "standards" that the W3C touts.

    On top of crazy interpretations that different browsers display, I had the damnedest time trying to get the w3c recommended "DIV" tags to float in the right places. I ended up going back to tables, which really screws up text based browsers and screen readers. Why the hell can't anyone stick to a standard?

    The problem leads to bad design habits (i.e. designing for only popular browsers), complex pages (i.e. javascript browser detectors that load different pages for different browsers), and n00b frustration that encourages use of monstrosities like Frontpage and Yahoo page builder.

  2. This is why I couldn't stomach web programming! by Theovon · · Score: 5, Interesting

    I've been writing code since I was 5 when my dad taught me Fortran. As a pre-teen, I learned BASIC. In high school, I learned C and Pascal. In college, I learned LISP, Ada, and C++. My "favorite" language right now, simply because I am having more fun with chip design, is Verilog. Suffice it to say that I have a lot of experience with programming and programming languages and quite radically different ways of thinking about encoding algorithms (software and hardware design are very different from each other).

    Coding web pages makes me violently ill.

    Back in 2003, I decided to learn web programming. In the process, I learned to hand-code HTML, CSS, Javascript, Java, SQL, and PHP. PHP, I can handle, because it's simple and straight-forward and designed to make back-end writing easy (although I understand that there have been some developments with Ruby since then). SQL makes sense, since it's specialized for database manipulation.

    But when it comes to developing front-end web content, I just cannot justify using three different languages for one thing. I mean, I do understand the idea behind specializing languages (PHP vs. SQL), so in the abstract, I see a reason for making a separation between structure/content (HTML) and formatting (CSS). I just have a visceral reaction to having to use two different languages with two different syntaxes at once in this context. Embedding SQL in PHP doesn't bother me. For some reason, CSS and HTML bother me. I think it's because I feel like they're haphazzardly slapped together and FORCED to get along. PHP and SQL have no relation. Each is designed for its function. HTML evolved from a structural markup language into a total mess, and then CSS was invented as a bandaid. Along the way, no one ever thought to actually unify them. And then there's Javascript.

    CSS, HTML, Javascript, and Java each has its own different name for each kind of DOM object. WTF!

    If you want to do the full gamut of web front-end programming, you have to learn four names for every object or attribute!

    What were these people thinking?

    They weren't.

    And it's never going to get better. 100 years from now, web programming will be tainted by the legacy evolutionary path everything went through.

    Just wait for the Semantic Web. Yet another syntax to learn. No unification AT ALL.

  3. Re:Standard versus Proprietary? by gregmac · · Score: 3, Interesting

    I think I should go back to the days of plain-jane HTML and just deal with it

    Because that wasn't even more of a mess??

    Nested tables, embedded styles everywhere... sure, it works now, but only because the browser developers had so much time to get it to work, and developers have gotten used to it.

    It's a horrible way to do layout. You end up with a twisted combination of layout and content - which means your web programmers have to have a bit of graphic design in them, and your graphic designers have to know a little bit about programming. To change something - for example, to move a menu from a horizontal bar at the top to a vertical menu on the right side - requires a ton of work. For a complex enough design, it may mean starting over, because you're 12 tables deep and are losing track of the row because there's too many rowspan=3's. Not to mention, there's no easy way to make a "print" or accessable version without having a whole separate layout.

    Using CSS, you get a nice clean HTML layout. In fact, it's almost to the point where a web designer can be responsible for the CSS, and the programmer for the HTML*. Going back to the previous example, if your menu is in a div, and defined with an unordered list, then to move that navbar it's only a matter of changing the CSS. Don't need to touch the HTML (or corresponding server-side code that generates it) at all.

    A nice thing about developing this way is the page is viewable before even putting in the CSS. In fact, it can be viewed easily by ANY browser (albeit without formatting) including text-based browsers and even the first generation web browsers. Making a printable version is just a matter of another stylesheet (and if you use the 'cascade' properly, you can have one that sets up the main layout, and one that modifies that for print, or one main, and two that inherit with specific changes - one for screen, one for print). Screen readers will have no problem with it. Search engines will index it easily.

    Now, yes, it does have a learning curve. It takes a lot of reading to understand layout in CSS, as well as CSS in general. Current web developers often think "I know web development, I can do CSS" then get frustrated because things don't work (case in point, the original article). Really, they haven't bothered to learn it. There are a ton of great sites out there to help with this, and a couple google searches will find them. It's not something that happens overnight though, it takes a fair bit of reading and experimenting.

    * There's still a few 'hacks' that are sometimes required to make the CSS work (ie, adding a 'wrapper div' around certain things), but these will hopefully be addressed eventually in newer versions of CSS. There's also the issue of IE .. but as long as you develop in a standards-based browser, and don't do anything TOO funky, it's usually not overly difficult to get IE to work (there's always the "IE7" javascript hack). We can only hope that when Microsoft actually releases the real IE7, they get it right.

    If IE7 does actually work, I would hope that the web would basically go to a "your browser is too old to view this page, please upgrade..." and provide links to firefox, IE7, and opera or whatever. I normally hate browser detection, but the faster we get rid of IE5/6 the better.

    --
    Speak before you think
  4. Re:Solution by NilObject · · Score: 4, Interesting

    And you can make money doing it, too!

    Explorer Destroyer

  5. Re:Two problems by laffer1 · · Score: 5, Interesting

    Yes, Microsoft is at fault for not updating IE in so many years and then only supporting a few new things in ie7. However, its not just Microsoft. Netscape didn't follow standards until it was too late (netscape 6 was not soon enough). Mosaic sucked for a long time. As a designer, I want all browsers to support the exact same things with the exact same behavior in 99 percent of cases. (implementations will vary some) However thats a pipe dream.

    How about this: All browsers must support CSS1 completely and CSS 2.1's positioning at least. floats and centering with margin: auto should frickin' work. Then we need something like SVG and png w/ transparency. That would at least allow us to do flash like things and use a decent graphics format. Flash is bad since it doesn't support all platforms. Most people say its great because it work on x86 linux, windows and the latest OSX. What about everyone else? (*bsd, solaris, linux on any other kind of processor, OS/2, etc)

    We also need a decent video format that is cross platform for streaming. I don't care what it is just so that everyone actually has it. I'm sick of not getting to watch news feeds because i don't use MSIE with WMP 10 or 11 series. (yes MSNBC you suck) I can't even watch it in firefox on WINDOWS.

    Please someone with a brain come up with standards and find a way to force these people to use them. That is the real trick. Its not just microsoft but all the idiots who only develop for whatever the hell is on their computer that they like.

  6. The alternative... by xeno-cat · · Score: 3, Interesting

    is to become a .NET developer and live happily ever after, of course. Except... not. The reason for all the languages and syntax is that the web grew up out of humanities desire to communicate. There is no one company that delivered the Internet as we know it. If you look at the history of any of the languages you mention you will find your answer as to why things are as they are. JavaScript came from Netscape and was originaly called LiveWire. It was a radicaly new web language that would give developers the tools to add client side processing to websites. Problem was that very few web developers at the time were actually programmers. They were most likely either DIY hobbiests or corporate lackies who sleezed their way into an easy paycheck by becoming the "web guy". So it rotted in the background until, hey, AJAX everybody!

    HTML came out of SGML and the academic community. It was designed to deliver, get this, text _and_ images in the same document on the Internet! So cool! People were supposed to write their web pages in a text editor and then PUT their documents on the webserver. But PUT was not secure or powerful enough so enter webdav.

    CSS is great! I have no complaints about the CSS/HTML dicotamy. And things will only get better with time. The problem with CSS is Internet Explorer. But I'm not going to beat that horse.

    The web came so fast, and so many people were thinking about it that it produced an explosion of technologies, each trying to deliver something new. Now days we are sorting it all out, keeping whats good and letting the bad fade.

    It's only been 15 years of the web. Can you imagine the world without it? I'd say things are pretty good.

    Kind Regards

    --
    "A few great minds are enough to endow humanity with monstrous power, but a few great hearts are not enough to make us w
  7. Re:Blame Internet Explorer by smokeslikeapoet · · Score: 3, Interesting

    More like:

    I vote on your behalf was casted for Billy G. (Purchasing a computer with Windows preinstalled)
    You can of course cast a second vote for Linus, (install Linux) or vote again for Billy G (upgrade Windows).
    Nevertheless, your original vote for Billy G cannot be revoked.

    P.S. If you can't prove that you paid your original poll tax we'll recend your voters registration card (WGA) but still count the vote because it suits us.
    RESISTANCE IS FUTILE!