【发布时间】:2010-09-14 02:59:45
【问题描述】:
我不知道这是否可能是 Chrome 中的某种错误,或者(很可能)是我做错了什么。 如果输入的不是数字,我正在尝试使文本框背景颜色变为红色。
我有这个 html 页面:
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>iSPT</title>
<link rel="stylesheet" type="text/css" href="style2.css" />
</head>
<body>
<form >
<input type="number" autofocus />
</form>
</body>
</html>
这是 style2.css:
@CHARSET "ISO-8859-1";
:invalid{
background-color: red;
}
这不起作用,如上所示(如果我输入字母,框不会变红)。我有两种方法让它工作。 第一个是从输入中移除 autofocus 属性。
或者,如果我将外部文件中的 CSS 内联到 HTML 头中,那么验证也可以正常工作。
不过,我希望能够保持自动对焦和外部 css 表。
有什么想法吗?
【问题讨论】:
-
当然看起来像一个浏览器错误。当您使用外部 CSS 而不是内联时,没有理由会有所不同。在检查器中查看它似乎应该应用规则,并且 DOM 上的有效性状态设置正确。
-
目前应该使用哪些其他浏览器?
-
如果您在元素检查器中禁用并立即启用此 :invalid 样式并切换回页面(如果您愿意,可以关闭元素检查器)然后它现在可以工作了!所以看起来 something 最初并没有被触发?!
-
同意它看起来像一个浏览器错误。向 chromium 项目提交错误报告! (或检查他们是否已经为此问题打开了错误)