I'm going to say something now that may seem to completely contradict
a previous post of mine, in which I basically said that taking a "who
cares" attitude about certain browsers (because of their non-standard
CSS rendering) makes no sense.
Well, you have to draw the line *somewhere*... and contradictory or
not, I've decided that I've suffered with Netscape 4 for long enough.
Coding workarounds for its brain-dead CSS rendering has literally
doubled my development time on some projects. It's the only browser I
can truly say that I *hate*, and now that its market share seems to
have slipped below one percent (I hope!), I'm saying "enough."
So I'm planning to simplify my CSS and JavaScript files by stripping
out most or all of the NS4-specific bloat, and never find out what
gibberish it makes out of my pages by the simple method of not
viewing them myself in NS4.
However, I may leave my JavaScript browser-sniffer in place. My
question is, what's the best way to blow off NS4 users? Here are
some options that I've thought of:
1. Do nothing special (even get rid of the sniffer).
Pros: Simplest thing to do. They're going to see garbage
anyway, and they're probably used to it.
Cons: They don't know that their browser is crap, and they'll
blame me (or my clients).
2. Put up a JavaScript alert box on every page load, saying that my
site doesn't support NS4, and did they know they can get a modern
browser for free?
Pros: -Performs a public service - educates them a little.
-Lets them know I know what's happening (i.e. I'm not
just oblivious/incompetent).
Cons: -Might make pages unusable (too annoying) that might
otherwise be readable even in NS4.
-I'm not sure, but I don't think I can put a link (to
a browser upgrade site) in an ordinary JS alert.
I could certainly generate a special little window
(pseudo-"alert") with a link, but that would be work.
-If my sniffer screws up, I may end up annoying
non-NS4 users.
3. Use JavaScript to write some bold red text on every page with a note
(as in #2 above) and a link to some kind of browser upgrade site.
Pros: A little less harsh than the other options.
Cons: -More work for me. Do I have to check each page in NS4
to see that the warning is actually visible? Even if
it is, will I be able to restrain myself from "fixing"
each page after I see what garbage it looks
like in NS4?
-If my sniffer screws up, I may end up annoying
non-NS4 users.
Opinions? How do you handle this?
Jul 20 '05
16 2221
Jonas Smithson wrote: So I'm planning to simplify my CSS and JavaScript files by stripping out most or all of the NS4-specific bloat, and never find out what gibberish it makes out of my pages by the simple method of not viewing them myself in NS4.
What the others said. Hide your CSS from NS4 and write decent,
well-structured HTML. See my site for an example: http://tranchant.plus.com/
If you view it in Firefox, click on the little icon with an "A" on it on
the left edge of the status bar, and select Basic Theme. That's what my
NS4 viewers see.
Implementation hint: Firefox displays this icon if you give the
stylesheet a title in the <link> element.
However, I may leave my JavaScript browser-sniffer in place.
Don't. Javascript is a really poor way to browser-sniff. The least poor
way is server-side testing of the user-agent string, but even that is
notoriously unreliable. I do it only to detect IE to fix a couple of
things for its poor users, like <abbr>.
My question is, what's the best way to blow off NS4 users? Here are some options that I've thought of:
1. Do nothing special (even get rid of the sniffer).
Other than make sure the CSS call is hidden from NS4 (via @import, or
using media="screen,p rojection"), that's the right thing to do.
2. Put up a JavaScript alert box on every page load, saying that my site doesn't support NS4, and did they know they can get a modern browser for free?
No. Extremely annoying, and some people may be using public computers
that they can't upgrade. They'll leave your site pretty quickly.
3. Use JavaScript to write some bold red text on every page with a note (as in #2 above) and a link to some kind of browser upgrade site.
See 2.
Opinions? How do you handle this?
See above. Sounds like you need to rely less on Javascript, too.
--
Mark.
Jonas Smithson <sm************ @REMOVETHISboar dermail.com> writes: First of all, I just tried the @import idea and immediately saw a problem: it (naturally) doesn't block inline styles, or styles in the head. Now I do use external styles whenever possible -- and I'd say it's practical for about 90% of my styles. But the other 10% -- the head and inline styles -- make a total mess when the external sheet is blocked.
Styles in the head you can use a different hiding method for. There's
several that work on NN4, how about:
<style type='text/css'>
/*/*/
body {
break-ns4: yes;
}
/* */
</style>
You might even be able to use the same thing in an inline style <p
style='/*/*/ break-ns4: yes /* */'> but I haven't tested that because
I don't use inline styles myself on live pages.
The sidebar is an absolutely positioned element whose spatial relationship to its parent will change without CSS. It may even appear on an entirely different part of the page if the CSS is missing or mangled.
If you've already checked this, my apologies, but what happens if you
increase your browser font size to somewhat larger than normal - does
the positioning relationship break?
Worse case, the reader may actually think the ancillary material refers to a different "parent" paragraph than it actually does!
<p>This is a paragraph ... </p>
<div id="sidebar1">T his is the paragraph's sidebar</div>
<p>This is another paragraph ... </p>
<div id="sidebar2">T his is another paragraph's sidebar</div>
Or similar. That way the sidebars are close to the paragraphs without
CSS, and it's no harder than otherwise to position them close with it.
I suppose the simple retort to my example is "that's a true tabular relationship, use a table" -- but I was trying to get away from table code!
If it *is* true tabular relationship then use table code. It seems a
slight stretch in this case, but maybe not - URL for an example?
Or "don't put that in a sidebar" -- so I have to limit my design options with CSS, although I didn't when using tables? Rhetorical question: So are we to conclude that any page that requires specific positional adjacencies as a clue to meaning can't be safely laid out with CSS? I doubt many people here would say that. It seems to me that many, many pages have such positional relationships!
Absolutely not, as you've guessed. However, the positional
relationships are *initally* in the HTML, in a good design. CSS
positioning may be used to _reinforce_ the relationship, but not to
initially indicate it.
I can understand Brian's objections to my suggesting too obtrusively to readers anything about their browser: whenever I've visited a site that said "This site best viewed in... [insert browser name]" my reaction was always that the designer was both arrogant and clueless. So it's a little strange that I'm contemplating something like that now. (I emphasize "contemplating" ; I haven't decided, that's why I'm posting here.) But if a Netscape 4 user may actually *misconstrue the meaning of the content on a page* because the positions have been scrambled, might it not be the lesser of several evils to warn them or even block the page to them entirely?
There's a concept in web design called 'linearisation' . It means that,
when CSS is disabled, or tables are disabled (since it's important for
both layout methods), or both, the page still makes sense. If your
page doesn't do this then you have your HTML elements in the wrong
order and you need to fix that.
Regardless of whether I... 1. ...block most of the CSS with @import (and have the unstyled HTML unpredictably blend with the inline styles that I can't block), or
Or move the inline styles into the stylesheet
<p style='...'> becomes <p id='...>
p#... {
...
}
*Either way* I run the risk of users seeing adjacencies that could be highly misleading. This is a question of *meaning*, not fonts and
CSS should not be used as the sole indicator of meaning in the same
way that colour shouldn't.
backgrounds. That's why it seems like some kind of warning to NS4 visitors -- yes, on every page -- might be the least obnoxious solution. (?)
No, fixing the HTML code so that it doesn't require CSS to make sense
is the *least* obnoxious solution. Give a URL for a problem case and
we might be able to make suggestions.
(P.S. Did I mention that I *hate* Netscape 4?)
Yes.
--
Chris
"Mark Tranchant" <ma**@tranchant .plus.com> wrote in
comp.infosystem s. www.authoring.stylesheets:Jonas Smithson wrote: 2. Put up a JavaScript alert box on every page load, saying that my site doesn't support NS4, and did they know they can get a modern browser for free?
No. Extremely annoying, and some people may be using public computers that they can't upgrade. They'll leave your site pretty quickly.
Agreed -- about as annoying as that voice at the checkout reminding
me after I scan EVERY DAMN ITEM, "Please place the item in the bag."
People who have Netscape 4 on their own computers already know that
later browsers are available, and they know how to find them if they
want them. And I echo Mark's comments about public computers.
--
Stan Brown, Oak Road Systems, Tompkins County, New York, USA http://OakRoadSystems.com/
HTML 4.01 spec: http://www.w3.org/TR/html401/
validator: http://validator.w3.org/
CSS 2 spec: http://www.w3.org/TR/REC-CSS2/
2.1 changes: http://www.w3.org/TR/CSS21/changes.html
validator: http://jigsaw.w3.org/css-validator/
Neal wrote: Brian wrote:
Neal wrote: How about something styled display: none? Why? What is behind this desire to remind users that their browser is, according to the author, sub-standard?
Hey, not MY desire.
Sorry, Neal. I was on a bit of a tirade last night, wasn't I? My
apologies, it was not even your idea. :-/
if you're looking to send content to no-CSS viewers, that's it.
As is so often the case, the question should be "how do I...?" but
"should I...?"
--
Brian (remove ".invalid" to email me) http://www.tsmchughs.com/
Jonas Smithson wrote: Neal wrote:
How about something styled display: none? NN4 will see it, as the CSS is imported. Only other folks to see it will really be Lynx. That sounds clever;
You'll look clever, too, the next time the Googlebot indexes your
site. ;-) (See my response to Neal about this.)
(Although, BTW, a *properly written* sniffer is not as unreliable
Oh? Since js is optional, and ua strings can be forged, how can such a
thing be reliable?
It's true that most sniffers are unnecessary even for JavaScript's own purposes, since object detection usually works better,
Object detection always works better in js.
many sniffers are badly coded -- but mine isn't.
Ok, genius, let's see your brilliant code! I wait with baited breath. :-)
First of all, I just tried the @import idea and immediately saw a problem: it (naturally) doesn't block inline styles, or styles in the head.
That's true. I didn't mention it, because I use neither of those
techniques. You may need to ditch any advanced inline css to protect
NS 4 from itself.
I'm starting to rely on CSS-positioning for entire page layouts (not just for sections within an outer table), and that opens up a whole other can of worms if most or all of the CSS is blocked.
I do all layout in CSS for my sites. All of it. I write in HTML
4/strict, which offers little presentation markup. NS 4 users get a
plain site, with no floats, no positioning, no styling at all. It was
the right choice for me. Only you can decide whether it's right for
your projects.
Consider the case of various main units of text which each "own" a small ancillary sidebar, connected with CSS positioning.
Place it in a div after the paragraph, perhaps. We'd need a url to
provide more specific advice.
if a Netscape 4 user may actually *misconstrue the meaning of the content on a page* because the positions have been scrambled,
Then you need to rethink the page. CSS is optional no matter what the
browser. Your content should be comprehensible without it. If it is
not, then rethink your markup.
--
Brian (remove ".invalid" to email me) http://www.tsmchughs.com/
.oO(Jonas Smithson) Brian wrote:
it is trivial to simply hide all CSS from it. @import "hidefromns4.cs s";
I hadn't thought of that. Do you mean fetch *all* my external styles -- i.e. my main external stylesheets -- via @import rather than via <link rel... etc. [...]
You can also stay with the link-element and an media-attribute. NN4 only
recognizes media='screen'.
From time to time I add a simple stylesheet only for NN4 (could be
written in JSSS for example), but the default stylesheet for all other
browsers is written according to the CSS 2.1 standard without any hacks.
Micha This thread has been closed and replies have been disabled. Please start a new discussion. Similar topics |
by: Jeff Johnson |
last post by:
Hi Everybody,
I have a function that works great in IE but fails in NN. Would
someone please give me some insight as to how to correct this:
function init(){
var oFrame = parent.frames;
if (typeof(oFrame.divSummary) != 'undefined'){***** fails here!
updateContent(oFrame);
|
by: rez |
last post by:
I find it rather frustrating that Netscape 4.x is "no longer
supported:"
http://help.netscape.com/products/client/communicator/reflib.html
Same seems true with IE.
How am I ever supposed to make my scripts multi-browser, when they
don't bother giving me basic
documentation?
|
by: Laurens |
last post by:
Hi,
Which browser has the best CSS paged media support?
I'm about to write a business plan, which needs to be printed on paper to be
presented to the bank. Now I cringe at doing this in Word, as I'm far more
comfortable with hand-coding HTML and CSS(though I've never used the
print-specific CSS elements).
|
by: Peter Foti |
last post by:
Simple question... which is better to use for defining font sizes and why?
px and em seem to be the leading candidates. I know what the general answer
is going to be, but I'm hoping to ultimately get some good real world
examples.
Fire away! :)
Regards,
Peter Foti
|
by: bulk88 |
last post by:
I know Netscape 4 is Ancient and horrible but I need to make my site
Netscape 4.8 compatible. But how can I rewrite HTML code/do minor DTHML
on my site with Netscape 4/4.8, document.write works, but I cant remove
anything with it. Mostly what I need to do is remove/disable a embed or
object tag if a user clicks a button, and write it back in if they
click another. IE 4's DOM is so so so so much better and so much more
Dom Level 1.
| |
by: Nariak |
last post by:
Dear friends of programming!
the script below only works with MSI and Opera but not with Netscape 7.x and
Mozilla 1.x!
What is wrong?
Please help me!
Thanks Ralf
|
by: Jason |
last post by:
We have an Extranet with one customer with 20,000 users that has,
unfortunately, standardized on Netscape 4.77 for the entire company. We are
in the process of rewriting this application from Java to .NET and, of
course, would not like to be constrained by the Least Common Denominator
(LCD) this particular company represents.
Question: What is the best way to handle this without having to double the
development effort? For example, MVC...
|
by: Zytan |
last post by:
Obviously you can't just use a simple for loop, since you may skip
over elements.
You could modify the loop counter each time an element is deleted.
But, the loop ending condition must be checked on each iteration,
since the Count changes as you delete elements. I would think it is
guaranteed to be computed each time, and not cached.
So, is this the best way?
|
by: jim |
last post by:
Let's just say that I am foolish enough to code and distribute a free app to
the general public over the web.
What is the best (cheapest, smallest bandwidth, easiest to code) way to
publish updates to my .Net application?
I'd like to save bandwidth by only updating the changed portions if
possible.
Thanks!
|
by: Hystou |
last post by:
Most computers default to English, but sometimes we require a different language, especially when relocating. Forgot to request a specific language before your computer shipped? No problem! You can effortlessly switch the default language on Windows 10 without reinstalling. I'll walk you through it.
First, let's disable language synchronization. With a Microsoft account, language settings sync across devices. To prevent any complications,...
|
by: Oralloy |
last post by:
Hello folks,
I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>".
The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed.
This is as boiled down as I can make it.
Here is my compilation command:
g++-12 -std=c++20 -Wnarrowing bit_field.cpp
Here is the code in...
| |
by: jinu1996 |
last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth.
The Art of Business Website Design
Your website is...
|
by: Hystou |
last post by:
Overview:
Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
|
by: TSSRALBI |
last post by:
Hello
I'm a network technician in training and I need your help.
I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs.
The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols.
I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
|
by: adsilva |
last post by:
A Windows Forms form does not have the event Unload, like VB6. What one acts like?
|
by: 6302768590 |
last post by:
Hai team
i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
|
by: muto222 |
last post by:
How can i add a mobile payment intergratation into php mysql website.
| |
by: bsmnconsultancy |
last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...
| |