html文档显示问题,【Web前端问题】关于HTML文档<head>内放显示元素的问题

有下面这样一段代码

程序处理中, 请稍候...

var wait = document.getElementById("wait");

if(wait) {

alert("wait 元素存在!");

wait.style.visibility="visible";

}

请问为啥网页一直可以显示div?而且dom树中 div 是在 body 内的,这是怎么回事儿?

alert也是一直弹出的,js寻找id为wait的 div 时,div 确实存在在 head 里面,但是它明明在 head 里面啊!怎么会跑到 body 里面去了呢?

假如说是浏览器把此 div 放进 body 里面了,是在js执行之前放进去的还是执行之后放进去的?

很纠结的一个问题,请各位解答下,非常感谢。

回答:

为啥网页一直可以显示div:是因为js修改了visibility属性

这个涉及到浏览器工作原理:

下面是渲染引擎在取得内容之后的基本流程:

解析html以构建dom树 -> 构建render树 -> 布局render树 -> 绘制render树

这种情况下,应该是浏览器在解析HTML时进行了纠错,然后生成正确的DOM树

这里有一篇很长的文章

回答:

这个问题一条一条的回答。

确切的说,div#wait 没有在 body 里面,这是很明显的啊。但是……

但是现在的浏览器很智能(很变态),head 里面只能放置固定的几个标签(这个在 w3 规范定义的),当 div 进入 head 时,浏览器自动将 div 放入到 body 里面。(类似的特性还有标签自动关闭,标签拼写错误等)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值