IE8中CSS选择器能够选择,但无法应用样式

5

调试经验 http://www.dmhermitage.org/wtfborders.png 这让我想自杀。

我有一些非常简单的CSS来为我的输入对象设置样式:

    input, button
    {
        border: 1px solid #c66600;
        background-color: white;
        color: #7d212f;
        font-family: "Eras Light ITC", Tahoma, sans;
    }

但是我不喜欢它在单选按钮周围放置的丑陋边框,因此我使用选择器来去除边框:

input[type=radio] { border: none; }

您可以猜到这在哪些浏览器中有效,在哪个浏览器中无效。有趣的是,当我按F12启动IE8中的优秀开发者工具时,它实际上告诉我,单选按钮的样式已被覆盖为“无”,就像我要求的一样,但边框仍然留在单选按钮对象上。
我尝试了各种语义化的方法,比如将边框宽度设置为0px或颜色设置为像酸橙绿这样的疯狂颜色,但它仍然保持最初分配的颜色,这是从第一个样式中获取的。
最后,我尝试对“文本”对象进行样式设置,在这种情况下,任何样式都不会应用于任何内容。同样,浏览器声称实现了CSS选择,但在视觉上并没有发生。
您有什么想法?
顺便说一句,这是一个DotNetNuke安装程序,其中生成的代码无法明确设置单选按钮的样式。
谢谢, 丹

你有一个我们可以查看的实时示例吗? - Kyle
2
现场示例(正在建设中)在这里:dmhermitage.org/portal。检查搜索框旁边的单选按钮,以了解我的意思。 - Dan
我一直以为这些单选按钮是浏览器标准,就像标题标签一样。有趣的是发现它们可以被改变。不过你也设置了这个:-webkit-appearance: radio,也许这并没有帮助? - Kyle
肯定看起来像是一个 bug,在 IE8 中我也遇到了同样的问题。你可以尝试使用一个类(class)来代替 input[type=radio] 吗? - Pekka
6个回答

2

IE8似乎在怪异模式下呈现而不是标准模式,这总是会在IE中搞砸一切。要切换到标准模式,最简单的方法是将文档第一行的doctype替换为:

<!DOCTYPE HTML>

你可能还想查看一下输出的HTML内容。你有一个带有ID为dnn_dnnMENU_ctldnnMENU的span,其中包含大量虚构属性,如BackColorSysImgPathMenuItemHeight等等。这些在大多数浏览器中没有任何作用(或许IE会特殊解释它们,我不确定)。

它不仅切换到标准,还切换到html 5 - Adam Kiss
@Adam:在IE中不支持HTML 5标准。除了支持更多元素之外,其他浏览器处理HTML 5标准的方式并没有太大区别。 - DisgruntledGoat

1

问题是...

作为最有帮助的人,请注意,你的页面以某种被搞砸的方式呈现在怪异模式下,因此没有人应该使用。

解决方案 [编辑]

由于:http://dorward.me.uk/www/ie8/

将你的HTML 4文档类型设置为:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN"
   "http://www.w3.org/TR/html4/strict.dtd">

嗯...那是添加HTML注释,而不是文档类型声明。 - DisgruntledGoat
非常感谢,这解决了我本地机器上的问题(还没有上传)。 - Dan

0

以防万一,你试过了吗:

input[type='radio'] { border: none; }

请注意添加撇号(或者用您的有趣语言称之为什么:P)

我查看了网站,你的CSS是正确的,我无法为你提供任何帮助。祝你好运!


尝试使用撇号,结果一样。 示例网站(正在建设中)在此处:http://dmhermitage.org/portal 检查搜索框旁边的单选按钮,看看我的意思是什么。 - Dan

0

您可以通过在开发者工具栏中设置内联样式属性border: none;来删除边框...但由于某种原因,尽管样式被正确跟踪,但该样式未应用于单选按钮。看起来像某种错误..您是否尝试过提高规则的特异性(它应该已经比输入更高,但只是为了尝试一下)?

例如:

#page input[type=radio] {
   border: none;
}

0

0

很糟糕。尝试将边框颜色指定为白色?


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接