HTML概述

172 阅读2分钟

HTML发展至今,已经有一百多个标签了,标签内的属性更是多的不得了。但是在我们的平时开发中,却只是使用了其中很少的一部分,大部分的标签及属性,我们根本没用到,这是为什么呢?

标签从何而来?

HTML5以前的标签本来没有那么多,只是提供了满足日常开发的一些标签。但是THML5标准给我们新增了很多标签,它这么做的目的只有一个,那就是语义化。以前的开发者使用HTML标签的习惯是根据元素的样式去选择元素,这让HTML官方很不满意,于是提出了HTML元素的语义化方案。语义化规定了每个HTML元素都有自己的含义,在开发中应该根据元素含义选择元素,而不是根据样式去选择,元素的样式应该交给css去统一处理,这样就多出了许多具有特殊含义的语义化标签。

标签的分类

这些标签元素根据其使用的频率,做成一张元素周期表,按照它们的语义可以划分成这样几类:根元素、元数据脚本、文本语义、分组内容、表单、文档 块、表格数据、互动元素、嵌入内容

元素周期表.jpg

了解了语义化之后,我们再来回答开头提出的问题:为什么大部分的语义化标签,我们根本没用到?这是因为在国内,我们并不太重视语义化,在平常的开发中,我们更重视样式而不是含义,于是90%的html元素我们都可以使用div、span这样的元素代替。

标签的属性

此外,HTML中每个标签都有属性,有些属性在所有的标签中都可使用,叫全局属性;有些属性是部分标签专有,叫个体属性;还有一个比较特殊的属性,专门用来处理事件的,叫事件处理属性

全局属性有这些:accesskey、autocapitalize、autofocus、class、contenteditable、data-*、dir、draggable、enterkeyhint、exportparts、hidden、id、inert、inputmode、is、itemid、itemprop、itemref、itemscope、itemtype、lang、nonce、part、prpover、slot、spellcheck、style、tabindex、title、translate、virtualkeyboardpolicy

个体属性有这些:autocomplete、capture、crossorigin、dirname、disabled、checked、elementtiming、for、max、maxlength、min、minlength、multiple、pattern、placeholder、readonly、rel、required、size、step、type、 types、width、height、src、href、nohref、name、value、target、autofocus、form、selected、manifest、xmlns、profile、content、http-equiv、media、sizes、async、charset、defer、download、datetime、clear、align、reversed、start、high、low、optimum、alt、formaction、formenctype、formmethod、formnovalidate、formtarget、list、cols、rows、wrap、accept-charset、action、enctype、method、novalidate、label、span、border、colspan、headers、rowspan、scope、open、ismap、usemap、coords、shape、id、data、sandbox、seamless、srcdoc、default、kind、srclang、autoplay、controls、loop、muted、preload、poster、accept

事件处理属性有这些:onauxclick、onblur、oncancel、oncanplay、oncanplaythrough、onchange、onclick、onclose、oncontextmenu、oncuechange、ondblclick、ondrag、ondragend、ondragenter、ondragexit、ondragleave、ondragover、ondragstart、ondrop、ondurationchange、onemptied、onended、onerror、onfocus、oninput、oninvalid、onkeydown、onkeypress、onkeyup、onload、onloadeddata、onloadedmetadata、onloadend、onloadstart、onmousedown、onmouseenter、onmouseleave、onmousemove、onmouseout、onmouseover、onmouseup、onwheel、onpause、onplay、onplaying、onprogress、onratechange、onreset、onresize、onscroll、onseeeked、onseeking、onselect、onstalled、onsubmit、onsuspend、ontimeupdate、ontoggle、onvolumechange、onwaiting、onabort、onsubmit、webglcontextcreationerror、webglcontextlost、webglcontextrestored