我的 CSS 看起来像这样:
#bbb {
border: solid rgba(0, 0, 0, .45) 200px;
height: 1500px;
width: 960px;
}
我真的需要让边框透明,但它在 IE6/7/8 上不起作用,我该如何处理?
我的 CSS 看起来像这样:
#bbb {
border: solid rgba(0, 0, 0, .45) 200px;
height: 1500px;
width: 960px;
}
我真的需要让边框透明,但它在 IE6/7/8 上不起作用,我该如何处理?
不使用图像的替代方法是:
HTML
<div class="component">
<div class="background"></div>
<div class="content">..Content..</div>
</div>
CSS
div.component {
position: relative;
}
div.background {
background:#f00;
position: absolute;
top: -1px;
left: -1px;
right: -1px;
bottom: -1px;
z-index: -1;
-webkit-opacity: 0.5;
-moz-opacity: 0.5;
filter:alpha(opacity=50);
}
div.content {
background:#fff;
}
您可以根据需要缩放边框。这个使用定位,您也可以使用填充/边距。
您不能在 IE8 和更早版本中使用 RGBA,据我所知,它也没有 polyfill。
正如其他人已经说过的那样,您可以使用背景,但您不需要使用图像。您也不能使用Opactiy
(or filter: alpha(opacity)
),因为这也会使孩子变得透明。
相反,您可以为父元素分配 ARGB 格式的单一颜色filter
渐变。
.parent {
background: transparent;
-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#7FFFFFFF,endColorstr=#7FFFFFFF)"; /* IE8 */
filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#7FFFFFFF,endColorstr=#7FFFFFFF); /* IE6 & 7 */
zoom: 1;
}
这相当于background: rgba(255, 255, 255, .5);
在现代浏览器中。
有关详细说明和 rgba 到 argb 转换器,请参阅本文。
你可以做这样的事情,它基本上是div
在“内容”周围渲染一个带有透明背景的“边框div
”。“边框宽度”是通过更改 中的padding
值来设置的div.border
,颜色/透明度来自该background-image
值,该值当前链接到50% transparent black
像素大小的图像。
HTML
<div class="border">
<div class="content"></div>
</div>
CSS
div.content {
background-color: #FFF;
width: 300px;
height: 200px;
}
div.border {
display: inline-block;
*display: inline;
padding: 200px;
background-image: url(https://dl.dropboxusercontent.com/u/6928212/halftransparentpixel.gif);
zoom: 1;
}
这是fullscreen jsFiddle应该在 IE6/7/8 中工作的。
editable jsFiddle这是在旧版浏览器中无法正确加载的链接。