2011-06-08 52 views
0

有点'汗' - 我遇到了Z-index的第一个问题,只影响FF,并在IE中正常工作。我有2个水平的div互相重叠,并且几乎占据100%的宽度。在一个div的左侧有一个侧栏,在第二个div的右侧有一个滚动条。两者具有相同的Z-索引,当我在IE的左边栏上按下时,它会激活链接,当我按下右侧的滚动条时,它可以正常工作。但在FF - 它不工作。所以要么我必须在左边div上设置更高的索引,然后我不会访问右边或其他方式。我需要使用两者,事情是我无法真正改变divs。有没有解决这个问题?我试过javascript Z-index转移,但不能顺利运行......谢谢。Z-index冲突重叠div

#left_bar { 
position: relative; 
margin-top:-112px; 
margin-left:auto; 
margin-right:auto; 


} 

#post_table { // THE SCROLL on the right 
position: relative; 
margin-top:-800px; 
margin-left:auto; 
margin-right:auto; 
padding-left:182px; 
left:-12px; 






} 

#bar_links { 
// THE LINKS on the left 
position: relative; 
margin-left:18px; 
margin-right: auto; 
padding-right:700px; 
width: auto; 
top:180px; 


} 
HTML: 

<div align="center" id="left_bar" style="white-space:nowrap"> 
<img src="images/posting.png"/></div> 
<div align="center" id="bar_links">  
<a href="javascript:;" onmouseout="MM_swapImgRestore();" 
onmouseover="MM_swapImage('images/slices/lipstick1','','images/slices/lipstick2.png',1);"> 
<img name="images/slices/lipstick1"src="images/slices/lipstick1.png" 
width="132" height="56" border="0" id="lipstick" /></a> 
</div> 
<div align="center" id="post_table" style="height: 730px; width:644px; overflow: auto;overflow- x:hidden;"> 
<table width="640" id="table_main"> 
<tr> 
<td>  

<?php 

echo "<table cellspacing='1' cellpadding='1' border='0' width='600' align='center' 
id='inner_table'><tr><td>"; 
    echo "<span style='font-size:11px;color:#dddddd;white-space:nowrap;background- 
image: url(images/branches.png);float:left'>&nbsp;".$post_date."&nbsp;</span>&nbsp;"; 
    echo "</td></tr><br/>"; 
    echo "<tr><td align='left' id='post_style'>"; 
    echo $posting; 
    echo "</tr></td>"; 
    }; ?> 

</td> 
</tr> 
</table> 
</div> 
+2

你能给小提琴手加个例子吗? – Treemonkey 2011-06-08 11:04:06

+0

你能否提供代码,或者 - 更好 - jsfiddle演示? – atlavis 2011-06-08 11:04:39

+0

..或许我使用了Z-index转换的高效javascripting .. – 2011-06-08 11:26:07

回答

0

我可以肯定地说,你几乎肯定会有问题:你的HTML根本无效。

仅此行会做不同的事情在不同的浏览器:

echo "</td></tr><br/>"; 

其次,你谈论一个的z-index问题,但没有在你提供的代码。我们如何解决不存在的问题?

你的问题当然是$posting;不是在FF中显示,而是在IE中。原因很简单:您的#post_table定义为#left_bar#bar_links。这就是为什么它们出现下的他们。

我不知道什么是你的想法,但我可以在使用大量底片利润率将是难以管理的确认您。现在你定义2箱和移动第三个过/他们下...

这里有一个jsFiddle使用您有所修正+适应代码,看在FF和IE浏览器类似。

您应该从重新思考布局开始......并学习正确的HTML和CSS。

+0

首先 - 代码在大多数浏览器中呈现完美 - 这是HTML无效的答案......包含表格标签的PHP标签呈现良好。第二,是的,代码中没有z-index,我解释了为什么在我的题。简单地说,如果我添加任何z-index,div层将会在另一层之上。您应该知道,如果代码中没有z索引,浏览器会根据它们在HTML中的顺序来堆叠div。订单没有问题 - 当您想通过'post_table'或其他方式升级'bar_links'时出现问题。代码涉及PHP,这是它的本质。 – 2011-06-08 15:53:40

+0

P.S.我承认代码应该是更好的结构 - 但我使用了很多相对.png图像,这就是为什么它的问题。我刚刚验证了'DW'中的代码 - 它不会显示除小javascript oncontextmenu命令之外的单个错误。 – 2011-06-08 15:56:52

+0

'post_table'在_bar_links后定义。这就是为什么大多数浏览器会将'bar_links'放在'post_table'之下的原因。当没有z-index时,不要调用z-index问题:将其称为叠加问题或其他问题。 DW(Dreamweaver我猜)不会验证你的代码,除了语法。使用一些服务,如[W3C](http://validator.w3.org/)。最后,为了摆脱php,在浏览器中打开您的页面,显示它的源代码,并向我们显示(或将其放入pastebin/jsfiddle中)。我真的很想在这个问题上给予更多帮助,但现在我已经掌握了您提供的不完整资料。 – Kraz 2011-06-08 16:27:50