Apply style ONLY on IE

后端 未结 12 2112
迷失自我
迷失自我 2020-11-28 01:14

Here is my block of CSS:

.actual-form table {
  padding: 5px 0 15px 15px;
  margin: 0 0 30px 0;
  display: block;
  width: 100%;
  background: #f9f9f9;
  bor         


        
相关标签:
12条回答
  • 2020-11-28 01:41

    Apart from the IE conditional comments, this is an updated list on how to target IE6 to IE10.

    See specific CSS & JS hacks beyond IE.

    /***** Attribute Hacks ******/
    
    /* IE6 */
    #once { _color: blue }
    
    /* IE6, IE7 */
    #doce { *color: blue; /* or #color: blue */ }
    
    /* Everything but IE6 */
    #diecisiete { color/**/: blue }
    
    /* IE6, IE7, IE8, but also IE9 in some cases :( */
    #diecinueve { color: blue\9; }
    
    /* IE7, IE8 */
    #veinte { color/*\**/: blue\9; }
    
    /* IE6, IE7 -- acts as an !important */
    #veintesiete { color: blue !ie; } /* string after ! can be anything */
    
    /* IE8, IE9 */
    #anotherone  {color: blue\0/;} /* must go at the END of all rules */
    
    /* IE9, IE10, IE11 */
    @media screen and (min-width:0\0) {
        #veintidos { color: red}
    }
    
    
    /***** Selector Hacks ******/
    
    /* IE6 and below */
    * html #uno  { color: red }
    
    /* IE7 */
    *:first-child+html #dos { color: red }
    
    /* IE8 (Everything but IE 6,7) */
    html>/**/body #cuatro { color: red }
    
    /* Everything but IE6-8 */
    :root *> #quince { color: red  }
    
    /* IE7 */
    *+html #dieciocho {  color: red }
    
    /* IE 10+ */
    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
       #veintiun { color: red; }
    }
    
    0 讨论(0)
  • 2020-11-28 01:42
    @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
       #myElement {
            /* Enter your style code */
       }
    }
    

    Explanation: It is a Microsoft-specific media query. Using -ms-high-contrast property specific to Microsoft IE, it will only be parsed in Internet Explorer 10 or greater. I have used both the valid values of the media query, so it will be parsed by IE only, whether the user has high contrast enabled or not.

    0 讨论(0)
  • 2020-11-28 01:42

    There are severals hacks available for IE

    Using conditional comments with stylesheet

    <!--[if IE]>
    <link rel="stylesheet" type="text/css" href="only-ie.css" />
    <![endif]-->
    

    Using conditional comments with head section css

    <!--[if IE]>
    <style type="text/css">
        /************ css for all IE browsers ****************/
    </style>
    <![endif]-->
    

    Using conditional comments with HTML elements

    <!--[if IE]> <div class="ie-only"> /*content*/ </div> <![endif]-->
    

    Using media query

     IE10+
     @media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
     selector { property:value; }
     }
    
     IE6,7,9,10
     @media screen and (min-width: 640px), screen\9 {
     selector { property:value; }
     }
    
     IE6,7
     @media screen\9 {
      selector { property:value; }
     }
    
     IE8
     @media \0screen {
      selector { property:value; }
     }
    
     IE6,7,8
     @media \0screen\,screen\9 {
      selector { property:value; }
     }
    
     IE9,10
     @media screen and (min-width:0\0){
      selector { property:value; }
     }
    
    0 讨论(0)
  • 2020-11-28 01:43

    Update 2017

    Depending on the environment, conditional comments have been officially deprecated and removed in IE10+.


    Original

    The simplest way is probably to use an Internet Explorer conditional comment in your HTML:

    <!--[if IE]>
    <style>
        .actual-form table {
             width: 100%;
        }
    </style>
    <![endif]-->
    

    There are numerous hacks (e.g. the underscore hack) you can use that will allow you to target only IE within your stylesheet, but it gets very messy if you want to target all versions of IE on all platforms.

    0 讨论(0)
  • 2020-11-28 01:45

    Welcome BrowserDetect - an awesome function.

    <script>
        var BrowserDetect;
        BrowserDetect = {...};//  get BrowserDetect Object from the link referenced in this answer
        BrowserDetect.init();
        // On page load, detect browser (with jQuery or vanilla)
        if (BrowserDetect.browser === 'Explorer') {
          // Add 'ie' class on every element on the page.
          $('*').addClass('ie');
        }
    </script>
    
    <!-- ENSURE IE STYLES ARE AVAILABLE -->
    <style>
        div.ie {
           // do something special for div on IE browser.
        }
        h1.ie {
         // do something special for h1 on IE browser.
        }
    </style>
    

    The Object BrowserDetect also provides version info so we can add specific classes - for ex. $('*').addClass('ie9'); if (BrowserDetect.version == 9).

    Good Luck....

    0 讨论(0)
  • 2020-11-28 01:48

    For /* Internet Explorer 9+ (one-liner) */

    _::selection, .selector { property:value\0; }
    

    Only this solution perfectly work for me.

    0 讨论(0)
提交回复
热议问题