HTML知识梳理

昨晚和豆豆聊起工作, 她说白天的代码遇到了一些坑,都是一些简单的、基础的东西,因为不熟悉而出现问题,以为是新知识,其实都是老玩意儿。反省自己,何尝不是这样。前端知识,在大学课堂上,老师是不会教的,毕竟时间宝贵,只教硬课。我又是个马虎的人,自学过程中,疏漏在所难免,尽管已经写了几版官网,N多小项目页面,仍有很多欠缺。因此,在这篇日志里,把前端html,css的基础知识再系统的梳理一遍,把此前模糊的、易错的,都写在这里,且学而时习之,常来翻阅。

(文章脉路、结构不会很标准,按我看到的点信手所写。)

HTML

①html的语义化


这篇太长了,另开一篇。

②HTML5的新标签


对H5新标签的梳理及我自己的理解。有很多还不太懂,认识很浅。


<article></article>
一个文章内容的标签,让DOM结构更清楚,意义article的内容独立于页面其余部分
<aside></aside>
可用于页面侧栏。定义其所处内容之外的内容。(不懂)
<audio></audio>

感觉是一个使用频率还可以的标签,比较好用的播放音频
ep:
<audio src="/i/horse.ogg" controls="controls"> Your browser does not support the audio element. </audio>

同时被赋予了一些新属性:autoplay\controls\loop\muted\preload;
有些微信公众号的页面的音频会autoplay,太不为用户考虑了,万一人家上班时候打开,老板在旁边听到多尴尬!
<bdi></bdi>

又一个让人不明所以的标签。
把用户名从周围的文本方向设置中隔离出来。(wtf?)
<canvas></canvas>

一个非常棒的标签。因为我用过,知道她的美(蜜汁微笑)。
顾名思义,canvas单词的意思是画布,这个标签就是用来作画的,画笔是JS,化成之后,能够以 .png 或 .jpg 格式保存结果图像(不同于SVG)。用法不再赘述。
<command></command>

没有浏览器支持这个标签。呵呵。仿佛没有女朋友的屌丝,对天怒吼:我要,这铁棒有何用?

<datalist></datalist>

配合input使用,用input的lish属性来绑定。
ep:
<input id="myCar" list="cars" /> <datalist id="cars"> <option value="BMW"> <option value="Ford"> <option value="Volvo"> </datalist>

datalist 及其选项不会被显示出来,它仅仅是合法的输入值列表。
<dialog></dialog>

定义对话框。支持的浏览器不多,待完善。
<embed></embed>

这个标签有意思了,读出来,不由的让我联想到76人队的大帝Joel Embiid,哈哈哈。Trust the process!
标签定义嵌入的内容,比如插件。
<figure></figure>

figure标签规定独立的流内容(图像、图表、照片、代码等等)。
figure 元素的内容应该与主内容相关,但如果被删除,则不应对文档流产生影响。
用于插图。
<figcaption></figcaption>

figure的标题。

<footer></footer>
页脚
<header></header>
页眉
其实H5很多新标签都是顺html语义化趋势的而生。footer、header最明显。
还有,
<nav></nav>

<nav>标签定义导航链接的部分。
<keygen></keygen>
此标签规定用于表单的密钥对生成器字段。
当提交表单时,私钥存储在本地,公钥发送到服务器。
除了IE,都支持。
<mark></mark>
用于突出显示文本内容。
会直接给标签内背景上个色。挺2。
<meter></meter>

meter标签
progress标签
比较实用的标签,和<progress value="" max=""></progress>
一起看。
<meter>
标签定义已知范围或分数值内的标量测量。也被称为 gauge(尺度)。
例子:磁盘用量、查询结果的相关性,等等。
注释:meter 标签不应用于指示进度(在进度条中)。如果标记进度条,请使用 progress 标签。
没有这种标签时,写这种效果会很烦。

<output></output>

output标签定义不同类型的输出,比如脚本的输出。
ep:执行计算然后在 元素中显示结果:
<form oninput="x.value=parseInt(a.value)+parseInt(b.value)">0 <input type="range" id="a" value="50">100 +<input type="number" id="b" value="50"> =<output name="x" for="a b"></output> </form>


<rp></rp>

rp标签在 ruby 注释中使用,以定义不支持 ruby 元素的浏览器所显示的内容。(用处不大)
<rt></rt>

rt 标签定义字符(中文注音或字符)的解释或发音。
ruby 标签定义 ruby 注释(中文注音或字符)。
在东亚使用,显示的是东亚字符的发音。
<ruby><rp><rt>标签一同使。

<section></section>

section 标签定义文档中的节(section、区段)。比如章节、页眉、页脚或文档中的其他部分。同样是语义化的产物。

<source>标签为媒介元素(比如 video和 audio)定义媒介资源。
source标签允许您规定可替换的视频/音频文件供浏览器根据它对媒体类型或者编解码器的支持进行选择。
(有两份源文件时,浏览器选择自己支持的)

<summary></summary>

summary 标签包含 details 元素的标题,”details” 元素用于描述有关文档或文档片段的详细信息。
ep:<details> <summary>HTML 5</summary> This document teaches you everything you have to learn about HTML 5. </details>

这个标签很有用,details 的内容可以点击下拉显示,原本这种效果要写一会儿,挺繁琐。
但是只有chrome和safari支持这个标签,so,farewell!
<time></time>
定义时间和日期
为了搜索引擎而生的标签,没啥用。
<track kind="" src="" srclang="">

播放带有字幕的视频:
这个标签专门放字幕的,有趣。浏览器基本都不支持。
<video></video>
视频标签。

<wbr>
Word Break Opportunity (wbr) 规定在文本中的何处适合添加换行符。
提示:如果单词太长,或者您担心浏览器会在错误的位置换行,那么您可以使用<wbr>元素来添加 Word Break Opportunity(单词换行时机)。IE不支持,别的都行。这个实用。


照着W3C的列表过了一遍,应该是所有的了。


③input的一点补充

<input type="reset" name="">

input的重置类型: 定义重置按钮。重置按钮会清除form中的所有数据。

<input type="hidden" name="">

input的hidden类型:
可以利用其value在某些特定场景下传一些参数。(我自己的脑洞,未必方便)