【发布时间】:2012-02-17 08:16:35
【问题描述】:
对于我正在开发的网站的一部分,我正在构建一个价目表......因为它是交互式的,所以我使用复选框类型的输入和标签来制作它;您检查您想要哪些服务,网页会为您提供这些服务的总费用。很简单。
我的问题是风格问题;我正在使用一个将浮动属性设置为右侧的跨度来区分价格和服务描述(价格在 div 中右对齐,描述在复选框旁边左对齐)。整个标签使用相对定位进行定位。当我设置悬停伪类来更改标签的颜色时,颜色更改似乎在 chrome 上无法正常工作。下面是一个复制问题的小代码示例...
<html>
<head>
<style type="text/css">
div#leftcolumn
{
width:500px;
}
span.right
{
float:right;
}
input, label
{
position:relative;
left:50px;
}
label:hover
{
color:#FF0000;
}
</style>
</head>
<body>
<div id="leftcolumn">
<input id="option1" type="checkbox" /><label for="option1">This is a label... span class="right">and this is the same label</span></label><br/>
<input id="option2" type="checkbox" /><label for="option2">A new label!<span class="right">Y U NO COLOR RIGHT</span></label>
</div>
</body>
如果您在 Chrome 上尝试此示例,我相信您应该会注意到非常奇怪的悬停行为......但是,这似乎在 Firefox 和 Internet Explorer 中运行良好。这是chrome的错误吗?这是我糟糕的编码吗?我的实际页面验证......如果有人理解这个问题,我会解释发生了什么。我知道我可以通过将相对定位移动到 div 并将所有输入和标签放在该 div 中而不是直接定位标签和输入来解决问题,但我觉得这应该可行....
一如既往,感谢您抽出宝贵时间。
【问题讨论】:
-
我应该强调,正如我在问题中所说,我可以通过再添加一个 div 并将定位移动到该 div 中而不是直接在输入和标签上来解决问题。我的主要问题是为什么会发生这种情况?我的代码的某些部分是否使用了糟糕的设计实践,或者这只是 chrome 的东西?如果是 chrome 问题,我应该提交错误报告吗?
标签: css google-chrome hover positioning css-position