<table>
<tr align="center">
<td>文字</td>
<td><img src="image/1.png" width="90" height="90" alt=""></td>
</tr>
</table>
这样写,是可以保证图片和文字同派且文字与图片是居中显示的,而不是文字在图片下方
DOM文档通常加载的步骤:
1.解析HTML结构。
3.解析并执行脚本代码。
4.DOM树构建完成。
//DOMContentLoaded
5.加载图片等外部资源。
6.页面加载完毕。
//load顺序是这样,但很多时候几个步骤是同时发生的。
在这里梳理一下完整流程下的各种细节:
由于浏览器采用至上而下的方式解析,所以会先解析html,直到遇到外部样式和外部脚本。这时会阻塞浏览器的
解析,外部样式和外部脚本(在没有async、defer属性下)会并行加载,但是外部样式会阻塞外部脚本的执行。
即:html解析->外部样式、脚本加载->外部样式执行->外部脚本执行->html继续解析
情况一:如果是动态脚本(即内联脚本)则不受样式影响,在解析到它时会执行。
情况二:外部样式后续外部脚本含有async属性(IE下为defer),外部样式不会阻塞该脚本的加载与执行
(defer 会按照顺序在 DOMContentLoaded 前按照页面出现顺序依次执行,async 则是下载完立即执行)
在外部样式执行完毕后,css附着于DOM,创建了一个渲染树(渲染树是一些被渲染对象的集)。每个渲染对象都
包含了与之对应的计算过样式的DOM对象,对于每个渲染元素来说,位置都经过计算,所以这里被叫做“布局”。然
后将“布局”显示在浏览器窗口,称之为“绘制”。
接着脚本的执行完毕后,DOM树构建完成。这时,可以触发DOMContentLoaded事件。
DOMContentLoaded事件的触发条件是:在所有的DOM全部加载完毕并且JS加载执行后触发。
情况一:如果脚本是动态加载,则不会影响DOMContentLoaded时间的触发
浏览器会等css加载完成后再加载图片,因为不确定图片的样式会如何。
要点一:CSS样式表会阻塞图片的加载,如果想让图片尽快加载,就不要给图片使用样式,比如宽高采用标签属性即可。
要点二:脚本不会阻塞图片的加载
最后页面加载完成,页面load
加载顺序一般是从上到下的顺序加载,各个浏览器的实现其实也不完全相同,有的是进行并行加载,分配的进程数量也不同。如果是要控制显示顺序的话,可以在html里先将所有的div设置成隐藏,然后在js里给document的加载完成事件写入自己想要的显示顺序,既使用延时来去掉div的隐藏属性。
加载顺序这个改变不了,因为各个浏览器的实现加载的方法是不同的,而且是非常复杂的。自己只能控制自己写的代码,仔细检查,不让它出错。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)