美文网首页
关于HTML的那些事儿

关于HTML的那些事儿

作者: 乌龟小姐v | 来源:发表于2020-01-02 14:33 被阅读0次

一、html语义化

1、什么是语义化?

就是用合理的、正确的标签来展示内容,比如h1~h6定义标题。

2、好处
  • 易于用户阅读,样式丢失的时候能让页面呈现清晰的结构。
  • 有利于SEO,搜索引擎根据标签来确定上下文和各个关键字的权重。
  • 方便其他设备解析,如盲人阅读器根据语义渲染网页。
  • 有利于开发和维护,语义化更具可读性,代码更好维护,与CSS3关系更和谐。

二、为什么最好把CSS的<link>标签放在<head></head>之间?为什么最好把JS的<script>标签恰好放在</body>之前,有例外情况吗?

1、把<link>放在<head>中

把<link>标签放在<head></head>之间是规范要求的内容。此外,这种做法可以让页面逐步呈现,提高了用户体验。将样式表放在文档底部附近,会让许多浏览器(包括IE)不能逐步呈现页面。一些浏览器会阻止渲染,以避免在页面样式发生变化时,重新绘制页面中的元素。这种做法可以防止呈现给用户空白的页面或没有样式的内容。

2、把<script>标签恰好放在</body>之前

脚本在下载和执行期间会阻止HTML解析。把<script>标签放在底部,保证HTML首先完成解析,将页面尽早呈现给用户。

例外情况:当你的脚本里包含document.write()时。但是现在,document.write()不推荐使用。同时,将<script>标签放在底部,意味着浏览器不能开始下载脚本,直到整个文档(document) 被解析。也许,对此比较好的做法是,<script>使用defer属性,放在<head>中。
ps:defer 属性规定是否对脚本执行进行延迟,直到页面加载为止。

三、什么是渐进式渲染(progressive rendering)

渐进式渲染是用于提高网页性能(尤其是提高用户感知的加载速度),以尽快呈现页面的技术。

在以前互联网带宽较小的时期,这种技术更为普遍。如今,移动终端的盛行,而移动网络往往不稳定,渐进式渲染在现代前端开发中仍然有用武之地。

一些举例:

  • 图片懒加载——页面上的图片不会一次性全部加载。当用户滚动页面到图片的部分时,JavaScript将加载并显示图像。
  • 确定显示内容的优先级(分层次渲染)——为了尽快将页面呈现给用户,页面只包含基本的最少量的CSS、脚本和内容,然后可以使用延迟加载脚本或监听DOMContentLoaded/load事件加载其他资源和内容。
  • 异步加载HTML片段——当页面通过后台渲染时,把HTML拆分,通过异步请求,分块发送给浏览器。

四、viewport

1、字面意思为视图窗口,在移动web开发中使用。表示将设备浏览器宽度虚拟成一个特定的值(或计算得出),这样利于移动web站点跨设备显示效果基本一致。移动版的Safari浏览器最新引进了viewport这个meta tag,让网站开发者来控制viewport的大小和缩放,其他手机浏览器也基本支持。

在移动端浏览器当中,存在着两种视口,一种是可见视口(也就是我们说的设备大小),另一种是视窗视口(网页的宽度是多少)。 举个例子:如果我们的屏幕是320像素 * 480像素的大小(iPhone4),假设在浏览器中,320像素的屏幕宽度能够展示980像素宽度的内容。那么320像素的宽度就是可见视口的宽度,而能够显示的980像素的宽度就是视窗视口的宽度。

为了显示更多的内容,大多数的浏览器会把自己的视窗视口扩大,简易的理解,就是让原本320像素的屏幕宽度能够容下980像素甚至更宽的内容(将网页等比例缩小)。

2、Viewport属性值

  • width 设置layout viewport的宽度,为一个正整数,或字符串“width-device”
  • height 设置layout viewport 的高度,这个属性对我们并不重要,很少使用
  • initial-scale 设置页面的初始缩放值,为一个数字,可以带小数
  • minimum-scale 允许用户的最小缩放值,为一个数字,可以带小数
  • maximum-scale 允许用户的最大缩放值,为一个数字,可以带小数
  • user-scale 是否允许用户进行缩放,值为“no”或“yes”,no代表不允许,yes代表允许。
    这些属性可以同时使用,也可以单独使用或混合使用,多个属性同时使用时用逗号隔开就行了。

五、Reflow和Repaint

Reflow

当涉及到DOM节点的布局属性发生变化时,就会重新计算该属性,浏览器会重新描绘相应的元素,此过程叫Reflow(回流或重排)

Repaint

当影响DOM元素可见性的属性发生变化 (如 color) 时, 浏览器会重新描绘相应的元素, 此过程称为Repaint(重绘)。因此重排必然会引起重绘。

引起Repaint和Reflow的一些操作
  • 调整窗口大小
  • 字体大小
  • 样式表变动
  • 元素内容变化,尤其是输入控件
  • CSS伪类激活,在用户交互过程中发生
  • DOM操作,DOM元素增删、修改
  • width, clientWidth, scrollTop等布局宽高的计算
Repaint和Reflow是不可避免的,只能说对性能的影响减到最小,给出下面几条建议:
  • 避免逐条更改样式。建议集中修改样式,例如操作className。
  • 避免频繁操作DOM。创建一个documentFragment或div,在它上面应用所有DOM操作,最后添加到文档里。设置display:none的元素上操作,最后显示出来。
  • 避免频繁读取元素几何属性(例如scrollTop)。绝对定位具有复杂动画的元素。
  • 绝对定位使它脱离文档流,避免引起父元素及后续元素大量的回流

六、img中的alt和元素的title属性作用

  • img的alt属性
    如果无法显示图像,浏览器将显示alt指定的内容
    元素title属性
  • 在鼠标移到元素上时显示title的内容

href和src的区别

  • href
    href标识超文本引用,用在link和a等元素上,href是引用和页面关联,是在当前元素和引用资源之间建立联系
    若在文档中添加href ,浏览器会识别该文档为 CSS 文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用 link 方式加载 CSS,而不是使用 @import 方式。

  • src
    src表示引用资源,替换当前元素,用在img,script,iframe上,src是页面内容不可缺少的一部分。
    当浏览器解析到src ,会暂停其他资源的下载和处理(图片不会暂停其他资源下载和处理),直到将该资源加载、编译、执行完毕,图片和框架等也如此,类似于将所指向资源应用到当前内容。这也是为什么建议把 js 脚本放在底部而不是头部的原因。

浏览器的渲染过程

1、解析HTML生成DOM树
2、解析CSS生成CSSDOM树
3、将DOM树与CSSOM规则树合并在一起生成渲染树
4、遍历渲染树开始布局,计算每个节点的位置大小信息
5、将渲染树每个节点绘制到屏幕

为何会出现浏览器兼容问题

  • 同一产品,版本越老 bug 越多
  • 同一产品,版本越新,功能越多
  • 不同产品,不同标准,不同实现方式
处理兼容问题的思路

1、要不要做

  • 产品的角度(产品的受众、受众的浏览器比例、效果优先还是基本功能优先)
  • 成本的角度 (有无必要做某件事)
    2、做到什么程度
  • 让哪些浏览器支持哪些效果
    3、如何做
  • 根据兼容需求选择技术框架/库(jquery)
  • 根据兼容需求选择兼容工具(html5shiv.js、respond.js、css reset、normalize.css、Modernizr)
  • 条件注释、CSS Hack、js 能力检测做一些修补
  • 渐进增强(progressive enhancement): 针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验
  • 优雅降级 (graceful degradation): 一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。

doctype有什么用

doctype是一种标准通用标记语言的文档类型声明,目的是告诉标准通用标记语言解析器要使用什么样的文档类型定义(DTD)来解析文档。

声明是用来指示web浏览器关于页面使用哪个HTML版本进行编写的指令。 声明必须是HTML文档的第一行,位于html标签之前。

浏览器本身分为两种模式,一种是标准模式,一种是怪异模式,浏览器通过doctype来区分这两种模式,doctype在html中的作用就是触发浏览器的标准模式,如果html中省略了doctype,浏览器就会进入到Quirks模式的怪异状态,在这种模式下,有些样式会和标准模式存在差异,而html标准和dom标准值规定了标准模式下的行为,没有对怪异模式做出规定,因此不同浏览器在怪异模式下的处理也是不同的,所以一定要在html开头使用doctype。

iframe框架有那些优缺点

优点:
  • iframe能够原封不动的把嵌入的网页展现出来。
  • 如果有多个网页引用iframe,那么你只需要修改iframe的内容,就可以实现调用的每一个页面内容的更改,方便快捷。
  • 网页如果为了统一风格,头部和版本都是一样的,就可以写成一个页面,用iframe来嵌套,可以增加代码的可重用。
  • 如果遇到加载缓慢的第三方内容如图标和广告,这些问题可以由iframe来解决。
缺点:
  • 搜索引擎的爬虫程序无法解读这种页面
  • 框架结构中出现各种滚动条
  • 使用框架结构时,保证设置正确的导航链接。
  • iframe页面会增加服务器的http请求

相关文章

  • 关于HTML的那些事儿

    一、html语义化 1、什么是语义化? 就是用合理的、正确的标签来展示内容,比如h1~h6定义标题。 2、好处 易...

  • HTML那些事儿

    1、第一个需求 我的思考 最外层的是两个无序列表( 标签) 靠近最外层的分别是两个有序列表( 标签) 最里层的也是...

  • CSS选择器那些事儿

    关于选择器的那些事儿 1.class 和 ID的使用场景 class 对应具有相同样式的html元素使用,可重复使...

  • HTML5中关于标签的那些事儿

    1.标题标签:h1~h6 双标签 无默认属性 块级 我是h1 我是...

  • 关于计算机培训的那些事儿

    关于计算机培训的那些事儿 ...

  • 关于《关于那些事儿》

    关于《关于那些事儿》 创建这个专题,并没有什么目的性。关于这个专题,也没有什么分类、定义。 正如我对专题的描述,关...

  • 关于那些事儿

    关于爱,不要太爱自己,太爱自己会变的狭隘自私,令人生厌。也不要太爱人,太爱人容易迷失,也容易令人倍感负累。 关于钱...

  • html meta标签的那些事儿

    由HTML5规范文档可以知道,meta标签除了可以设置全局属性还可设置如下几个属性:1.name2.http-eq...

  • 那些关于节日的那些事儿

    临近年关,总感觉周围很多事情都在慢慢变得疏远和辛苦。 自己也变得情绪不可控,总想发脾气,孩子也不听话,自己也总是丢...

  • 关于你,关于那些事儿

    邂逅在2006年的那个秋天,今已十载。细数过往,我们故事的长短若用小说来度量,那一定可以书成一本长篇小说了。只是,...

网友评论

      本文标题:关于HTML的那些事儿

      本文链接:https://www.haomeiwen.com/subject/swunoctx.html