【问题标题】:Internet Explorer - CSS box-Shadow around container div onlyInternet Explorer - CSS box-Shadow 仅围绕容器 div
【发布时间】:2013-05-08 09:23:49
【问题描述】:

这是我网站的 CSS。盒子阴影非常适合 chrome 和 firefox,但我无法让它在 internet explorer 9 及以下版本中正常工作。它在 IE 10 上可以正常工作。我希望 box-shadow 只环绕容器 div。不在乎 box-shadow 是否在左上角的 div 周围工作,但如果这是一个简单的修复,请随时提供帮助。感谢您的宝贵时间。

@charset "utf-8";
body {
margin: 0;
padding: 0;
border: none;
background-color: #FFF;
}
html {
overflow: -moz-scrollbars-vertical; 
overflow-y: scroll;
}
#container {
width: 1000px;
margin-right: auto;
margin-left: auto;
box-shadow: 0px 2px 15px 0px #000;
-moz-box-shadow: 0px 2px 5px 0px #000;
-webkit-box-shadow: 0px 2px 15px 0px #000;
/* For IE 8 */
/* -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=0)";*/
 -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=90)";
 -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=180)";
 -ms-filter: "progid:DXImageTransform.Microsoft.Shadow(Color=#cccccc, Strength=5, Direction=270)";
/* for IE 5.5 - 7 */
 filter:
   /* progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=0, Color='#cccccc'),*/
    progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=90, Color='#cccccc'),
    progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=180, Color='#cccccc'),
    progid:DXImageTransform.Microsoft.Shadow(Strength=3, Direction=270, Color='#cccccc');
}

#container #topbox {
padding:0;
margin:0;
height: 35px;
width: 1000px;
}
#container #topnav {
height: 35px;
width: 750px;
float:left;
}
#container #cse
{
height: 20px;
width: 250px;
float: left;
text-align: center;
padding-bottom: 15px;
vertical-align: middle;
margin-top: -10px;
}

#container #Topleft {
height: 200px;
width: 250px;
border: 5px solid #EAEAEA;
-webkit-transform: rotate(-2deg);  /* Chrome, Safari 3.1+ */
-moz-transform: rotate(-2deg);  /* Firefox 3.5-15 */
-ms-transform: rotate(-2deg);  /* IE 9 */
-o-transform: rotate(-2deg);  /* Opera 10.50-12.00 */
transform: rotate(-2deg);  /* Firefox 16+, IE 10+, Opera 12.10+ */
border-radius: 7px;
-moz-border-radius: 7px;
-webkit-border-radius: 7px;
box-shadow: 0px 2px 15px 0px #000;
-moz-box-shadow: 0px 2px 5px 0px #000;
-webkit-box-shadow: 0px 2px 15px 0px #000;
background-color: #FFF;
}
#container #TopRight {
height: 150px;
width: 740px;
}
#container #banner {
height: 100px;
width: 670px;
padding-left: 70px;

}
#container #alertmessage {
height: 50px;
width: 740px;
background-color: #006;
}
#alertmessagebox {
width: 730px;
height: 45px;
padding-left: 5px;
padding-top: 5px;
overflow: hidden;
font-size: 1em;
color: #CCC;
font-weight: bold;
text-align: center;
text-transform: uppercase;
/*display: table-cell;
vertical-align: middle;*/
}
#container #SideNav {
width: 260px;

}
#container #leftcol {
float: left;
padding-bottom: 150px;
/*background-color: #FFF;*/
}
#container #rightcol {
float: left;
}
#container #Body {
width: 740px;
height: auto;
background-color: #33F;
}
#container #Footer {
font-family: Verdana, Geneva, sans-serif;
font-size: 12px;
background-color: #006;
width: 1000px;
clear: both;
color: #CCC;
text-align: center;
}

【问题讨论】:

  • 如果没有 HTML,调试起来会非常困难,如果不是不可能的话。请考虑制作一个 jsfiddle 演示,包括重现问题所需的 HTML 和 CSS。
  • 这里是网站。 rsd17.org/test/test/untitled1.shtml。明天我会试着为你做一个 jsfiddle。感谢您查看此问题。
  • 对于 IE9,过滤器遮住了盒子阴影。如果您删除它,它工作正常。我会从样式表中删除过滤器,并仅使用条件注释将其提供给 IE8 及以下版本。至于IE8及以下,不支持box-shadow。
  • 在仔细查看过滤器之后,我发现了它的问题。我会提供答案。

标签: internet-explorer css


【解决方案1】:

IE9 正确支持 box-shadow,但过滤器干扰了它。过滤器实际上工作正常,但不是您期望的。您会注意到它在子元素周围添加了一个过滤器。这是因为它是一个投影,并且容器的背景是透明的。您可以通过向容器 div 添加背景颜色来修复它:

#container { background-color: white; }

【讨论】:

  • 太棒了,几乎完美。只有一个问题。如果我注释掉这一行,在 ie9 中我没有找到右侧,但在 8 中看起来很完美。但是如果我把它留在里面,我会在 ie8 上的搜索框上看到一个顶部栏,而 ie9 看起来很完美。 progid:DXImageTransform.Microsoft.Shadow(Strength=5, Direction=0, Color='#cccccc'),无论如何要解决这个问题,所以它适用于两者?
  • 我不确定你的意思。我看不出你在哪里使用该代码。
  • 它位于我的 #container div 下的 CSS 中,其中包含我所有的 box-shadow 东西。如果你看上面的注释掉。我取消了它在 IE9 中工作的注释,但在 ie8 中只有我的谷歌搜索周围有一个顶部边框。
  • 没有测试用例很难测试,尤其是在调试器中没有显示的注释掉的代码。我建议调整过滤器的方向或查看导致页面顶部间隙的原因,例如上边距或可能将其向下推的元素。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-09-16
  • 1970-01-01
相关资源
最近更新 更多