【发布时间】:2011-10-12 17:22:15
【问题描述】:
基本上,我想将文本居中,忽略任何浮动的兄弟元素。
起初,我认为这不是问题,因为我的印象是浮动元素不会占用任何兄弟元素的宽度。
Example(我希望红色文本位于蓝色框的中心,尽管是绿色文本)
如何做到最好?
【问题讨论】:
基本上,我想将文本居中,忽略任何浮动的兄弟元素。
起初,我认为这不是问题,因为我的印象是浮动元素不会占用任何兄弟元素的宽度。
Example(我希望红色文本位于蓝色框的中心,尽管是绿色文本)
如何做到最好?
【问题讨论】:
这是一个工作小提琴的链接:http://jsfiddle.net/cD657/3/
(在您的示例中,您打开了一个<span>,然后用</div> 关闭它)
我把它做成了一个 div 并给了它margin: 0px auto; 和一个宽度。 - 似乎成功了
【讨论】:
你不能。如果它在父框内居中,则浮动将在某个点与内容重叠,这将破坏浮动点。您可以在此处使用两种方法。如果您知道浮动的宽度,则可以应用相等的负右边距。否则,您可以绝对定位元素like this。
【讨论】:
div)并将其浮动到父容器的另一侧(包含其他烦人的浮动) .这比使用边距平衡居中要好,因为浮动对象即使不在与文本相同的容器中也会影响文本居中。想法?非常适合我。
您可以保持原样,但只需在另一侧添加与浮动元素宽度相同的像素值的填充。
.parent{
text-align: center;
}
.centered.element{
padding-left: [width of floating element]px;
}
.floating.element{
float: left;
}
要轻松找到宽度,只需在任何现代浏览器中使用 Developer Tools 到 Inspect 元素即可。
在此处查看小提琴:http://jsfiddle.net/cD657/369/
注意:如果居中的元素具有指定的background 颜色,这可能不起作用。
【讨论】: