Preventing IE6 from loading stylesheet

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Mark Shroyer

    Preventing IE6 from loading stylesheet

    I just completed a new design for a personal web site. After finishing
    the basic CSS stuff and double-checking it in Safari, FF, Opera, et al.,
    I put on my war paint and fired up IE7 to figure out what kind of hacks
    I'd have to apply. Delightfully, IE7 only needed four or five tweaks
    this time around...

    But next I opened the test page in my IE6 VM, and it took me a few
    seconds to even realize what the heck I was looking at. I could
    possibly make it render halfway decently with several hours' work, but
    why bother? It's just a crummy personal web page. What I'd like to do
    instead is to somehow trick IE6 into not loading any styles whatsoever,
    so that the page renders like it would in, e.g., lynx; I have the luxury
    of not jumping through hoops for IE6 users here, but I don't feel like
    leaving the site non-navigable to them, either.

    I know about the <!--[if lte IE 6]>...<![endif]--thing, but what I
    want is basically the logical inverse of that, so that I can prevent IE6
    from loading any of my CSS to begin with: some relatively stable way of
    making an @import directive or an HTML <link rel="stylesheet "... />
    visible to everything *but* IE6.

    Any suggestions? Thanks in advance...

    --
    Mark Shroyer, http://markshroyer.com/contact/
    I have joined others in blocking Google Groups due to excessive
    spam. If you want more people to see your posts, you should use
    another means of posting on Usenet. http://improve-usenet.org/
  • Bjoern Hoehrmann

    #2
    Re: Preventing IE6 from loading stylesheet

    * Mark Shroyer wrote in comp.infosystem s.www.authoring.stylesheets:
    >I know about the <!--[if lte IE 6]>...<![endif]--thing, but what I
    >want is basically the logical inverse of that, so that I can prevent IE6
    >from loading any of my CSS to begin with: some relatively stable way of
    >making an @import directive or an HTML <link rel="stylesheet "... />
    >visible to everything *but* IE6.
    If conditional comments would work for you, I suggest you have a look at
    http://msdn2.microsoft.com/en-us/library/ms537512.aspx which should have
    the right expression for you.
    --
    Björn Höhrmann · mailto:bjoern@h oehrmann.de · http://bjoern.hoehrmann.de
    Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
    68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

    Comment

    • Mark Shroyer

      #3
      Re: Preventing IE6 from loading stylesheet

      In article <usenet-mail-9EC2CB.15442924 042008@snap.hom estarmy.net>,
      Mark Shroyer <usenet-mail@markshroye r.comwrote:
      I know about the <!--[if lte IE 6]>...<![endif]--thing, but what I
      want is basically the logical inverse of that, so that I can prevent IE6
      from loading any of my CSS to begin with: some relatively stable way of
      making an @import directive or an HTML <link rel="stylesheet "... />
      visible to everything *but* IE6.

      I managed to come up with something that works after a little more
      fooling around:

      <style type="text/css">
      @import url('screen.css ') screen;
      @import url('print.css' ) print;
      </style>
      <!--[if IE 7]>
      <link rel="stylesheet " href="screen.cs s" />
      <link rel="stylesheet " href="iehack7.c ss" />
      <![endif]-->

      It turns out that IE 6 can't understand media specifiers in the context
      of an @import directive, so it just ignores the entire directive.
      Unfortunately, IE 7 does not understand this either, so it is necessary
      to load the screen stylesheet with <linkinside an IE 7 conditional
      comment.

      I'd still be interested to hear other suggestions, though... or any
      takes on whether this is a wise thing to do. (Is there anything else
      out there other than pre-7 versions of IE that's likely to choke on
      this?)

      --
      Mark Shroyer, http://markshroyer.com/contact/
      I have joined others in blocking Google Groups due to excessive
      spam. If you want more people to see your posts, you should use
      another means of posting on Usenet. http://improve-usenet.org/

      Comment

      • Mark Shroyer

        #4
        Re: Preventing IE6 from loading stylesheet

        In article
        <bbp114domkk1j2 ch1ipqk4kd8ltsl hvv68@hive.bjoe rn.hoehrmann.de >,
        Bjoern Hoehrmann <bjoern@hoehrma nn.dewrote:
        * Mark Shroyer wrote in comp.infosystem s.www.authoring.stylesheets:
        I know about the <!--[if lte IE 6]>...<![endif]--thing, but what I
        want is basically the logical inverse of that, so that I can prevent IE6
        from loading any of my CSS to begin with: some relatively stable way of
        making an @import directive or an HTML <link rel="stylesheet "... />
        visible to everything *but* IE6.
        >
        If conditional comments would work for you, I suggest you have a look at
        http://msdn2.microsoft.com/en-us/library/ms537512.aspx which should have
        the right expression for you.

        Thanks for the hint, but that doesn't quite work*... but I probably
        should have been more specific with regard to my 'requirements'. While
        something like

        <![if !(IE 6)]>
        <link rel="stylesheet " ... />
        <![endif]>

        works most places, it is not valid XHTML so I'd like to avoid it. On
        the other hand, I don't mind using the other form of conditional
        comments (which I mentioned above) because it is valid HTML.

        [* Unless there's something else I'm failing to understand...]

        --
        Mark Shroyer, http://markshroyer.com/contact/
        I have joined others in blocking Google Groups due to excessive
        spam. If you want more people to see your posts, you should use
        another means of posting on Usenet. http://improve-usenet.org/

        Comment

        • Bjoern Hoehrmann

          #5
          Re: Preventing IE6 from loading stylesheet

          * Mark Shroyer wrote in comp.infosystem s.www.authoring.stylesheets:
          >Thanks for the hint, but that doesn't quite work*... but I probably
          >should have been more specific with regard to my 'requirements'. While
          >something like
          >
          ><![if !(IE 6)]>
          <link rel="stylesheet " ... />
          ><![endif]>
          >
          >works most places, it is not valid XHTML so I'd like to avoid it. On
          >the other hand, I don't mind using the other form of conditional
          >comments (which I mentioned above) because it is valid HTML.
          You can use the form you are comfortable with, e.g.

          <!--[if gt IE 6]>
          ...
          <![endif]-->

          would be valid and hidden from Internet Explorer 6.0; using

          <!--[if !(IE 6)]>
          ...
          <![endif]-->

          would exclude Internet Explorer 6 aswell, but include its predecessors.
          --
          Björn Höhrmann · mailto:bjoern@h oehrmann.de · http://bjoern.hoehrmann.de
          Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
          68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

          Comment

          • Mark Shroyer

            #6
            Re: Preventing IE6 from loading stylesheet

            In article
            <fmt114hr3echpe 8jo8ukme7m2bdhh 6td03@hive.bjoe rn.hoehrmann.de >,
            Bjoern Hoehrmann <bjoern@hoehrma nn.dewrote:
            * Mark Shroyer wrote in comp.infosystem s.www.authoring.stylesheets:
            Thanks for the hint, but that doesn't quite work*... but I probably
            should have been more specific with regard to my 'requirements'. While
            something like

            <![if !(IE 6)]>
            <link rel="stylesheet " ... />
            <![endif]>

            works most places, it is not valid XHTML so I'd like to avoid it. On
            the other hand, I don't mind using the other form of conditional
            comments (which I mentioned above) because it is valid HTML.
            >
            You can use the form you are comfortable with, e.g.
            >
            <!--[if gt IE 6]>
            ...
            <![endif]-->

            Sure it would be hidden from IE 6, but it would be hidden from every
            other browser as well.

            Thanks for the suggestion, but because conditional comments are a
            Microsoft-only extension, this does not resolve the original problem;
            this example would only work if the only browsers that one is concerned
            about are the different versions of IE.

            --
            Mark Shroyer, http://markshroyer.com/contact/
            I have joined others in blocking Google Groups due to excessive
            spam. If you want more people to see your posts, you should use
            another means of posting on Usenet. http://improve-usenet.org/

            Comment

            • Bjoern Hoehrmann

              #7
              Re: Preventing IE6 from loading stylesheet

              * Mark Shroyer wrote in comp.infosystem s.www.authoring.stylesheets:
              >Sure it would be hidden from IE 6, but it would be hidden from every
              >other browser as well.
              I see, then you can use the method proposed in the comments there,

              <!--[if gt IE 6]><!-->
              ...
              <!--<![endif]-->

              Here Validators and other browsers will treat this as two comments
              with "..." between them, while Internet Explorer 6 and predecessors
              with support for conditional comments will treat it differently.
              What they see is probably not "valid HTML" but this is as close as
              you will get as far as ease of use is concerned.
              --
              Björn Höhrmann · mailto:bjoern@h oehrmann.de · http://bjoern.hoehrmann.de
              Weinh. Str. 22 · Telefon: +49(0)621/4309674 · http://www.bjoernsworld.de
              68309 Mannheim · PGP Pub. KeyID: 0xA4357E78 · http://www.websitedev.de/

              Comment

              • dorayme

                #8
                Re: Preventing IE6 from loading stylesheet

                In article <usenet-mail-9EC2CB.15442924 042008@snap.hom estarmy.net>,
                Mark Shroyer <usenet-mail@markshroye r.comwrote:
                I just completed a new design for a personal web site. After finishing
                the basic CSS stuff and double-checking it in Safari, FF, Opera, et al.,
                I put on my war paint and fired up IE7 to figure out what kind of hacks
                I'd have to apply. Delightfully, IE7 only needed four or five tweaks
                this time around...
                >
                But next I opened the test page in my IE6 VM, and it took me a few
                seconds to even realize what the heck I was looking at. I could
                possibly make it render halfway decently with several hours' work, but
                why bother? It's just a crummy personal web page. What I'd like to do
                instead is to somehow trick IE6 into not loading any styles whatsoever,
                so that the page renders like it would in, e.g., lynx; I have the luxury
                of not jumping through hoops for IE6 users here, but I don't feel like
                leaving the site non-navigable to them, either.
                >
                I know about the <!--[if lte IE 6]>...<![endif]--thing, but what I
                want is basically the logical inverse of that, so that I can prevent IE6
                from loading any of my CSS to begin with: some relatively stable way of
                making an @import directive or an HTML <link rel="stylesheet "... />
                visible to everything *but* IE6.
                >
                Any suggestions? Thanks in advance...
                Why don't you put the war paint back on and take a good look at your
                html and css and see what IE6 is having *so* much trouble with. It might
                well be that in doing so, you will unearth issues where you should be
                simplifying in the first place. There may be an issue we can help you
                with and once identified it could be fixed by an over-riding conditional.

                This is what I do sometimes: duplicate the main stylesheet and call it
                ie#.css or whatever. Get it operating by the usual conditional method
                (in the head to link to it, underneath the one for all the other
                browsers).

                I then fire up IE and start removing huge chunks of the ie#.css to see
                if anything horrible happens. You might be surprised how quickly you
                will identify the area of concern.

                --
                dorayme

                Comment

                • BootNic

                  #9
                  Re: Preventing IE6 from loading stylesheet

                  Mark Shroyer <usenet-mail@markshroye r.comwrote in
                  news:usenet-mail-080D45.16460724 042008@snap.hom estarmy.net:
                  In article <usenet-mail-9EC2CB.15442924 042008@snap.hom estarmy.net>,
                  Mark Shroyer <usenet-mail@markshroye r.comwrote:
                  [snip]
                  I'd still be interested to hear other suggestions,
                  [snip]

                  <!--[if gte IE 7]<!-->

                  <!--<![endif]-->

                  --
                  BootNic Friday April 25, 2008 11:50 AM
                  Behind every successful woman...is a substantial amount of coffee.
                  *Stephanie Piro*

                  Comment

                  Working...