【问题标题】:IE not supporting some CSS3 stylingIE 不支持某些 CSS3 样式
【发布时间】:2013-09-24 19:11:01
【问题描述】:

我在使用 IE 时遇到问题。我在当前项目中使用了一些 css3 样式。在所有其他浏览器上,我已经在 Firefox、chrome 和 safari 上对其进行了测试,它看起来很棒。但是在 IE 上它看起来像我的房间(看起来不太好)。

我需要一些建议。我知道与其他浏览器相比,如今 IE 用户的百分比非常低。我的问题是我应该将我的 css3 重写为仅标准 CSS,尤其是对于不支持 IE 的那些,或者我应该惹恼它,并且只是使用 PHP 来提醒用户包含可能不正确,因为他们的浏览器类型并推荐他们下载,chrome 还是 firefox?

其中一个问题的示例是导航栏。

<nav>
    <ul>    
    <li>
    <a href="">Home</a>
    </li>                   
<li><a href="about.php">AboutUs</a></li>                        
<li><a href="contact.php">Contact Us</a></li>                   
    </ul>   
</nav>

CSS

nav{
text-align:center;
}
nav li{
text-align:center;list-style: none;
   float: left;
}
nav ul ul {
    display: none;
}

    nav ul li:hover > ul {
        display: block;
    }
    nav ul {
    z-index:50;
    background: #FFFFFF; 
    background: linear-gradient(top, #FFFFFF 0%, #bbbbbb 100%);  
    background: -moz-linear-gradient(top, #FFFFFF 0%, #bbbbbb 100%); 
    background: -webkit-linear-gradient(top, #FFFFFF 0%,#bbbbbb 100%); 
    box-shadow: 0px 0px 9px rgba(0,0,0,0.15);
    padding: 0 20px;
    border-radius: 10px;  
    list-style: none;
    position: relative;
    display: inline-table;
}
    nav ul:after {
        content: ""; clear: both; display: block;
    }

    nav ul li:hover {
        background: linear-gradient(top, #FFFFFF 0%, #FFFFFF 40%);
        background: -moz-linear-gradient(top, #FFFFFF 0%, #FFFFFF 40%);
        background: -webkit-linear-gradient(top, #FFFFFF 0%,#FFFFFF 40%);
    }
        nav ul li:hover a {
            color: #fff;

        }

    nav ul li a {
        display: block; 
        padding: 10px 10px;
        text-transform: uppercase;
        text-decoration: none;
    }
    nav ul li {
    float: left;
}

        nav ul li:hover a {
            color: #760076;
        }

    nav ul li a {
        display: block;
        color: #000000;
        text-decoration: none;
    }
    nav ul ul {
    border-radius: 0px; padding: 0;
    position: absolute; 
    top: 100%;
}
    nav ul ul li {
        float: none; 
        border-top: 1px solid #6b727c;
        border-bottom: 1px solid #575f6a;
        position: relative;
    }
        nav ul ul li a {
            color: #fff;
        }   
            nav ul ul li a:hover {
                background: #FFFFFF;
            }
            nav ul ul ul {
    position: absolute; 
    left: 100%; top:0;
}

【问题讨论】:

  • 哪个版本的IE? IE9+ 应该(几乎)和其他现代浏览器一样完成这项工作......
  • @Teemu 我的 IE 版本是 9.0.8112.16421。所以它是第 9 版
  • 您在文件的第一行使用了正确的 HTML5 文档类型 (&lt;!DOCTYPE html&gt;),并且没有任何前面的字符?另请注意,某些 CSS 属性需要供应商前缀才能在 IE9 中工作。
  • @Teemu 是的,我使用过&lt;!DOCTYPE html&gt;。我用过vendor prefix
  • @Teemu 我将更新我的问题,向您展示其中一个问题的示例

标签: internet-explorer


【解决方案1】:

以 IE9 为例:

nav ul {
    :
  background: -ms-linear-gradient(to bottom, #FFFFFF 0%, #BBBBBB 100%);
    :
}

nav ul li:hover {
  background: -ms-linear-gradient(to bottom, #FFFFFF 0%, #FFFFFF 40%);
        :
}

IE10 使用类似的规则,只是没有供应商前缀。

【讨论】:

  • 我用ms-liner 试过这个,不幸的是它并没有太大的不同
  • @EmilyKenpachi 我现在只有 IE10,页面在 IE10 和 IE9 模式下看起来与 Chrome29 和 FF23 相同。虽然仿真模式不是很可靠...
  • 谢谢,但请记住没有多少人拥有 IE10,我想我应该忘记它并提醒用户使用更好的浏览器,因为某些样式不会按应有的方式工作
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-04-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多