Slashdot Mirror


Designing Websites - What Browser to Code For?

flyingember asks: "I code up PHP/CSS webpages and recently wondered about who to code for. We know that each browser supports CSS a little bit differently than the others, likening back to the Netscape/Internet Explorer HTML wars. Opera or Mozilla hacks are seen constantly across the net. Looking through two years worth of saved webalizer statistics, 95% of my visits came from IE and the rest from Mozilla, these are the teeming masses of the internet. Even the traffic to my site two years ago resulting from this article sent 50% IE users on Windows XP, and the total was 95% from IE. The numbers have only grown more IE 6-dominant since then. Given the overwhelming Internet Explorer user base, unless your webpage is specifically targeting The *nix or Mac crowd why code for anything except IE 6?" While each browser does support CSS, and even some HTML a bit differently, what functionality seem to be universal across all of the major modern players? Can you design a sharp looking website with such features, without resorting to browser-specific code? If so, how?

24 of 182 comments (clear)

  1. Umm... by wang33 · · Score: 5, Insightful
    How about designing for the existing standards W3.org is a good place to start.

    Anybrowser.org is another good one if you need convincing.

    Nothing irritates me more than having a webpage not display properly in opera when I have chosen to let opera identify itself as opera, but renders correctly when I tell opera to identify itself as IE6.

    This Quote probably sums it up best

    "Anyone who slaps a 'this page is best viewed with Browser X' label on a Web page appears to be yearning for the bad old days, before the Web, when you had very little chance of reading a document written on another computer, another word processor, or another network."

    -Tim Berners-Lee in Technology Review, July 1996

    wang33
    --
    PAGERANK++ Robsell.com
    1. Re:Umm... by john_is_war · · Score: 2, Insightful

      Whenever I see "This page is best viewed with..." I just think they hired a lazy web designer.

      --
      Live life to the fullest. It's not that life is short, but that you are dead for so long.
  2. Mozilla "hacks"? by adamjaskie · · Score: 5, Insightful

    I do not belive I have seen any of these "Mozilla hacks." Most of the "hacks" I have seen are for things that every browser except IE works properly with, such as the so-called "IE Box Model Hack" that I hear talked about a lot. Can you provide an example of one of these nessicary Mozilla hacks please?

    I have found that as long as you code to standards, and test your page a bit in different browsers, you should be able to code up a page that looks the same, or at least acceptable in all browsers. I suggest coding for Mozilla, as it is more standards compliant, then testing for IE, and applying the (very few) IE hacks that are nessicary to get it to look right. You would be suprised at how similarly they work, unless you are doing some very complex CSS.

    --
    /usr/games/fortune
  3. why code for anything else? by tongue · · Score: 5, Insightful

    As late as what, 1998? a web developer might have asked the same question about Netscape. It had such a large percentage of the market share that it was a pointless crusade to code for anything else.

    Look where it got them.

    There's also somethign about the question that's slightly reminiscent of the Y2K problem--I've said this myself on occasion, and know plenty of others who've echoed the sentiment: "Oh, i'll get around to updating that page long before another browser takes over." Yeah, right.

    Bottom-line: code to the standards. IE 6 is fairly decent about most of them, though not as good as the Lizard, so you're probably safe for the future as well that way.

  4. PHP is a server side technology, remember? by kalidasa · · Score: 5, Insightful

    PHP is a server side technology; it doesn't matter WHICH browser you code to, because the PHP doesn't care. CSS, ok, CSS is different: but here's the problem with coding to IE6's CSS model: you don't know how it's going to change in the future. You have no idea how Microsoft is going to change its support of the CSS features whose behavior is peculiar in IE6. With W3C standards, at least you have a target that stays (relatively) still - the other browsers at least are all going to keep backward compatibility to the W3C recs.

    Unless you're doing a lot of weird CSS hacking, making a standards-based page look good in IE6 is a lot easier than making an IE6 page work in Safari or Mozilla.

    Now, if you said JAVASCRIPT, well, that would make more sense; the object models are significantly different between IE6 and Mozilla and Safari and Opera. There the smart thing is to write separate pages for both browsers and use those PHP programmer skills to serve up the right page for each.

    1. Re:PHP is a server side technology, remember? by BladeMelbourne · · Score: 3, Insightful
      There the smart thing is to write separate pages for both browsers and use those PHP programmer skills to serve up the right page for each.
      This is NOT a smart thing to do. You will have 4 times as many files to create/maintain (for Mozilla, Safari, Opera, MSIE). The smart thing to do is have one page with a couple of condition statements to deal with any quirks.
  5. getting real by Tumbleweed · · Score: 4, Insightful

    Okay, here's what you should do, IMO. Design for HTML 4.01 transitional. Or XHTML 1.0 Transitional. Use tables for layouts, and CSS for font specifications and a _few_ other things that are all commonly supported, _exactly the same_, on all major browsers. This is called "lowest common denominator." Don't use _anything_ that's not standard, mind you, but use that which is _correctly implemented_ from within the standards, and you'll be alright. When XHTML came out, browsers didn't stop supporting the older standards - they still work, and honestly, they work more reliably across the modern browsers than ANY of the newer standards. That's just the way it is until MS decides to actually FIX their LAME-ASS browser.

    Is it your job to push people into installing a decent browser? No.
    Would it work, even if you tried? Hell no!
    Is developing _ONLY_ for the latest standards going to magically make everyone who comes to your site, or even a reasonable percentage, _want_ to upgrade? Another hell no.

    You need to get real - the MS IE browser dominance is going to stick around a while (another few years, most likely), and by that time, hopefully Longhorn will be here, and will bring with it a browser that supports standards. One can only hope.

    So there ya go!

    Oh, another option: develop the whole site in Flash - pixel perfect on every browser that supports Flash! :)

    1. Re:getting real by fean · · Score: 2, Insightful

      wow... hmm... the grand-grand-parent poster was obviously sarcasic, but seriously... lets take apart your arguements one by one...

      1) yes, you CAN print flash... in fact, flash allows for you to design a seperate page specifically for when people print... thus you can even precisely control how things print..

      2) not being able to copy from flash is a fault of the designers, not flash... there's one little button designers have to check to make their text editable...

      3) anyone designing the page in only flash is lazy

      4) flash can be set up to read paramaters at the end of the page, from javascript, JUST LIKE CGI AT NYTIMES, hence a simple piece of code that passes parameters to the flash, and a gotoAndPlay(x); at the beginning of the flash movie solves this

      5) where did this come from? I agree with the intros part, but if I design a flash interface that can pull information and display it in itself without reloading the page, that means no waiting for ANY excess code, only content, plus the page doesn't blink to another page... what could be better for the user experience?

      come up with as many other reasons as you want, I'll counter each and every one of them

      for the record, I'm not suggesting that it REPLACE anything, but it is definately more than enough of a substitute when in the hands of a competant programmer...

    2. Re:getting real by NotInTheBox · · Score: 3, Insightful

      Getting really real: there is NOTHING at all visual about bits and bytes.

      That is basically the whole point of the web: The user can choose her own browser and it renders it to fit the platform and ability of the user, because no designer knows these things.

      Unless you can understand the abstract DOM tree which is the real representation of html you are very much disabled and need a renderer/compiler which transforms it in to a presentation which you can enjoy. Some like the visual, alpha-blending, anti-aliased tabloid-style view, some like text-only, some like auditory... get used to it that not everyone is the same!

      To a computer we are all disabled.

      --
      What I cannot create, I do not understand
  6. Use Valid HTML by a.koepke · · Score: 3, Insightful

    If you want to make sure your page looks the same in each browser use valid HTML. It is when you start doing things that are not valid and incorrectly nesting tags that things go wrong.

    Decide which standard to code your page in (HTML 4.01 Transitional or XHTML 1.0 Transitional are good), put the right doctype on the page and then code according to the standard. Check your page using the W3C validator and fix any errors. Check your CSS document for errors too.

    I do not use CSS for layouts since they never render the same in each browser, I still use tables. Just us CSS for fonts, sizes and general formatting that is accepted by all browsers.

    --


    (\(\
    (^.^)
    (")")
    *This is the cute bunny virus, please copy this into your sig so it can spread
  7. Half right... by WIAKywbfatw · · Score: 5, Insightful

    Code to standards but make sure that your code is happily displayed without any quirks in a range of browsers and on a range of platforms.

    Browsers you should be worried about (in no particular order, so don't start flaming me about ranking): MSIE, Opera, Mozilla, Netscape Navigator, Safari.

    Platforms you should be worried about: Windows, Linux, Mac.

    Of course, if you're intending your content to be viewed on the move, make sure you've got WAP/portable browser friendly pages too. Oh, and remember resolution: you might have a 1600 by 1200 desktop but the average web user doesn't. 800 by 600 is as high as you should design unless you want to alienate the majority of surfers.

    If the various combination of browsers and platforms scares you, don't worry. There are various apps out there (and websites) that will show you what your pages will look like in several browser/platform configurations. Someone more immediately familiar with them them than I am will surely (hint, hint) provide you with some useful URLs.

    --

    "Accept that some days you are the pigeon, and some days you are the statue." - David Brent, Wernham Hogg
    1. Re:Half right... by Anonymous Coward · · Score: 3, Insightful
      800 by 600 is as high as you should design unless you want to alienate the majority of surfers.

      Similarly, don't code your web page using stuff like fixed widths so that it only looks good at 800x600. Nothing irritates me more than loading up a page and seeing a vast expanse of white or gray and a tiny, five-words-wide column of text because the designer assumed everyone uses 800x600 or less. It's perfectly possible to make a page look good at low and high resolutions.

    2. Re:Half right... by andybak · · Score: 1, Insightful

      Except... A column of text that is spread out to 1600 wide can be very hard to read. Do you read Slashdot with your browser fullscreen when you are working at those kind of resolutions? I would prefer whitespace to overly long lines of text any day.

  8. simple by n.o.d.y.n.e · · Score: 2, Insightful

    ever thought about about designing to them all? No brainer really.

    --
    Failure is simply the opportunity to begin again, this time more intelligently. - Henry Ford
  9. Standards, plus an additional comment about "95%" by Anonymous Coward · · Score: 3, Insightful

    Several people here have already said "code to standards, not to a specific browser," a comment with which I agree completely.

    But I also want to add this. Many people with whom I've had this conversation reply with "yeah, but I like the MS-specific extensions; and given that IE users comprise 95% of the visitors to the site I'm working on, why not use them?" This response has always amazed me, and I wonder if it works with the executives at the firms for whom they design sites: "We're gonna deny access to 5% of your potential customers, and thus cut your web-generated revenues by 5%; but your site will have this cool funky-looking formatting! OK?" More likely, they don't tell the web design customer that they're throwing away 5% of their revenues.

    For lots of companies, 5% of revenues is the difference between profitable and not.

  10. What browser? by Brandybuck · · Score: 3, Insightful

    What specific browser to code for? Well, since you can't possibly code for all of them, code for NONE of them! I hate going into a store that has a sign saying "whites only", so why should I put up with the equivalent on the web?

    If you can put in stuff for one browser and still have it look good on the others, then do it. At the minimum, the site should be fully functional and not ugly under any browser. It doesn't have to be fancy, but it should be navigable without damaging the users' eyes. If you start querying what browser the client is using, you're heading down the wrong path.

    But you still have to test on all of them. At least IE, Mozilla/Netscape, Safari/Konqueror, and Opera, at the minimum.

    --
    Don't blame me, I didn't vote for either of them!
  11. Why code for anything other than IE6? by iCEBaLM · · Score: 3, Insightful

    I think someone doesn't understand what HTML is for. The purpose of writing web pages is not to code for a specific browser, it's to code standards compliant so all browsers (that are also standards compliant) can use it. I don't see any reason why any proprietary extension to HTML should be used on any page.

  12. You are dumb. by danielsfca2 · · Score: 5, Insightful
    > (go ahead, what type of fanboy am I? ha... can't tell, can you?)

    You're not any type of fanboy. You're just dumb.

    His point was that he used to code for Mozilla, because Moz is very standards-compliant. Now he uses Safari to preview things in, since Safari/KHTML pretty much renders things just like Mozilla does (namely, according to standards)--that's why they made Safari User Agent string:
    Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) AppleWebKit/124 (KHTML, like Gecko) Safari/125
    That's because it's so freaking much like Gecko (Mozilla) when it comes to rendering pages according to standards.

    He's not trying to cater to one browser--he's using standards-compliant browsers like the excellent Mozilla and Safari to make sure all browsers can render his pages. Just because MSIE has the best market share doesn't mean catering toward it would be a good idea.

    Audience that can view a site designed specifically for MSIE 6.0, assuming general public viewership: 95%
    Audience that can view a site designed specifically to follow standards: 100%

    See the benefit now?
    Show me a website that renders properly in Safari that doesn't render useably in MSIE, and I'll consider removing your dunce cap.

    ActiveX, VBScript...random BHO's and hijacking exploits. Oh, yeah. Let's use that browser as the gold standard.
    1. Re:You are dumb. by HokieJP · · Score: 3, Insightful

      This is not insightful, it's name-calling and pejorative ranting.

      The OP said:
      >The sole reason is that Safari's output is immaculate.

      In your haste, you've imputed motives to him that were not in his post.

      The reply chastised him for using a browser that, while it may be standards compliant and render beautifully, is used by a small minority web users. The Quirks Mode web site details bugs in the implementation of IE and most other browsers. The fact is that no one piece of software perfectly implements any complex standard. Even if your code is 100% standards compliant it may not display properly in IE due to an IE bug. Thus, to use your numbers, only 5% of people could properly view it. So the sensible course for any serious web author is to check their site, at least once in a while, in the most popular browsers, regardless of their personal feelings about the browsers themselves.

      Juse because someone disagrees with you doesn't mean they are dumb. It doesn't mean that you're dumb either. A little civility isn't such a bad thing.

    2. Re:You are dumb. by danielsfca2 · · Score: 2, Insightful

      I'm not a fanboy. You're just jealous because I read his mind. No, seriously. It was obvious from context that he understood the fact that Safari was standards-compliant, and thus felt free to choose it because of its visual quality (over, for example, Mozilla, which is also standards-compliant).

      Did I attribute motives which were not stated explicitly? Yes.
      Was I right? Yes.
      Does it bug you? Obviously.

  13. Standards, standards, standards by evalhalla · · Score: 2, Insightful

    As lots of people have said, dont' code for specific browsers, code for standards. HTML is meant to be rendered in different ways on different medias, so try to take advantage from this, not to go against it (and lose).

    When you code try to code html (and php, of course) first, and have it look "readable" in the plain old ugly(?) way, so that everybody will be able to get the informations you're giving. Of course you'll have to think about the future css presentation, by adding classes, etc. but don't add anything visual at this stage. Do not use tables for layout, as they can give a good result on most visual browser, but only do damage when using anything else, or a visual browser in a small window, etc.

    Then you can choose to develop css for a good standard compliant browser such as mozilla or safari, and then fix minor quirks for the most used browser (aka explorer), or if you are tight on time you can try to develop standard css for explorer and test it on standard compliant browser only to check that you're not bringing havoc on them.

    When I'm using a browser that is not mainstream I don't care if something that should take all of my window width only takes 98%, or if there are minimal quirks in the layout, maybe small empty spaces (an em or two) where there shouldn't be any, or similar stuff, as long as I can clearly see the contents; I know it is an issue of browser compatibility and I accept it, people who don't know about it usually use explorer anyway, so it less of an issue.

  14. My own experiences. by SmallFurryCreature · · Score: 2, Insightful
    As much as I am a penquin lover and a unix freak if you design a webpage it should almost certainly display and work properly in IE. The only exception is sites specifically showing why IE is such an obsolete piece of crap. Say a site showing how nice proper PNG support is.

    Does that mean your site should only work on IE or use IE specific elements? Well consider this. How many years ago was it when netscape rules the browser market? Not that long ago right? Are you prepared to completly rebuild your site if and when IE looses top place? And don't go that will never happen, when the first IE was out people also said it would never beat netscape.

    There is also something else to consider. Opera may have a tiny share of the desktop browser market but it rules supreme on the phones. Worse if you code for IE desktop then you are in for a horrible suprise when someone tries to access your sites with IE for mobile phones. At least the version I worked with didn't support CSS at all.

    So the answer? Make sure your site looks and works properly on IE and make sure it works and looks okay on everything else. Yes that does mean opera AND mozilla AND lynx/links.

    If you want to know why ask yourselve this. If you build a brick and mortar shop would you put in a door that kicks out even 1% of your potential customers? No? Then why do it with your website?

    Displaying a page telling people to "update" to browser X is also a terrible crime. Imagine if you went to a gas station and they told you to buy a new car. You would pissed off. Especially if you drive a motorcycle.

    --

    MMO Quests are like orgasms:

    You may solo them, I prefer them in a group.

  15. Re:Two words: Browser Detection by Nos. · · Score: 3, Insightful

    And if a site does this, I'll hit the back button, go back to my search results and move on to the next page. Its not that difficult to code for various browsers AND stick to the standards, without detecting which browser everyone is using.

  16. Turning the question around by spaceyhackerlady · · Score: 2, Insightful

    My response to you: do you want people to access the information on your web pages?

    If the answer is "Yes", then you must take care to make sure that people can, that there are no impediments to people doing so. You must stick to standards, and>you have to test it. I've seen too many web sites that were only "tested" with some version of IE and fell flat on their face with Mozilla or Opera.

    If the answer is "No", then go home.

    My usual baseline is that web pages that look right in Opera will look right in anything. Usability in Lynx is a plus. I'm still unsure if Flash is a disease or a crime.

    ...laura