HTML基础知识

这块内容分成下面5个部分:1.HTML常见元素和理解。2.HTML版本。3.HTML元素分类。4.HTML元素的嵌套关系。5.HTML元素的默认样式和定制化。

1.HTML常见元素:head区的元素:meta 、title 、style、link、script、base等,这类元素不会在页面上进行显示,表示与页面相关资源和描述;body区的元素:div/section/article/aside/header/footer、p、span/em/strong、table/thead/tbody/tr/td、ul/ol/li/dl/dt/dd、a、form/input/select/textarea/button等,这类元素显示在页面上,所以丰富一些。 比如:

<meta charset="utf-8">表示我们的文件采用什么样子的字符集,使用哪种编码的字符。

<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1.0,user-scalable=no"视口(手机和电脑屏幕)初始缩放,最大缩放,是否可以缩放,适配移动端的宽度的第一步。

<base href="/">指定一个基础路径,所以路径都以它我基础路径。

HTML重要属性:a[href,target]、img[src,alt]、table td[colspan,rowspan]、form[target,method,enctype]、input[type,value]、button[type]、select>option[value]、label[for]。

如果用ajax提交请求,还是否有必要用form元素,答案是建议的,因为首先我们可以利用表单中submit、reset的特性来提交和重置表单;同时在jquery中serialize就可以整体提取表单的用法我们可以利用;可以和框架或验证组件结合进行表单验证;此外对用户来说浏览器会提供一些与form相关的功能,比如密码管理工具,帮助记住密码等。所以只要涉及到表单验证,所以即使你不用form的原生提交,还是建议加上form。

如何理解HTML?HTML到底是什么,如何去理解它。

HTML“文档”;描述文档的“结构”;有区块和大纲。HTML5 Outliner(H5o)大纲算法工具(from W3C),来查看一个页面的大纲。能够让机器和其他引擎更好的理解文档,也方便他人理解,不要一直用div,所以html标签的语义也是很重要的。如下图,用h5o查看淘宝网大纲:

HTML版本问题:

HTML/4.01(SGML) 、XHTML(XML)、  HTML5。

对于上面三种版本的格式书写,都有官方文档,同时W3C提供了网站:https://validator.w3.org,来上传我们的文件,然后出来检查的结果。会写出错误的个数以及错误的原因等。同样的代码用不同的标准来写,错误不一样。

下面准备一个XHTML的文件,进行验证:


相同同的内容,在HTML5标准:

建议大家在写完HTML5,都去验证一下。

关于HTML5新增内容:

HTML5新增的区块标签:section、article、nav、aside。它们除aside外会反应的大纲视图中,aside表示不太重要的内容,比如广告。

表单增强:日期、时间、搜索,表单验证(required,min,max,正则等),Placeholder自动聚焦。

HTML5新增语义:header/footer 头尾;section/article区域(div是没有语义的);nav导航;aside侧边栏,放不重要的内容,如友情链接等;em/strong(斜体/粗体)强调;i icon 图标。

HTML5其他新增内容,是关于API的,如本地存储,定位等等。

HTML元素的分类:

按照默认样式分:块级 block(默认方形会占据整行),行内 inline(内联元素),inline-block(对外像inline,对内又是block,有自己的形状,尺寸等,不多,大多是表单元素,比如select,input等)。下面用一个例子简单说明下这些区别:

test.html

如上图,select是一个inline-block元素,对外是与其他元素处于一行,对内可设置宽高,呈现方形,而em,strong是inline,不可以设置宽高。

HTML5中按照默认内容分:内容模型,如flow(文档流中元素,meta元素如base,title不在文档流中),interactive(和用户有交互的元素),heading,sectioning(分区的元素等),embeded(嵌入其它资源,video,audio,canvas等),phrasing(如em,strong等),metadata。

"https://www.w3.org/TR/html5/dom.html#phrasing-content"有一个动态的图:

HTML元素的嵌套关系:

块级元素可以包含行内元素;块级元素不一定能包含块级元素;行内元素一般不能包含块级元素。

比如p不能包含div,行内元素a元素可以包含块级元素,但是为什么呢,具体嵌套关系是w3c中有规定的,上面的这三个说法是不严谨的。

在"https://www.w3.org/TR/html5/textlevel-semantics.html#the-a-element"中查看元素的Content model,

关于Transparent,点击进去,官方说明如下‘Some elements are described as transparent; they have "transparent" in the description of their content model. The content model of a transparent element is derived from the content model of its parent element: the elements required in the part of the content model that is "transparent" are the same elements as required in the part of the content model of the parent of the transparent element in which the transparent element finds itself.’

简单理解就是,Transparent透明的内容模型,在计算内容模型,其嵌套合法性的时候,本身不参加计算,是否合法取决于它外面的元素。

下面举一个简单的例子:

test.html

用浏览器打开该页面,发现任然显示了错误,没有报错,但是我们打开Elements进行查看,会有一个重大发现:

此时右边的文档结构已经发生了改变,这是没有预料到的,这是因为浏览器的容错机制,帮助我们去尽可能正确的容错,可是这种隐蔽的容错是开发人员不知道的,开发的时候不可控的,所以我们要避免出现这样的情况,所以每次我们还是到上文提出的网站'https://validator.w3.org'来检验你的html。同时也说明,p里面不可以包含div(a是不参与计算嵌套合法性),我们打开官网查看一下p的Content model。

Phrasing content有哪些呢,在动态图中可以粗略看下,也可以点击上图Phrasing content。

HTML元素默认样式:

默认样式的意义:会给出一些元素一些有意义的样式;默认样式带来的问题:有些默认样式是超过我们预期之外,还有各个浏览器中默认样式不尽相同。下面举个例子来看看默认样式:

这里没有增加任何样式,但是仍然有样式显示,当你想查明原因时候,请从html标签开始查起,看样式为什么而来。比如:

html元素样式如下,发现html无默认样式,

body默认元素样式如下,发现body有8个像素的margin,是user agent stylesheet:

ul元素默认样式如下,可以看出有margin(黄色),有padding(绿色)。

在浏览器中更改样式如下,padding设置为0,没有了上图中的绿色部分,同时设置list-style-position:inside,表示list中点包括在li元素内,关于圆点的样式还有list-style-image,list-style-type属性可以设置:

css reset:

如何处理reset浏览器中的默认样式,去除所有的默认样式,或者使各个浏览器中的默认样式尽量保持一致,如:“https://meyerweb.com/eric/tools/css/reset/”,"https://yuilibrary.com/yui/docs/cssreset/",还有一种如下四行的reset css 方式(如果你不想去了解css reset也可以加上这个简短的css reset),

上面三种都是为了干掉浏览器的默认样式,还有一种思路是尽可能使各个浏览器默认样式保持一致,尝试在各个浏览器中去做修正,如"https://necolas.github.io/normalize.css/",Normalize.css定义是,“A modern, HTML5-ready alternative to CSS resets.Normalize.css makes browsers render all elements more consistently and in line with modern standards. It precisely targets only the styles that need normalizing.”

1.doctype的意义是什么。

让浏览器以标准模式渲染;让浏览器知道元素的合法性。

2.HTML XHTML HTML5的关系。

HTML属于SGML;XHTML属于XML,是HTML进行XML严格化的结果;HTML5不属于SGML或XML,比XHTML宽松。

3.HTML5有什么变化。

新的语义化元素,header article footer section nav 等;表单增强(新的元素和表单验证);新的API(离线、音视频、图形、实时通信、本地存储、设备能力);分类和嵌套变更(如a元素的嵌套的合法性)。

4.em和i有什么区别。

em是语义化的标签,表强调;i是纯样式的标签,表斜体;HTML5中i不推荐使用,一般用作图标,代表icon的意思。

5.语义化的意义是什么。

开发者容易理解;机器容易理解结构(搜索、读屏软件);有助于SEO(搜索);semantic microdata(另外一种规范,会做更加语义化的标记,帮助搜索)。

6.哪些元素可以自闭合。

表单元素input;图片img;br hr;meta link,对于自闭合元素在html5中可以不加斜杠,但是在xhtml中一定要加的。

7.HTML和DOM的关系。

HTML是‘死’的;DOM是经过浏览器HTML解析而来,呈现出来页面,是活的;JS可以维护DOM。

8.property和attribute的区别。

property是特性,attribute是属性,attribute是‘死’的,property是‘活’。首次渲染,首先将attribute赋值给property。

9.form的作用有哪些。

直接提交表单;使用submit/reset按钮;便于浏览器保存表单;第三方库可以整体提取值;第三方库可以进行表单验证。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 204,921评论 6 478
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 87,635评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 151,393评论 0 338
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,836评论 1 277
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,833评论 5 368
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,685评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,043评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,694评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 42,671评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,670评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,779评论 1 332
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,424评论 4 321
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,027评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,984评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,214评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,108评论 2 351
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,517评论 2 343

推荐阅读更多精彩内容

  • 公司最近人手极度空缺,领导一声令下,让我和另一个 Android 小伙去支援 Java 组开发。秉承着“一块砖”的...
    GinkWang阅读 741评论 0 15
  • 知识点导航: 一、HTML初步认识<p> 什么是纯文本文件txt 只能保存文本内容的文件叫做纯文本文件,即txt文...
    lanvy阅读 877评论 0 1
  • 标记语言介绍 在书面自然语言中为了表示某些信息而加入一些标记,这种书面自然语言就被称为标记语言。 <标题>什么是标...
    亮亮叔家的小笔笔阅读 278评论 0 1
  • HTML 5 HTML5概述 因特网上的信息是以网页的形式展示给用户的,因此网页是网络信息传递的载体。网页文件是用...
    阿啊阿吖丁阅读 3,828评论 0 0
  • 第一部分 HTML&CSS整理答案 1. 什么是HTML5? 答:HTML5是最新的HTML标准。 注意:讲述HT...
    kismetajun阅读 27,421评论 1 45