这是我的HTML:
<!DOCTYPE html>
<html>
<head>
<script>
function run(){
var div = document.createElement('div')
div.style.position = 'absolute'
div.style.left = 0
div.style.top = 0
div.onmouseover=function(){
alert('mo')
this.style.opacity = 0
}
div.style.width = 30
div.style.height = 30
div.style.backgroundColor = '#000'
document.body.appendChild(div)
}
onload = run
</script>
<title></title>
</head>
<body>
</body>
</html>
这个hmtl在quirks模式下运行正常。 但是,我知道我需要为html使用其他一些标签。
我想知道...... 1 - 我应该添加哪些其他标签,因此它在代码验证器中运行正常?
2 - 为什么我的javascript不能使用html5 doctype? (它在怪癖模式下正常工作)
谢谢:)
答案 0 :(得分:5)
您必须为高度和宽度指定units指示符。例如:cm
,mm
,in
,pt
,pc
,px
,em
,en
, ex
,ch
,rem
,vh
,vw
,vmin
或vmax
。
div.style.width = "30px";
div.style.height = "30px";
如果没有单位指示符,则您的值无效,div不占用页面空间。
此外,虽然JavaScript的其余部分在技术上是有效的,但在每个语句的末尾看到分号是很好的。但是,也许这只是我个人的偏好。
答案 1 :(得分:1)
我收到了3个警告。如果你测试html,我的div不会出现。 - Marcelo Noronha
要摆脱两个字符编码警告,您需要通过head
标记在meta
标记中声明字符编码。这样的一个例子如下(对于使用UTF-8):
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
...
</head>
您获得的第三个警告是因为W3验证器基本上警告您HTML5仍在进行中,因此您的验证结果将来可能会发生变化。
要显示div
(与HTML验证无关),请参阅gilly3关于为宽度和高度属性指定单位的答案。