2011-09-09 173 views
3

好吧,我希望这不是一个简单的疏忽,但我一直在这个小时工作!忽略CSS文本底部边距

我在使用的页面上有一个相当复杂的HTML/CSS结构。我在页面的底部有一个底部边距为10px的div文本。该div位于另一个底部边距为10px的div;。该div位于链上的其他div上,直到<body>

由于某种原因,文本对接到底部的d​​iv对齐。我为人们创造了一个极简主义的回放。它确实重现了这个问题,我只希望我没有删除任何有助于解决问题的其他问题。

我没有得到它在最新的铬在一个点的高度:100%;在那里的某处(我不记得现在在哪里),但它并没有解决在Firefox和ie的问题。这两种浏览器都与该css有奇怪的行为,他们最初显示正确的底部边距大小,但立即跳下来,使文本再次没有底部边距。这就像一点点昙花一现。

哦,也在我的报价html ie不显示任何东西居中(至少ie9)。我希望这不会是一个问题。我自己可以很容易地解决这个问题。

在chrome中,如果检查元素,它会突出显示蓝色的文本div,蓝色边界框显示div超出了当前显示的位置。

这里是简约例如:http://www.del337ed.com/repro.html

我感谢大家的输入/帮助。

回答

5

添加overflow: hidden#SubmissionDetails防止对divcollapsing margins行为来解决问题保证金。

添加DOCTYPE作为第一行逃脱Quirks Mode并在Internet Explorer解决您的页面:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

(您也可以使用更短的<!DOCTYPE html>,我只是坚持与你有什么)

进行此更改也会改善其他浏览器中的操作(也就是说,它会提高一致性)。

+0

好极了,工作完美! – omatase

0

改为使用填充。保证金在那里,只是保证金不能填充背景(这就是为什么它看起来没有分离)。它在那里,它只是不可见。

element.style { 
    padding-bottom: 10px; /* change the margin property to padding */ 
    font-size: .9em; 
    font-style: italic; 
} 
3

在您的例子,它包含了思想的标记股利 - 目前有没有类与它assiciated添加以下内容:

height: auto; overflow: hidden;