Css 具有透明背景的元素上的IE z索引问题
各位。 我需要2个绝对定位的textarea元素,一个放置在另一个上面。 这是我的样本:Css 具有透明背景的元素上的IE z索引问题,css,internet-explorer,textarea,z-index,Css,Internet Explorer,Textarea,Z Index,各位。 我需要2个绝对定位的textarea元素,一个放置在另一个上面。 这是我的样本: <div> <textarea id="txt1" style="position:absolute; top:0; left:0;z-index:0;background:none;">some text</textarea> <textarea id="txt2" style="position:absolute; top:0; left:0;z-ind
<div>
<textarea id="txt1" style="position:absolute; top:0; left:0;z-index:0;background:none;">some text</textarea>
<textarea id="txt2" style="position:absolute; top:0; left:0;z-index:1;background:none;"></textarea>
</div>
一些文本
我希望txt1在txt2之下。这发生在FF和Chrome中。但在IE中(在8和9中测试),txt1是可点击的,并成为焦点
有人知道怎么处理吗
提前谢谢 这是一个非常有趣的bug,我以前从未遇到过。IE的行为就像顶部的块不存在一样,因为它没有呈现出明显的效果 我觉得奇怪的是,它在FF/Webkit中工作,因为
none
将是背景图像
属性的设置。这在属性的速记版本中应该可以使用,但我认为它还应该将背景色设置为默认值(通常为白色)。无论如何,我想我错了。将background
或background color
设置为transparent
并不能解决问题
这里有一点解决方法:不要指定背景:无
,而是使用背景颜色:rgba(255,255,255,0)
。这将给你一个透明的背景。不幸的是,它只在IE9中工作。Internet Explorer不能很好地处理“空”元素。通过使背景:无
且没有内容,即将顶部文本区域
视为不存在
要解决此问题,可以使用透明png作为背景:
background: url(/images/transparent.png) repeat scroll 0 0 transparent;
JSFiddle:
编辑
正如@Ryan所建议的,您可以使用数据URI将父gif添加到背景中,这意味着您不需要创建实际的透明png:
background: transparent 0 0 repeat scroll url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
如中所述,另一种解决方案是添加一个完全不透明的彩色背景:
background:white; filter:alpha(opacity=1);
这个bug仍然在IE11上模仿IE10。我做的一个纯css解决方案是强制使用背景色并使用:
background-color: #000;
opacity: 0.0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; //IE8 Support
当然我忘了IE7。试着把两个文本区域分别放在不同的位置div@Michael没问题-我一直使用IE,所以我现在知道了它的大部分缺陷:)不要忘记接受答案,让其他人知道这是一个有效的解决方案提示:你可以使用一个数据URI,其中一个1px x x透明gif可以重复到IE 8。规则如下所示:背景:透明0 0重复滚动url(“数据:image/gif;base64,r0lgodlhaqabaaaaaaap///yh5baeaaaaaaaaaaaaaaaaaaaaaaaaaa7”)@瑞安很漂亮。答案中应该包括它。现在是2014年底,标准人员正在用完全不同的语法(IE还不支持)重写过滤器,我将使用透明图像解决方案,这样我就不会在未来的过滤器语法上遇到问题。我以为IE 10不支持-ms filter?()