【发布时间】:2011-10-13 12:37:38
【问题描述】:
我希望下面的代码将我的 span 放在按钮的左上角,但事实并非如此。这是为什么呢?
<!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>
<style type='text/css'>
</style>
</head>
<body>
<button style='height:100px;width:100px;position:relative;'>
<span style='position:absolute;top:0;left:0;'>text</span>
</button>
</body>
</html>
<span> 相对于垂直-middle 线放置(我无法解释 3px 填充)。
将<button> 替换为<div>确实将<span> 放在左上角。
问题:为什么按钮内的绝对定位(使用 position:relative)与使用 <div> 的布局表现不同?我该如何解决?
背景:我在按钮内使用两个绝对定位的 div 来创建一个带有圆角的浮动宽度按钮。
编辑: 重要提示 IE 8.0 完全符合我的预期(跨越左上角),我看到的问题是 Firefox (3.6.6) .
【问题讨论】:
-
令人着迷...我以为是
margin/padding,但似乎并非如此... -
我不确定这是否是上述 sn-p 的功能,但您的实际代码中是否缺少文档类型?
-
是的,实际页面确实有文档类型(添加到问题中)。
-
作为一个有趣的注释,
top:-50%会将其定位在您想要的位置。 -
是的(或 51%,因为 50% 可能会排在首位)。但我想避免为 Firefox 和 IE 设置单独的部分。现在我正在使用伪装成按钮的 标签。
标签: html css css-position