【发布时间】:2011-07-17 08:49:39
【问题描述】:
在设计我的网站时,我犯了一个重大错误,即没有在所有浏览器上进行调试。在 Firefox (3.6.10) 和 IE8 中,表单元素显示正常,但在 chrome(10) 中,仅显示 position:absolute 元素。
我有一个由无序列表组成的表单。列表项设置为 position:relative。它包含一个左浮动标签、右浮动字段,可能还有一个 position:absolute 小部件。
HTML:
<form><ul>
<li>
<label>Name</label>
<input type="text" />
<a id="nameGenerator" class="widget"></a>
</li>
</ul></form>
CSS:
form ul li{
margin: 5px;
clear: both;
position:relative;
}
form label{
float:left;
margin-top: 0px;
margin-bottom: 0px;
}
form input{
float:right;
margin-top: 0px;
margin-bottom: 0px;
}
form .widget{
position: absolute;
top: 0;
right: 0;
z-index: 99;
}
我可以通过删除 position:relative 来“解决”这个问题,但这是不可接受的。我可以做些什么来产生预期的结果吗?
【问题讨论】:
-
期望的结果是什么?也许设置和示例?
-
@Myles,这是不可接受的,因为它会导致所有绝对位置元素都粘在屏幕顶部,而不是留在各自的列表项中。
-
@Myles Gray - position:static 是默认定位 - 不是相对的。他需要 li 是相对的,因为每个都必须是它自己的小部件的父级,否则它相对于身体而不是 li 定位。
-
@Myles Gray:我相信
position的默认值一般是static。 -
@Myles Gray:默认定位是
static
标签: html css google-chrome css-position