问题
everyone. I need 2 absolutely positioned textarea elements to be placed one over the other. Here is my sample:
<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>
I'm expecting txt1 to be under the txt2. That happens in FF and Chrome. But in IE (tested in 8 and 9) txt1 is clickable and becomes focus.
Does anybody know, how to manage this?
Thanks in advance!
回答1:
Internet Explorer does not play well with "empty" elements. By making the background: none
and having no content, IE treats the top textarea
as if it was not there.
To get around this, you can use a transparent png for the background instead:
background: url(/images/transparent.png) repeat scroll 0 0 transparent;
JSFiddle: http://jsfiddle.net/j8Gkd/
Edit
As suggested by @Ryan, you can use data URI to add a transaparent gif to the background, meaning you do not need to create an actual transparent png:
background: transparent 0 0 repeat scroll url("data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7");
Another solution, as suggested in this answer, is to add a coloured background with full opacity:
background:white; filter:alpha(opacity=1);
回答2:
That's a very interesting bug that I've never encountered before. IE acts like the block on top isn't even there since it's not rendered visibly.
It strikes me as odd that it works in FF / Webkit because none
would be a setting for the background-image
property. That should work okay in the shorthand version of the property, but I think it should also leave the background-color
set to the default (usually white). In any case, I guess I'm wrong about this. And setting either background
or background-color
to transparent
doesn't fix the problem.
Here's a little bit of a workaround: Rather than specifying background: none
, use background-color: rgba(255, 255, 255, 0)
. That will give you a transparent background. Unfortunately, it only works in IE9.
回答3:
This bug is still at IE11 emulating to ie 10. A pure css workaround I did was force a background-color and work with:
background-color: #000;
opacity: 0.0;
-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=0)"; //IE8 Support
Of course I'm forgetting IE7.
来源:https://stackoverflow.com/questions/9109911/ie-z-index-trouble-on-element-with-transparent-background