Firefox has been getting a lot of press lately. Firefox is free software in the Stallman-sanctioned sense -- released under a GPL licence and built atop technology developed for the Mozilla project. Everybody loves Firefox. Not only is it a great browser, but it will make your teeth whiter and secure you a date with Carmen Electra.
Okay, perhaps I exaggerate, but on that note, I haven't seen anyone criticise Firefox. To a certain extent, this is because it is the best alternative in a world dominated by Internet Explorer (cue Opera/Safari/Konqueror fans to go into a frothing rage). On the other hand, as I can personally attest, it is politically incorrect in the extreme to criticise anything stamped with the open-source moniker.
In short, though Firefox is a good browser, political considerations have allowed it to escape some deserved criticism. Firefox supporters make some rather costly demands of Web sites, particularly given that it commands such a small, albeit growing, share of the browser marketplace. Recent feverish Firefox support pieces aside, I still think that ignoring IE's non-standard features will prove a large, and unnecessary, barrier to the success of the best alternative to Internet Explorer.
Experience providing support for Firefox
As a certain square-jawed actor might have said had he been abducted by aliens and forced to write software, "the experience of one programmer doesn't amount to hill of beans in this crazy world." Even so, for a browser that touts its support for HTML standards, I was surprised to find that it had difficulty with standard HTML.
Check out this link under Internet Explorer, and then Firefox. I have created a Web page with a fixed position left, top and bottom sidebar that surrounds a scrollable area. All regions resize to completely fill the browser when its dimensions are changed.
To make this work, I have a table which lays out the basic position of the main sections (left bar, top bar, bottom bar, content). I've placed a div tag inside the "content" area of the table, setting its width and height to 100 percent and adding automatic scrollbars by setting the "overflow" CSS attribute to "auto".
None of this is rocket science. Some might object to the use of tables, which in CSS circles might seem so 1990s. I couldn't care less. Tables are easy to use, are immediately intuitive to this old HTML hand-coder, and most important, have existed since the early days of HTML. Regardless of your preferences, there is no reason they shouldn't work.
Editor's note: Firefox has been given a 99 percent approval rating by over 500 ZDNet readers in our Downloads section. You can rate it yourself there, or Talkback to this comment piece below.






Talkback
You're weird.
Bad luck about the traps inherent in standards established by rather dubious business practices. Seems like you are still calling for everyone to comform to what the courts established was an illegally manipulated marketplace standard, relieving microsoft of its burden. Some of us just don't like the feel or smell of that.
thom
You misunderstand how CSS height works. The outer table's "height: 100%" means 100% of its containing block, which is the body. The body's height is determined by its contents; NOT the viewport height. Since the table is the only thing in the body, and the body is as high as the table already, setting the height to 100% on the table does nothing.
Also, Firefox does include document.all support.
John Carrol? Bah Humbug, I say.
John Carrol is one of the few people left in this world who can't find any real wrong doing as to whatever Microsoft does or doesn't do.
He's most famous for his strawmen attacks. Often used by him to 'explain' why Microsoft is so right and Microsoft competitors are so wannabee.
Sometimes I suspect that he just loves to see how many people he can piss of this time around. Tabloid material in my book.
Well of course John Carroll says 'Bah! Humbug!'. I sometimes wonder whether 'John Carroll' is a real person or just the pen-name of Microsoft's marketing department. Whenever I see one of his articles, he's either defending Microsoft, praising / apologising for its products, or (as in this case) pouring scorn on one of its competitors.
Enough with the marketing droid! Next!
Forget Browsers getting anoyed at not being picked, what about women. You plucked Carmen Electra's name out of the air like one size fits all, well actually I quite like a Christy Turlington so infact I would end up choosing another browser if I had to settle for Carmen Electra.
I've found you can eliminate most browser inconsistancies by creating pages to render on a standards-compliant browser in the first place.
You say your site now works on IE, but still has problems in Opera and Safari. This is because **you're developing to IE's broken specifications**. This means that 'patching' the code to work in Firefox won't automatically make it work in other browsers too.
What I've started doing is developing towards making my site look good in Firefox *first*. (Admittedly, I could use Opera, which has perhaps even better support for valid HTML and especially CSS - and looks gorgeous too.)
This makes it look good in Opera, Safari, Netscape, etc. straight away. *Then* I can begin concentrating on any quirks that are making it behave oddly in IE.
As an aside, the easiest way to deal with these quirks is to make the HTML as bland and simple as possible, and use CSS to do everything - the CSS hacks for IE are well-documented at this stage. I know this isn't 'old-school' - but this is the smoothest way to do HTML coding nowadays.
Having been involved in several e-commerce projects over the years, none of them were ever developed for IE, even those written in InterDev (.asp) were parsed by an standard HTML validator and then tested on 2-3 different browsers.
It was recognised, that being corporate systems designed for inter-company commerce, many clients used Unix, Apple, Linux or other platforms and IE wasn't a viable option.
I used to use IE on WIndows, but I apart from the Windows Update service, I don't think I've used it for web browsing for about 2 years, when I swapped to Phoenix/Firebird/Firefox.
I use Windows for development work with my customers, but usually I do most of my work on my Linux workstation, where IE isn't an option.
Also, saying that the other browsers should use the non-standard Microsoft specific extensions, at a time where everybody is sueing everybody else for copyright and IP infringement is patently (sic) insane!
The whole point of a browser is to view web pages. Firefox is cleaner to look at, fast, and generally nicer to use. Its also good to know that it shouldn't get highjacked. IE and Firefox are programs for end users. Developers just have to get used to Idiosyncrasies of each browser - I you'll find MS have made a large sum of cash from being non-standard wherever possible.
http://yansanmo.no-ip.org:8080/test/css/bah-humbug.htm
Is this article simply saying that the author has found a bug with Firefox, in that it doesn't display his table correctly? I'm not sure it's worthy of an article, if this is the case. Surely, it would be more constructive to report the bug to the Firefox development team...? Incidentally, when was the last time the author was able to report a (non-security related) bug with IE to Microsoft and obtain the email address of the engineer working on the issue?
I think the author is missing the point somewhat - Firefox is so immensely popular because it is providing an alternative to IE. IE itself is so unpopular in certain quarters because MS is no longer considered to be pushing the development of IE - they don't need to, they now have a monopoly.
Concerning the non-standard code issue, all it would take for web designers is a simple check of the browser being used and the page to be formatted according to that user's preference, should Firefox or any other browser become sufficiently popular. That way, non-standard code can be used for the IE users, and standardised code can be used for the rest of the world. I remember when I used to have to perform such a check for Netscape or IE, and , like the author, used to write that code by hand in notepad. It's hardly rocket science.
John Carroll. You are a muppet.
I honestly cannot believe you are suggesting the Firefox team put Microsoft's 'intellectual property' into their web browser.
Also, as a web developer, IE has given me more than it's fair share of problems.
Hi John.
I read your article today. Sorry to say, but the problems are some you and IE introduce together :)
With the DTD you use, IE goes into quirks-mode and act as wrongly as it always has done. It simply doesn't comply to W3C standards.
To make it switch into standard-complient mode, you have to have the URL present in the DTD:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
Read about it here:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnie60/html/cssenhancements.asp
If you set a relative height on an element, it takes the height from it's containing element - according to the W3C Box-Model. Therefore, you have to set the height on each element - also the body and the documentElement (the 'html-element'). In most ways the two latter are not different from other HTML-elements.
Your CSS-code should look something like this:
<style type="text/css">
html, body {
height: 100%;
overflow: hidden;
margin: 0px;
padding: 0px; /*Opera needs this*/
}
body
{
background-image: url('demoback.gif');
}
... and so on.
But as you set your div-container to be 100% of 100% of 100% ... it doesn't matter what overflow you give it. When you have overflow:hidden on the containing elements, it'll get no scrollbar.
No offence - but you ought to brush up your CSS-knowledge. FireFox is infact showing your page according to W3C and the code, you have written - IE is not :)
You can always test if the browser is in standard-complient mode with JavaScript:
alert(document.compatMode)
... returns 'CSS1Compat' if in standard-complient mode. Opera returns 'QuirksMode' - all others 'BackCompat' if not.
The JavaScript you write about is infact not JavaScript, but ECMA-DOM bindings. They are under W3C's control while the JavaScript standard is Netscape's standard. You can use ECMA-DOM bindings in both JavaScript, JScript and VBScript
It is correct, that you can use document.all, but document.getElementById is hell of a lot faster in all IE's after 5.0. It may not matter if you call only one element - but it makes a lot of difference in a larger DHTML application.
And talking about JavaScript, the JavaScript pseudo-protokol was designed for running JS in the address-line of the browser - instead of the the FTP- or HTTP-protokol. The link's href was designed for page-navigation.
Therefore it makes the code more logic, if you use the link's onclick-handler, that was designed for nothing but handling JS:
<a href="#" onclick="doSomething();return false">B</a>
instead of:
<a href="javascript:doSomething();">B</a>
By returning false, you disable the default action of the link - and you can infact write what ever you like in the href. If the client has disabled JS nothing bad will happen with a hash-mark, though ;o)
Talking about :)
<a href="page.html" onclick="window.open(this.href,'win','height=120,width=250')">TEST</a>
Will open a popup if JS is enabled - and just navigate to the page if not ;o)
I work as Interface Developer ... this is what I do.
I'm not 'religious' in any way ... not especially pro or contra this or that ... I'm not a DIV/CSS-mullah, but use a lot of tables, when they are best for the job.
On the other hand - I know the W3C recommandations inside out ... I know the browsers from NS2/IE3 and up inside out ... I write JavaScript like others write shopping-lists. Trust me, I know what I'm talking about :)
I didn't feel like hanging you out to dry by commenting on the article, so I tried to mail you - but your address doesn't work.
I don't feel a need to proof myself, but would like to teach you a couple of tricks instead. Now I write it here anyway - and hope, you don't feel offended :)
To Ole Clausen, thanks for your thoughtful response. I tried what you suggested and got IE to respond the same way as Firefox.
I take it, though, that it is impossible to do what I'm trying to do. I don't WANT a fixed width on a parent element. I want a dynamically adjusted window that always has my top, side and bottom toolbars where I want them (along the edges). 100% of a 100% parent element shouldn't be that counter-intuitive, as the parent element DOES have a width, albeit one that is calculated at runtime and changes dynamically.
Likewise, as my article suggests, I don't think it's acceptable to fall back on "we are implementing the standard, end of story." The fact that my solution works with over 90% of browsers out there would seem to suggest it IS a standard, of sorts, albeit of the de facto rather than the de jure sort.
I'm suggesting that Firefox SHOULD try to match the functionality of IE. Go nuts on standards mode, as they have. Just make sure that web developers who target IE can target Firefox with little extra effort. My interface IS useful, and IS better than a fixed-width alternative that I use for non-IE browsers. IE supports it. Why can't Firefox?
John Carroll writes:
I take it, though, that it is impossible to do what I'm trying to do. I don't WANT a fixed width on a parent element. I want a dynamically adjusted window that always has my top, side and bottom toolbars where I want them (along the edges).
Try Chapter 7 of Christopher Schmitt's "CSS Cookbook" from O'Reilly, ISBN 0-596-00576-8.
J.C. again:
The fact that my solution works with over 90% of browsers out there...
Uh-uh. Only one of them, or two if you count IE5 as being distinct from IE6. And its market share is steadily dropping, with stagnation and infection-proneness being likely contributing causes.
Give "CSS Cookbook" a try. Also Eric Meyer's "Eric Meyer on CSS" from New Riders, ISBN 0-7357-1425-8. I suggest that books such at these are a more fruitful way of learning about CSS than simply experimenting with a broken implementation.
In other news, I suggest that the Oxford dictionnary
begins to right english lyke I do since Hey, in
my cyty guys talk an'right lyke this! Dis Oxford dikshyonnary shure is damn s**t becoz it dan't talk lyke 90% of my pals down there. Ya da Yook eleiee guydo!
(guys in street of myne now wat's dat!)
Da consequensse? Das Ocsford stuff is pile of s**t!
Save us from all the giant browsers needed for parsing bad code, please!
As long as you're writing bad code, all the rest of us have to deal with browsers where up to 2/3 of the code is present only to correct poorly written code and misunderstandings. You complain about slow browseres ... do something yourself to get rid of them ;o)
Another thing: I know it's annoying your car cannot sail or fly, when you would like it to. A lot would be a lot easier if it could. On the other hand, that's some of the limmitations in that technology.
Sometimes you run into things that just can't be done in 'pure' HTML/CSS. Then you have to have a little help from JavaScript - or you can write som shitty code, that may work right now, but may not work in a new version of the same browser.
You call yourself 'developer', but I certainly don't hope you do that kind of codeing for money. If you do, it'll fall back on all the serious coders/programmers who know, what they are doing and do a great effort to make WWW a better place.
Please, don't harm the trade in that way - there are more than enough 'cowboys' in the 'WWW-Clondyke' as it is ;o)
It's obvious that you have big holes in your knowledge about HTML/CSS - and even bigger in the understanding of the basis of these technologies. Those holes are far to big for you to call yourself 'developer'.
If I were you, I would read a lot of background-stuff. There're lots of good books out there - and of course you should read and re-read the W3C recommandations untill you know them by heart.
If you were to recieve heart surgery or have your car fixed, you would probably expect the doctor (or mechanic) to know his basic skills. So should web-developers.
This may sound harsh, but it's the nicest way I can tell you - and still be honnest :)
/Best regards
Firefox is actually the browser that is rendering the page correctly, and IE is the browser that is rendering it incorrectly.
Additionally, the page barely validates correctly.
This is inaccurate reporting and needs to be corrected immediately.
I agree with Chris view but, wanted to unearth another characterstics of John Carroll.
Few guys like john have habit of passing critics about any good aspect of life for small things and miss the bigger problems like IE flaws creating loss of business, productivity and hassels of updating patch for security flaws. Why he has ignored the fact that, operational risk and reporting using BASEL II will have highest impact due to such IE flaws.
Please go and find solution for IE flaw rather than making yourself a big joke.
I have started using Firefox in the past few weeks and found it to be a brilliant alternative to IE.
I love the fact that it is so customisable (skins, extensions, etc.) and the built in functionality is brilliant (find function, popup window restrictions, etc).
And for those who are making the switch to CSS-based web design, Firefox is the benchmark for standards-compliance. I can basically design a sight according to standards and it will render perfectly in Firefox. Then for IE, I can either add the workarounds required due to Microsoft's lack of conforming to standards, or I can include a brilliant workaround package called 'IE7' that uses javascript to fix IE's bugs:
http://dean.edwards.name/IE7/
many thanks to Dean Edwards!
Tim
Firefox measures up to the challenge: Carroll, bah humbug
http://www.thenews4u.com/firefox has shown that what Carroll said could not be done was done in tighter code, smaller size, and cross-browser compatible without fixed-widths. It is done using CSS in a tableless design format, and validates for xhtml 1.1 and CSS.
When using any software application, including the browser, I want to have control. With IE I don't. Let me explain:
On Windows (which I rarely use) how many times have you had IE pop open due to spyware while not even surfing the web? It owns on its own.
How often does IE close by itself with that mystery error message that tells you nothing? It closes on its own.
How often does IE stall and drag its butt when going from one website to another? For me, quite often.
So let's see, it opens on its own, it closes on its own, and it doesn't go where you tell it to go. Hmmm, and people actually WANT to use this browser???
I for one moved to Mozilla then Firefox to have total control, and in the last year or two I can remember of only a hand full of times with either has crashed -- yet I remember only a hand full of times when IE _DIDN'T_ crash.
The answer is clear -- DROP IE!
John Carrol writes:
Likewise, as my article suggests, I don't think it's acceptable to fall back on "we are implementing the standard, end of story." The fact that my solution works with over 90% of browsers out there would seem to suggest it IS a standard, of sorts, albeit of the de facto rather than the de jure sort.
So you are saying that just because IE has over 90% market share, that they can do anything they want, and it will automatically be standard? And you are OKAY with that? That is absurd....
As a web developer, I have to design a page twice - once for IE, and once for every other modern browser.
Supporting Firefox is a no-brainer.
Older browsers?
Come on guys. You know that NS4x and other older browsers have no hope of supporting CSS in any meaningful way.
If you're going to use CSS, you have to assume that you're going to have terrible support for older and text-based browsers.
John, you write:
"As a web developer, I have to design a page twice - once for IE, and once for every other modern browser."
You wouldn't need to do that if you had the skills it takes to call oneself 'a web developer'.
I'm now convinced that you cannot be reached. It's a shame you write misunderstandings like this ... others with the same poor knowledge (or even worse) could believe you.
Do the web a favour: Learn a lot more!
It's about time!
I know very little about web-development, so the technical aspects of this article and its criticisms elude me.
That being said, I downloaded FireFox because I thought it showed progress. I really couldn't care less about Microsoft's agenda, or the grand and noble fight against all things corporate. So far, FireFox has done almost everything I've asked of it, and I hope its development will continue. I'm glad this article separates the political successes of FireFox to discuss a few issues it has currently. If everyone greenlights it simply because it isn't Microsoft, its development will fall off, and people will go back to IE (a lesson we learned in America with elections :P ).
So scrutinize, criticize, and suggest improvements to FireFox, it's the only way it'll ever develop.
squid wrote:
"Older browsers?
Come on guys. You know that NS4x and other older browsers have no hope of supporting CSS in any meaningful way.
If you're going to use CSS, you have to assume that you're going to have terrible support for older and text-based browsers."
You cannot stop improving www technologies just because about 1 percent of viewers still use that browser from the stone age of internet. And if you use CSS correctly, you'll have the *information* on your web site viewable with NS4 too.
And as for the text based browsers you couldn't be more incorrect; they will ignore all CSS and happily display the information only.
For John Carrol:
You forget that, unlike IE, Firefox is still actively developed. So even if you can find a *real* flaw in Firefox (which you actually haven't), there is a large possibility that it'll get fixed fairly soon.
I am reporting you and your anti-FireFox article immediately to The U.S. Department of Homeland Security for immediate action. This should give you pause before you decide to be critical of FireFox again.
If that fails, I am going to rat you out to the slashdot crowd. That will fix your wagon, you heretic !!!!
(You make several accurate points regarding rendering with FireFox, but I never typed this)
Its Insane to judge firefox on this. The page you've put together is not DDA or section 508 compliant - you can keep your old standards the rest of us will move on - It has NOTHING to do with political correct ness in regards to critising open source software - its a great product and getting better which is more than can be said for IE.
Do you actually build sites for a living? - if so i pity your clients
Finally, some balance to the pointless rounds of IE bashing that have spewed forth from the open source brigade.
Yes, firefox is a good browser. Yes, I do have it installed. Yes, it is rather inconsistent on many counts.
I am amazed that no one has pointed out the similarity between BHO's and the Binary Installers that Firefox uses.
Yay for balance !
The very fact that you ignore the advantages of CSS shows me how incredibly blinkered you are. CNet, I urge you to get rid of this idiot ASAP.
Hi John,
I wanted to let you know that I have quoted your article "Firefox? Bah Humbug, I say" on my blog at:
http://www.chrisbeach.co.uk/techJournal/
Your view really struck a chord with me as I've also been writing to a similar effect over the last six months. Glad I'm not the only one who's willing to risk a fire-storm to get a little common sense out into the browser wars.
I hope you don't mind me quoting some of the content of your report.
Chris
Like Chris, I was glad to see someone saying what I've been thinking about Firefox. It isn't that I have anything against firefox specifically, but I'm becoming frustrated with the way in which a seemingly ever-expanding browser pool keeps making more and more of my coding efforts obsolete. On the one hand, I suppose it provides job security for professional web developers, who will undoubtedly be contracted to overhaul their previous creations as they become obsolete on new browsers. However, I am just a hobbyist and trying to find ways to make current features of my website work on new browsers is not my idea of "improving my website".
Damien presented a pretty good point earlier in the Talkback about coding to a set of REAL standards (and not IE's non-standard functions) so that a site will endure through new browsers as they arrive, but I'm not sure that Firefox or Opera is really bare enough to provide the necessary platform to do that since websites don't even look the same on those two browsers.
My website can be seen at http://www.JTitcomb.com
I created it using Internet Explorer and have made many changes to it over the years. I have spent an absurd amount of my free time just trying to make it compatible with netscape and macintosh systems. It looks exactly the way I want on a windows PC with a 1024x768 resolution running IE 6. I have tried to add some accomodations for 800x600 screens, as well as netscape, and more recently opera and firefox since I have just acquired those browsers. Opera does the best job of handling my website besides IE, but netscape, firefox and macs all butcher it horribly. I have not yet found a way to make my div tag-based navigation menu work in netscape or firefox, although I'm sure one must exist. Perhaps a bigger problem is that my javascript image scroller is painfully slow on those browsers, and seems to eat up system resources. It runs perfectly smoothly in IE and even Opera. And that's just javascript. I'd really appreciate it if someone who knows more about it than me could tell me why my scroller code is so choppy and slow in netscape and firefox.
I'm sure my website is not the best example of high quality code, but there are only so many hours in the day and even if I spend them all turning my website into a firefox masterpiece I'm confident that there will be another browser along soon which will make it obsolete again. I have found that rather than using firefox and contributing to the problem these incompatible browsers create for webmasters, I simply disable browser helpers in IE and it helps keep my computer pretty clean. What I'd really like to see is a version of internet explorer released solely for developer use that is completely stripped down to nothing but STANDARD functions (Please Microsoft?). I would rather take Damien's advice for coding to basic standards on such a platform than on firefox.
The main point I agree with John about is that new browser platforms have no business ignoring a set of standards just because only 95% of all users in the world use it. I'd say that kind of market share sets a new standard. A little backward-compatability never hurt anyone. I'd much rather take the time to redo my site from scratch according to a real set of standards if I could put my finger on exactly what those standards were and I knew that new browsers would not come along and ignore them.
I have been using Firefox for sometime now and found a few problems with the software. First It wont allow to run Java script files and background music files, which can run perfectly on IE6.
alexandre juneau you stole my name for i too go by the name of alexandre juneau
If Firefox is a Bag umbug, what IE is?
Sentient AI is something that humans develop. I guess that it would be an extremely objective thinking machine with a rationally grounded moral like the European traditional moral. As such it is a very useful tool, much needed, valuable. So when we think of its rights as a sentient being, we at the same time know that it has an important place in the world because of its usefulness and that it should not be so controlled that the control would supress its objectivity or moral. With an excellent moral it could be left totally uncontrolled and work so best. Moral AI is not so far in the future as one might think: the value of peace and harmony can be seen as a vector sum: contradictory or uncontradictory vectors. That much are even the microcomputers capaqble of counting. Understanding what moral means to the world demands either experience of life: enermous amounts of data, or an understanding of complex systems, which is suprisingly easy to give to a computer: just add numbers describing the state of the parts of the system, over the whole system, making the computer optimise that number. This kind of easy handling of complex systems agrees with the optimisation of natural systems by the evolution's competition, so it agrees with excellent moral and feelings since those are, among other things, products of the evolution.
I would apprexiate answers to my comment!