2013-04-09 57 views
3

问题我有3个div的一个问题。用CSS溢出和显示

我有一个是容器("position : absolute; z-index: -1"),另外两个是子容器("position : absolute; z-index: *n*")为了动画的目的而被过度播放。无论如何,这两个子容器都有一个“网格”跨度("position: relative; display: inline-block")。与固定大小25x25像素和跨度有背景图像形式精灵。他的问题是,容器的溢出似乎并没有影响(即要隐藏,都应该跨度仍显示,根据它似乎不服从元素的“高度”属性)子容器。任何解决方案的想法?

我没有任何其他的样式表,或文档样式中,对产生的一切与JS &的jQuery的去。后8-10小时= d

的浏览器上测试将提供的屏幕截图是在Ubuntu

最新FF(20.0)

EDIT 这里是一个小提琴jsFiddle

+1

你可以尝试做的jsfiddle?很难跟随 – ntgCleaner 2013-04-09 22:04:48

+0

请包括[的jsfiddle(http://jsfiddle.net)示出第二人摆弄的问题 – Adrift 2013-04-09 22:05:00

+0

。 – 2013-04-10 08:19:58

回答

2

通常问题与display:inlineinline-block元素是由于通常占据它们的文本的大小而产生的。对此的补救措施是玩line-height。由于您根本没有任何文字,因此您可以将其设置为0

jsFiddle

enter image description here

#layer1 { 
    line-height:0; 
} 

我测试在Chrome 26和Firefox 20.

下面是从CherryFlavourPez

jsFiddle

使用 vertical-align:top一个替代的解决方案
#layer1 span { 
    vertical-align:top; 
} 

关于overflow。你在使用#map其中overflow:hidden结构是这样:

<div id="map"> 
    <div id="layer1"> 
    <div id="layer2"> 
</div> 

这是除了这需要他们离开页面的流量的事实#layer1#layer2绝对定位无一不精。如果需要,可以通过将overflow:隐藏到图层来削减底部,但不会在#map上。

jsFiddle

#layer1, 
#layer2 { 
    overflow:hidden; 
} 
+0

确定+1,但你能否给我回答上面的问题,关于溢出? – 2013-04-10 08:45:29

+0

你是上帝的伴侣!非常感谢你的有用答案! – 2013-04-10 08:53:13

+0

,而不是设置'线height'到'0'(这可能会导致问题,如果标记包括在未来的任何文字),我建议你设置'垂直align'属性默认值以外的任何东西'baseline' (例如'span {vertical-align:top'})将会消除这些差距。那些差距在字母'g'和'p'等字母的下方,因此为什么设置'line-height'将解决这个问题。 – CherryFlavourPez 2013-04-10 08:55:11