【发布时间】:2011-07-22 20:12:48
【问题描述】:
我注意到在某些情况下,表单元素在 IE8 中无法透明。原来取决于 position:relative CSS 标签。下面的 HTML 演示了这个问题:
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>title</title>
<style type="text/css">
.ie-opaque {
zoom : 1;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)";
filter: alpha(opacity=50);
}
.relative {
position: relative;
}
</style>
</head>
<body>
<div class="ie-opaque">
<form>
<fieldset>
<ol>
<li class="relative">
<label for="test">label</label>
<input id="test"/>
</li>
<li class="relative">
<button>push</button>
</li>
<li>
<label for="test">label</label>
<input id="test"/>
</li>
<li>
<button>push</button>
</li>
</ol>
</fieldset>
</form>
</div>
</body>
</html>
在 IE8 中,第 3 和第 4 项是透明的,第 1 和第 2 项不是。知道为什么吗?
【问题讨论】:
-
这不是一个真正的答案(抱歉),但在某些(如果不是所有)浏览器中很常见(尽管我在奇怪的情况下在 MSIE 中看到更多),除非“位置:相对;"在元素上明确定义。我一直认为这主要是出于向后兼容性的原因(当不是一个彻底的错误时)。
标签: javascript internet-explorer-8 opacity