参考视频:【极客学院】Web前端开发教学 - 第一部分:H5+CSS+JS
参考文档:HTML 教程 W3school
必须定义文档类型(DTD)和你的名字空间
所有标签均要小写,合理嵌套,关闭,ID不能重复
标签属性要有值,属性值要加双引号且不能为空
图片一定要加alt属性
表格标签不准使用height属性,可以使用width属性(但单元格可以使用)
禁止使用标签
链接不准使用target属性
body form blockquote仅能包含块状元素
文本 图像 链接等内联元素不允许直接裸露在body中,必须被p或者div等块状元素包含
内链元素不能包含块状元素
注释中禁止使用"-----"
所用特殊符号用编码表示(在DW代码里"&" 会自动引用)
1、标签不再区分大小写
2、元素可以省略结束标签
(1)空元素语法的元素:area、base、br、col、command、embed、hr、img、input、keygen、link、mata、param、source、wbr
(2)可以省略结束标签的元素:colgroup、dt、dd、li、optgroup、p、rt、rp、thread、tbody、tfoot、tr、td、th
(3)可以全部省略标签的元素:html、head、body、tbody
3、允许省略属性值的属性
4、允许属性值不使用引号
5、添加了布尔值,类似checked,selected
参考文档:HTML5新增的标签和废除的标签
参考文档:html5新增及废除属性
section、article、aside、header、hgroup、footer、nav、figure
video、audio、embed、mark、progress、meter、time、ruby、rt、rp、wbr、convas、command、details、datagrid、keygen、output、source、menu
email、url、number、range、Date Pickers
能使用CSS替代的元素:basefont、big、center、font、s、tt、u等
不再使用frame框架
只有部分浏览器支持的元素
其他被废除的元素
表单相关的属性
链接相关的属性
其他属性
删除了一些可以用css代替的属性,多余属性和其他属性。
布尔类型,有true
和false
两种状态。
用来表示是否允许编辑内容。
继承:如未指定状态,则由父级/继承决定。
<ul contenteditable="true">
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
<ul contenteditable>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
同样,也可以是空字符串contenteditable=""
。
布尔类型,有on
和off
两种状态。
只允许在js脚本中使用。
用来表示整个页面是否可编辑。
布尔类型。
使浏览器不渲染(内容不可见)。
<ul hidden>
<li>1</li>
<li>2</li>
<li>3</li>
</ul>
布尔类型,有true
和false
两种状态。
用于输入框的拼写检查。
<input type="text" spellcheck="true">
int值,一般取正数。
使用tab建遍历,用于指定遍历过程中第几个被访问到。
主要用于链接和表单类型。
也可以给原本不能获取tab定位的元素添加tabindex
,来使用tab访问。比如列表。
<a href="index.html" tabindex="2">1</a><br/>
<a href="index.html" tabindex="3">2</a><br/>
<a href="index.html" tabindex="1">3</a><br/>
代表文档。
可以嵌套使用。
可以用来表示插件。
<article>
<h1>标题</h1>
<p>内容</p>
</article>
<article>
<h1>标题</h1>
<p>内容</p>
<article>
<h2>标题2</h2>
<p>内容2</p>
</article>
</article>
插件嵌入:
<body>
当前页面
<article>
<object>
<embed src="#" width="200" height="400">
</object>
</article>
</body>
其中#
指的是当前页面的链接。
用于页面内容分块,由内容和标题
组成。
section
并非普通容器元素,需要定义样式和脚本行为时仍然建议用div
。
<section>
<h1>标题</h1>
<p>内容</p>
</section>
article
嵌套使用: <article>
<h1>标题1</h1>
<p>内容1</p>
<section>
<h2>标题2</h2>
<p>内容2</p>
</section>
<section>
<h3>标题3</h3>
<p>内容3</p>
</section>
</article>
<section>
<h1>标题1</h1>
<p>内容1</p>
<article>
<h2>标题2</h2>
<p>内容2</p>
</article>
<article>
<h3>标题3</h3>
<p>内容3</p>
</article>
</section>
section
强调分块,article
强调独立性,article
可以看作一种特殊的section
。
独立完整的内容使用article
,分块使用section
。
用作页面导航的连接组。
主要应用于:传统导航条,侧边栏导航,页内导航,翻页操作。
<nav>
<ol>
<li>
<a href="index.html">1</a>
</li>
<li>
<a href="index.html">2</a>
</li>
</ol>
</nav>
表示附属信息部分,引用、侧边栏、广告等。
<aside>
<p>内容</p>
</aside>
<time datetime="2020-07-03">time</time>
<time datetime="2020-07-03T18:14">time</time>
<time datetime="2020-07-03T18:14Z">time</time>
<time datetime="2020-07-03T18:14+01:00">time</time>
T
是分隔符,Z
是UTC标准时间,+
时差。
微格式(microformats):是结构化数据的开放标准。是包含数据的结构化的XHTML代码块的定义格式,由于是XHTML代码块,所以很适合人类阅读,由于是结构化的,又很容易被机器处理,很容易和外部进行数据通信。
<article>
<time datetime="2020-07-03" pubdate></time>
</article>
pubdate 属性指示
元素中的日期 / 时间是文档(或最近的前辈
元素)的发布日期。
目前所有主流浏览器都不支持
标签。
用于页面逻辑,数量不限。
可以在整个页面使用,也可以在单个区域内使用。
<header>头部</header>
<footer>尾部</footer>
div
写法: <div class="footer">
<p>内容</p>
</div>
将h1
到h6
分组。
<hgroup>
<h1>h1</h1>
<h2>h2</h2>
</hgroup>
联系信息。
一般出现在底部。
<address>
<p>内容</p>
</address>
<form id="t1">
<input type="text" name="s1" value="v1">
</form>
<textarea form="t1">
</textarea>
通过form
属性指向先前的表单域id
,表示当前从属于哪个表单域。
可以在表单区域外创建任何表单内容。
对应旧式form
的action
与method
属性。
action
与method
:<form action="index.html" method="post">
<input type="submit">
</form>
formaction
与formmethod
:<form>
<input type="submit" formaction="index.html" formmethod="post">
</form>
formaction
同时解决了先前一个表单只能提交一次的问题,现在可以利用formaction
提交到多个网页。
formaction
提交: <form>
<input type="submit" formaction="a.html">
<input type="submit" formaction="b.html">
<input type="submit" formaction="c.html">
</form>
对应旧式form
的enctype
属性,用于指定编码。
<form enctype="text/plain">
<input type="submit">
</form>
<form>
<input type="submit" formenctype="text/plain">
</form>
取值 | 结果 |
---|---|
application/x-www-form-urlencoded | 在发送前编码所有字符(默认) |
multipart/form-data | 不对字符编码。在使用包含文件上传控件的表单时,必须使用该值。 |
text/plain | 空格转换为 “+” 加号,但不对特殊字符编码。 |
对应a链接的target
属性,用于指定打开跳转界面。
和formaction
结合使用。
<form>
<input type="submit" formtarget="_blank" formaction="a.html">
<input type="submit" formtarget="_self" formaction="b.html">
<input type="submit" formtarget="_parent" formaction="c.html">
</form>
类似布尔类型,用于指定刚打开Web时自动获得焦点的表单控件。
<form>
<input type="submit">
<input type="submit" autofocus>
</form>
类似布尔类型,应用于输入,当输入为空时禁止提交。
<form>
<input type="text" required>
<input type="submit">
</form>
参考文档:HTML 标签
参考文档:使用labels属性有什么优势吗?
HTML5 中的新属性。 属性值描述for id
规定label
绑定到哪个表单元素。
<form>
<label for="male">Male</label>
<input type="radio" name="sex" id="male" />
<br />
<label for="female">Female</label>
<input type="radio" name="sex" id="female" />
</form>
label 元素不会向用户呈现任何特殊效果。不过,它为鼠标用户改进了可用性。如果您在 label 元素内点击文本,就会触发此控件。就是说,当用户选择该标签时,浏览器就会自动将焦点转到和标签相关的表单控件上。
标签的 for 属性应当与相关元素的 id 属性相同。
参考文档:HTML5新标签control属性
在HTML5中,可以在标签内部放置一个表单元素,并通过该标签的
control
属性来访问该表单的属性。
文本框未处于输入状态时,显示的输入提示。
<form>
<input type="text" placeholder="请输入">
</form>
<form>
<input type="text" name="input1" list="A">
<datalist id="A" style="display: none">
<option value="1">选择1</option>
<option value="2">选择2</option>
</datalist>
</form>
通过指定list
的值,对应到一个datalist
(同样是HTML5新增)中,提供选择功能。
布尔属性,on
和off
。
自动完成功能。
<form>
<input type="text" autocomplete="on">
</form>
将属性值设置为某个格式的正则表达式,提交时检查。
<form>
<!--只允许大写字母 长度为3-->
<input pattern="[A-Z]{3}">
<input type="submit">
</form>
参考文档:文本框的SelectionDirection属性
针对input
和textarea
元素。
选取文字时,可以用此属性来获得用户的选取方向。
正向选取时为forward
,反向选取时为backward
。
参考文档:HTML5中indeterminate属性
使用JS脚本,指定复选框第三种状态(除“选取”、“未选取”)“尚未明确是否选取”。
<form>
<input type="image" src="myjpg.jpg" width="50" height="50">
</form>
指定提交图片的长和宽。