【问题标题】:CSS navigation menu won't rotate properly in IE8CSS 导航菜单在 IE8 中无法正确旋转
【发布时间】:2013-08-01 15:45:19
【问题描述】:

我得到了一个带有 90 度旋转菜单的设计,其中包含下拉菜单。当然,除了 IE8 之外,我在所有浏览器中都可以使用它(我们不会针对任何更低的浏览器进行优化)。

这是临时站点:http://williamsandports.com/wp/

#navbar 元素本身可以很好地旋转使用

filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=1);

使用令人敬畏的内置 IE “开发人员工具”,我发现最外面的 ul#menu-main-menu 仍然未旋转并悬挂在屏幕顶部,因此下拉元素无法可以正常互动。

建议任何人?我会采取任何修复程序,css,js,不管是什么来完成这个,当然除了静态图像:) 你可以在 FF 或 Chrome 中查看同一个站点,看看完成的解决方案应该是什么样子。

【问题讨论】:

  • 在 IE8 模式下在 IE9 的调试控制台中工作,我通过限制 ul#menu-main-menu 的宽度并将旋转过滤器应用于其 <li>s 获得了最佳结果。抗锯齿就像胡佛一样糟糕,但这是一个开始;)
  • 这实际上帮助很大,感谢您的关注。等不及 IE 8 成为过去...

标签: javascript css internet-explorer


【解决方案1】:

您不能在 IE8 中使用转换。您可以了解更多信息:http://caniuse.com/#search=transform。 如果您想旋转,例如您的网站。您可以为 IE8 使用静态图像和 css sprite。这是演示,我修复了 IE 8 解决方案旋转。

HTML

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Solution rotate in IE8</title>
    <link rel="stylesheet" href="css/stylesheet.css">
    <!--[if gte IE 9]>
        <link rel="stylesheet" type="text/css" href="css/ie.css" />
    <![endif]-->
</head>
<body>
    <div class="container">
        <div class="nav-bar">
            <ul class="navigation">
                <li><a href="#" class="home">Home</a></li>
                <li><a href="#" class="about">About Us</a></li>
                <li><a href="#" class="portfolio">Portfolio</a></li>
                <li><a href="#" class="process">Our Process</a></li>
                <li><a href="#" class="client">Client List</a></li>
                <li><a href="#" class="consultation">Consultation</a></li>
                <li><a href="#" class="contact">Contact Us</a></li>
            </ul>
        </div>
    </div>
</body>
</html>

CSS

- stylesheet.css: 使用-webkit-transform: ratate(90deg)

*,
*:before,
*:after {
  margin: 0;
  padding: 0;
  -webkit-box-sizing: border-box;
  -moz-box-sizing: border-box;
  box-sizing: border-box; }

.container {
  width: 900px;
  margin-left: auto;
  margin-right: auto; }

.nav-bar {
  width: 100%;
  position: relative; }
  .nav-bar:before, .nav-bar:after {
    content: "";
    display: table; }
  .nav-bar:after {
    clear: both; }
  .nav-bar {
    *zoom: 1; }

.navigation {
  background-color: #f2f2f2;
  padding: 10px;
  width: 100%;
  position: absolute;
  left: 40px;
  top: 0;
  -webkit-transform: rotate(90deg);
  -webkit-transform-origin: 0 0; }
  .navigation li {
    display: inline-block; }
  .navigation a {
    color: #825a13;
    font-weight: 700;
    padding: 10px;
    text-decoration: none;
    text-transform: uppercase; }

- ie.css:当你使用 IE8 时修复(使用图像和 css sprites)

.navigation {
  background-color: transparent;
  width: 40px; }
  .navigation li {
    display: block;
    float: left; }
  .navigation a {
    background: url(../img/nav.png) no-repeat;
    display: block;
    text-indent: -9999px;
    width: 40px;
    height: 118px; }
    .navigation a.home {
      background-position: 0 0;
      height: 75px; }
    .navigation a.about {
      background-position: 0 -86px;
      height: 90px; }
    .navigation a.portfolio {
      background-position: 0 -187px;
      height: 101px; }
    .navigation a.process {
      background-position: 0 -299px; }
    .navigation a.client {
      background-position: 0 -435px; }
    .navigation a.consultation {
      background-position: 0 -571px; }
    .navigation a.contact {
      background-position: 0 -706px; }

图片:

我在 IE8 中测试工作正常。也许这不是最好的解决方案,但我希望它可以帮助您在您的网站中使用。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多