HTML骨架解析
在VSCode中按下“!”感叹号便可得到如下的html骨架,没有这些骨架浏览器便不能正常渲染,但是这些骨架分别代表什么含义呢?不急,我们一行一行的看。
1 <!DOCTYPE html>
2 <html lang="en">
3 <head>
4 <meta charset="UTF-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=edge">
6 <meta name="viewport" content="width=device-width, initial-scale=1.0">
7 <title>Document</title>
8 </head>
9 <body>
10
11 </body>
12 </html>
1、<!DOCTYPE html> 声明文档类型
第一行<!DOCTYPE html>是Document Type Definition,简称DTD,表示的是文档类型声明,它必须写在第一行,告诉浏览器这个文件是个什么类型的文件,应该按照什么版本进行渲染。
不同的版本有不同的DTD写法,如下表所示,目前流行的就是HTML5。如果文档不加DTD声明浏览器就会按照Quirks模式进行解析,可能会出现兼容性的问题,导致不同的浏览器渲染的画面不一致。
所以一定要加声明哦,前面的感叹号起的就是强调的作用。
HTML5 | <!DOCTYPE html> |
HTML 4.01 Strict | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> |
HTML 4.01 Transitional | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> |
HTML 4.01 Frameset | <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN" "http://www.w3.org/TR/html4/frameset.dtd"> |
XHTML 1.0 Strict | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
XHTML 1.0 Transitional | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" " http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
XHTML 1.0 Frameset | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd"> |
XHTML 1.1 | <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> |
2、<html lang="en"></html> 根部标签,语言类型设置
<html>是页面中最大的标签——根部标签。其中lang属性表示的是文档内容是用什么样的语言进行渲染。“en”表示的是英文,“zh-CN”表示的是中文,lang属性的作用如下所示:
- 设定不同语言的css样式或者字体
- 方便搜索引擎做精确的识别
- 让语法检查程序做语言识别
- 帮助翻译工具做识别
- 帮助网页阅读程序做识别
3、<head></head> 头部标签
<head>头部标签主要是对网页的内容进行配置:
(1)<meta charset="UTF-8">------设定字符编码的格式
meta元素可以提供有关页面的原信息,比如针对搜索引擎和更新频度的描述和关键字。其中的charset属性用来设置文档的字符编码格式,浏览器根据编码去解码对应的html的内容,以防止出现乱码的情况。常见的编码格式主要有ASCII码、GBK、Unicode、UTF-8、GB18030 / DBCS。前端常用的就是GBK和UTF-8。
(2)<meta http-equiv="X-UA-Compatible" content="IE=edge">-------设定浏览器的渲染模式
meta标签的http-equiv属性相当于文件头的作用,它向浏览器传递一些信息使界面能正确渲染,而X-UA-Compatible参数是IE8新加的一个设置,用来让IE8浏览器按照content设置的内核渲染方式进行界面渲染,从而解决部分兼容性的问题。IE=edge表示使用最高版本的IE内核进行渲染,比如你的电脑里有IE 6/7/8/9内核浏览器,它会强制使用IE9的内核进行渲染。关于X-UA-Compatible的用法详情可参考https://blog.csdn.net/weixin_30589127/article/details/84444776,https://blog.csdn.net/ccfxue/article/details/70739646这两篇文章。
http-equiv的语法格式是:<meta http-equiv="参数"content="参数变量值">;
其中有以下几种参数:
- content-Type:用来设置网页字符集,这个是html4的用法,所以不推荐使用
- Expires(期限):用于设置网页到期时间,一旦网页过期,必须到服务器上重新传输。用法:
<metahttp-equiv="expires"content="Fri,12Jan200118:18:18GMT">,注意必须使用GMT的时间格式
- Pragma(Cache模式):用于禁止浏览器从本地的缓存中调阅页面内容,设定后一旦离开网页就无法从cache中在调出。
用法:<metahttp-equiv="Pragma"content="no-cache">
- Refresh(刷新):自动刷新页面并指向新的页面。
用法:<metahttp-equiv="Refresh"content="2;URL=https://www.jb51.net">(2表示的是秒数)
- cache-control:请求和响应遵循的缓存机制,也就是清除缓存(在访问这个网站要重新下载)。在请求消息或响应消息中设置Cache-Control并不会修改另一个消息处理过程中的缓存处理过程。请求时的缓存指令包括no-cache、no-store、max-age、max-stale、min-fresh、only-if-cached。响应消息中的指令包括public、private、no-cache、no-store、no-transform、must-revalidate、proxy-revalidate、max-age。这些指定的含义如下:
Public | 指示响应可被任何缓存区缓存 |
Private | 指示对于单个用户的整个或部分响应消息,不能被共享缓存处理。这允许服务器仅仅描述当用户的部分响应消息,此响应消息对于其他用户的请求无效 |
no-cache | 指示请求或响应消息不能缓存 |
no-store | 用于防止重要的信息被无意的发布。在请求消息中发送将使得请求和响应消息都不使用缓存。 |
max-age | 指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应 |
min-fresh | 指示客户机可以接收响应时间小于当前时间加上指定时间的响应 |
max-stale | 指示客户机可以接收超出超时期间的响应消息。如果指定max-stale消息的值,那么客户机可以接收超出超时期指定值之内的响应消息。 |
(3)<meta name="viewport" content="width=device-width, initial-scale=1.0">---------视窗、视口大小设置
viewport就是设备的屏幕上用来显示我们的网页的那一块区域,只不过PC端和移动端的视口设置不同,PC端视口是浏览器窗口区域,而在移动端有三个不同的视口概念:布局视口、视觉视口、理想视口。详情可查看这篇文章关于这三个视口的总结如下:
- layout viewport(布局视口):PC端上的布局视口就是浏览器的宽度,而在移动端上为了让PC端设计的网页内容完全显示在屏幕中,此时的布局视口要远远大于移动设备屏幕的尺寸,不然内容会挤成一团出现错乱。
- visual viewport(视觉视口):用户正在看到的网页的区域,可通过缩放来查看网页内容。如果用户缩小网站,我们看到的网站区域将变大,此时视觉视口也会变大。同理,用户放大网站,我们能看到的网站区域将缩小,此时视觉视口也变小了。注意,不管用户如何缩放,都不会影响到布局视口的宽度。
- ideal viewport(理想视口):布局视口的一个理想尺寸,只有当布局视口的尺寸等于设备屏幕的尺寸时,才是理想视口。
width=device-width表示viewport的宽度等于设备的宽度,如果不这么设定那内容就会按照viewport的默认大小显示,可能就会出现滚动条。initial-scale表示设置web页面的初始缩放比例。设置为1.0表示显示未经缩放的web页面。
maximum-scale和minimum-scale用于设置用户对web页面缩放比例的限制。值的范围为0.25~10.0之间。user-scalable指定用户是否可以缩放视区,即缩放web页面的视图。值为yes时允许用户进行缩放,值为no时不允许缩放。
除此之外name属性还有其他的参数值,比如:
- keywords(关键字) 告诉搜索引擎,该网页的关键字
- description(网站内容描述) 用于告诉搜索引擎,你网站的主要内容。
- robots(定义搜索引擎爬虫的索引方式) robots用来告诉爬虫哪些页面需要索引,哪些页面不需要索引
- author(作者)
- generator(网页制作软件)
- copyright(版权)
(4)<title>Document</title>-----------定义文档的标题
浏览器会以特殊的方式来使用标题,并且通常把它放置在浏览器窗口的标题栏或状态栏上。同样,当把文档加入用户的链接列表或者收藏夹或书签列表时,标题将成为该文档链接的默认名称。一个好的标题对文档来说非常重要,最好起一个描述性强、实用性高,与上下问独立的标题,这样更吸引目标读者。
4、<body></body> 文档主体
body元素定义文档的主体,包含了文档的所有内容(文本、超链接、图像、列表等),这部分内容是用户可以看到的,是设计的核心部分。关于如何设计web解构,下期在分享了,这篇就讲到这里,希望对大家有所帮助。(* ̄︶ ̄)!
HTML骨架解析的更多相关文章
- Qt网络通信骨架解析,QtClient QtServer QtSerialPort
http://blog.csdn.net/Dr_Abel/article/details/52469134#t18
- [maven] 常用插件解析
参考资料:http://my.oschina.net/zh119893/blog/276090 我们都知道Maven本质上是一个插件框架,它的核心并不执行任何具体的构建任务,所有这些任务都交给插件来完 ...
- maven3实战之maven使用入门(使用archetype生成项目骨架)
maven3实战之maven使用入门(使用archetype生成项目骨架) ---------- maven提供了archetype以帮助我们快速勾勒出项目骨架.以Hello World为例,我们使用 ...
- 100+经典Java面试题及答案解析
面向对象编程(OOP) Java是一个支持并发.基于类和面向对象的计算机编程语言.下面列出了面向对象软件开发的优点: 代码开发模块化,更易维护和修改. 代码复用. 增强代码的可靠性和灵活性. 增加代码 ...
- Android开发之IPC进程间通信-AIDL介绍及实例解析
一.IPC进程间通信 IPC是进程间通信方法的统称,Linux IPC包括以下方法,Android的进程间通信主要采用是哪些方法呢? 1. 管道(Pipe)及有名管道(named pipe):管道可用 ...
- angularjs应用骨架(3)
好,继续上一章节我们继续聊聊angularjs骨架.开发任何一款优秀的应用都会面临一项非常困难的工作,那就是找到一种合适的方式方法把代码组织在合适的功能范围内.我们已经看过控制器的处理方式,它会提供一 ...
- Skinned Mesh原理解析和一个最简单的实现示例
Skinned Mesh 原理解析和一个最简单的实现示例 作者:n5 Email: happyfirecn##yahoo.com.cn Blog: http://blog.csdn.net/n5 ...
- Node 之 Express 学习笔记 第二篇 Express 4x 骨架详解
周末,没事就来公司加班继续研究一下Express ,这也许也是单身狗的生活吧. 1.目录结构: bin, 存放启动项目的脚本文件 node_modules, 项目所有依赖的库,以及存放 package ...
- Maven--多模块依赖实例解析(五)
<Maven--搭建开发环境(一)> <Maven--构建企业级仓库(二)> <Maven—几个需要补充的问题(三)> <Maven—生命周期和插件(四)&g ...
随机推荐
- k8s管理机密信息(12)
一.启动应用安全信息的保护 1.Secret介绍 应用启动过程中可能需要一些敏感信息,比如访问数据库的用户名密码或者秘钥.将这些信息直接保存在容器镜像中显然不妥,Kubernetes 提供的解决方案是 ...
- 串口1配合DMA接收不定长数据(空闲中断+DMA接收)
1.空闲中断和别的接收完成(一个字节)中断,发送完成(发送寄存器控)中断的一样是串口中断: 2.空闲中断是接收到一个数据以后,接收停顿超过一字节时间 认为桢收完,总线空闲中断是在检测到在接收数据后, ...
- .NET Worker Service 添加 Serilog 日志记录
前面我们了解了 .NET Worker Service 的入门知识[1] 和 如何优雅退出 Worker Service [2],今天我们接着介绍一下如何为 Worker Service 添加 Ser ...
- [leetcode] 875. 爱吃香蕉的珂珂(周赛)
875. 爱吃香蕉的珂珂 这题时间要求比较严格... 首先,将piles排序,然后二分查找. 总之,答案K肯定位于piles[?]piles[?+1]或者1piles[0]之间 所以我们先二分把?找到 ...
- clone() java 简单的复制
Java的复制有的 deepcopy 和 shapecopy 之分,这里简单的采用shapecopy 的 clone ( ) 方法, 但是指向的是同一个对象, 关于对象的问题,这里不做展开: / ...
- ARM CPU自动调度神经网络
ARM CPU自动调度神经网络 对特定设备和工作负载进行自动调度,对于获得最佳性能至关重要.通过RPC使用自动调度器为ARM CPU调度整个神经网络. 为了自动调度神经网络,将网络划分为小的子图,进行 ...
- GPU—加速数据科学工作流程
GPU-加速数据科学工作流程 GPU-ACCELERATE YOUR DATA SCIENCE WORKFLOWS 传统上,数据科学工作流程是缓慢而繁琐的,依赖于cpu来加载.过滤和操作数据,训练和部 ...
- springboot 集成 elk 日志收集功能
Lilishop 技术栈 官方公众号 & 开源不易,如有帮助请点Star 介绍 官网:https://pickmall.cn Lilishop 是一款Java开发,基于SpringBoot研发 ...
- MySQL笔记02(黑马)
DDL操作数据库.表 操作数据库:CRUD C(Create):创建 创建数据库: create database 数据库名称; 创建数据库,判断不存在,再创建: create database if ...
- thymeleaf——th:each、th:if的使用
一.th:each 作用:用于遍历controller层发送过来的集合. 例: Controller代码: @Controller public class HelloController { @Re ...