css - 带有标签 :hover and relative positioning 的 chrome 问题

标签 css google-chrome hover positioning css-position

对于我正在处理的网站的一部分,我正在构建价目表...因为它是交互式的,所以我使用复选框类型的输入和标签来制作它;你检查你想要的服务,网页会告诉你这些服务的总费用。很简单。

我的问题是风格问题;我正在使用 float 属性设置为右的跨度来区分价格和服务描述(价格在 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 中而不是直接定位标签和输入来解决这个问题,但我觉得这应该有效......

一如既往,感谢您的宝贵时间。

最佳答案

您的问题不在于标签 position:relative; 看来你的问题是 float:right

我建议你用这种风格替换span.right

    span.right
    {
        padding-left:100px;
    }

解决这个问题的另一种方法是添加 clear:right;标签:悬停样式

    label:hover
    {
        color:#FF0000; clear:right;
    }

关于css - 带有标签 :hover and relative positioning 的 chrome 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980821/

相关文章:

javascript - 在谷歌浏览器上选择网络摄像头

html - 将鼠标悬停在表中 <hr> 上的效果

html - 悬停效果范围太高

javascript - 如何让在透明 Canvas 上移动的图像不留下移动图像的痕迹/"tracks"?

css - Internet Explorer 9 中的渐变溢出圆 Angular 边框

javascript - HTML,可打印的超链接引用,如目录

javascript - 在 Android 上保持 webRTC 音频流

javascript - 为什么某些重定向会导致 Nexus Chrome 浏览器无法运行 Javascript?

javascript - 避免在一个低于另一个的 div 上发生鼠标事件

jquery - 如何处理两行悬停菜单