Html IE将锚元素定位在图像上
我对IE9(和IE8)在图像上定位空(有点像)锚元素有问题。锚点包含文本,但它是使用CSS的文本缩进属性从页面开始的 我在一个网站上工作,这个网站有一系列的宣传板,它们都包含在UL中。在每个LI中都有一个宣传图像,以及一个或多个定位在不同区域的锚元素。IMG和A元素绝对位于LI元素中。因此,基本结构看起来像UL>LI>imga 这种设置在Firefox和Chrome中运行良好,但IE不喜欢。我尝试在这个设置上使用z-index,但没有成功 有人能解释IE存在的问题,并为我的CSS提供更好的解决方案吗?我用一个div、img和一个锚点快速/简化了我的问题。可以将其复制/粘贴到您的机器上,以查看其运行情况Html IE将锚元素定位在图像上,html,css,internet-explorer,xhtml,Html,Css,Internet Explorer,Xhtml,我对IE9(和IE8)在图像上定位空(有点像)锚元素有问题。锚点包含文本,但它是使用CSS的文本缩进属性从页面开始的 我在一个网站上工作,这个网站有一系列的宣传板,它们都包含在UL中。在每个LI中都有一个宣传图像,以及一个或多个定位在不同区域的锚元素。IMG和A元素绝对位于LI元素中。因此,基本结构看起来像UL>LI>imga 这种设置在Firefox和Chrome中运行良好,但IE不喜欢。我尝试在这个设置上使用z-index,但没有成功 有人能解释IE存在的问题,并为我的CSS提供更好的解决方
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<meta name="Description" content="" />
<meta http-equiv="Content-type" content="text/html;charset=UTF-8" />
<link type="text/css" rel="stylesheet" href="" />
<style type="text/css">
#div {
z-index:1;
display: block;
background:red;
position:relative;
}
#image {
z-index:2;
position:absolute;
top:0;
left:0;
display:block;
}
#anchor {
z-index:3;
display:block;
overflow:hidden;
position: absolute;
top:0;
left:0;
text-indent:-9999px;
width:640px;
height:480px;
}
</style>
</head>
<body>
<div id="div">
<img id="image" src="http://farm8.staticflickr.com/7130/7438112718_2e8340081b_z.jpg" />
<a href="#" id="anchor">clicky</a>
</div>
</body>
</html>
#div{
z指数:1;
显示:块;
背景:红色;
位置:相对位置;
}
#形象{
z指数:2;
位置:绝对位置;
排名:0;
左:0;
显示:块;
}
#锚定{
z指数:3;
显示:块;
溢出:隐藏;
位置:绝对位置;
排名:0;
左:0;
文本缩进:-9999px;
宽度:640px;
高度:480px;
}
我无法控制UL>LI>IMG A布局。这是一个设置,当我们得到新的宣传片时,我们可以很容易地更新图片,只需根据图片的“行动调用”数量轻松地添加或删除锚。元素的定位是内联注入的
谢谢 我认为您可以使用一个普通的旧HTML图像映射来实现您想要的: 否则,这里有一把小提琴在做我认为你原本想做的事情:
我也有同样的问题。根据您的示例,我的解决方案如下:
<style type="text/css">
#div {
position:relative;
}
#anchor {
display:block;
width:640px;
height:480px;
overflow:hidden;
text-indent:-9999px;
position:absolute;
top:0;
left:0;
background:url(http://farm8.staticflickr.com/7130/7438112718_2e8340081b_z.jpg) no-repeat 640px 480px;
}
</style>
<div id="div">
<img id="image" src="http://farm8.staticflickr.com/7130/7438112718_2e8340081b_z.jpg" />
<a href="#" id="anchor">clicky</a>
</div>
#div{
位置:相对位置;
}
#锚定{
显示:块;
宽度:640px;
高度:480px;
溢出:隐藏;
文本缩进:-9999px;
位置:绝对位置;
排名:0;
左:0;
背景:url(http://farm8.staticflickr.com/7130/7438112718_2e8340081b_z.jpg)不重复640px 480px;
}
由于锚定标记具有设置的宽度和高度且溢出隐藏,请将锚定标记的背景图像设置为其绝对定位的图像(或已包含的任何图像),但将背景位置设置为大于锚定宽度和高度的正像素值,并将背景重复设置为不重复。通过这样做,锚定标签在IE中工作,浏览器不会下载额外的资源,因此可以节省带宽。注意:img标签不需要任何特殊的样式,包含的div只需要相对位置
如果您不想担心设置背景位置、无法控制任何动态生成图像的大小和/或不关心节省带宽,您还可以创建并使用一个小的(1x1)清晰/透明图像(如有必要,设置背景重复)
或者,增加Billy Moat的小提琴示例:这个问题也会影响IE10,但不会影响IE11。背景图像方法的替代方法是应用背景颜色:rgba(0,0,0,0)代码>到锚点。请注意,这在IE8中不起作用,IE8不支持
rgba
颜色。是否要在图像上显示锚定标记?是的,锚定标记应该可以在图像上单击,并占据CSS中指定的区域。目前,它在那里,是CSS中给出的尺寸大小,但不可点击。意味着你想显示文本,甚至图像应该可以点击?类似的图像应该充当锚定
标记?文本不应该显示,它已经用CSS移出页面。将有一个图像,上面有多个锚,应该可以点击。如果只是一张图片和一个锚,我会把img标签放在锚里面。但是同样,一张图片会有多个可点击的区域。你提到我的两个小提琴了吗?你的小提琴是我想要完成的,它在IE中工作,直到你去掉背景色。有什么想法吗?这个页面的设置方式,我没有切换到使用图像地图的选项。感谢迄今为止的所有帮助。@snowBlind-那么,你到底想实现什么与我的小提琴不同?你的小提琴确实是做什么的,但是一旦你从锚中移除背景色,它仍然可以工作。