HTML
作者:陆离马鹿
1.1 基本语法
使用标签
<!doctype html> <!-- HTML 版本和渲染模式 -->
<html> <!-- 根标签 -->
    <head> <!-- 元数据 -->
        <meta charset="UTF-8">
        <title> 页面标题 </title>
    </head>
    <body> <!-- 包含页面内容 -->
        <h1> 一级标题 </h1>
        <p> 段落内容 </p>
    </body>
</html>

属性值使用双引号包裹
空标签可以不闭合
某些属性值可以省略
标签和属性不区分大小写
1.2 HTML标签分类
- Flow 流式元素
 - Metadata 元数据元素
 - Heading 标题内容
 - Sectioning 章节内容
 - Phrasing 段落内容
 - Embeded 嵌入式内容
 - Interactive 可交互内容
 
1.2.1 文本类标签
- a- 链接
 
URL
Scheme(http://)+Host(www.example.com)+Path(/post/2020/example.html)+Query(?print=1&color=no)+Hash(#heading)
省略
省略URL中某一部分时,会自动根据当前页面的URL进行补全
相对路径与绝对路径
相对路径为相对于目前页面的路径
Hash
Target-链接目标
<a href="https://www.w3.org" target="_self"> 当前窗口打开 </a>
<a href="https://www.w3.org" target="_blank"> 新窗口打开 </a>
- 引用
 - blockquote 长引用
 - q 短引用
 - cite 引用来源(书、影视、页面)
 
<blockquote cite="https://t.cn/RfjKO0F">
    <p> 天才并不是自生自长在深林荒野里的怪物</p>
</blockquote> 
<cite> 鲁迅《未有天才之前》</cite>
<p><cite>维基百科</cite>上说JavaScropt<q>最初命名为Mocha</q></p>
<!-- cite中的在网页中未斜体 q中的为带双引号的内容-->
- 强调
 - em 强调重读
 - strong 强调重要性
 
<p> 猫是可爱的动物</p>
<p> 猫<em>是</em>可爱的动物</p> <!-- 斜体 -->
<p> 
    用法和用量:每日三次,每次一片,饭后服用。
    <strong> 警告:孕妇和儿童请遵医嘱。</strong> <!-- 黑体 -->
</p>
- 代码
 - code 代码段
 - var 变量名
 - samp 输出示例
 - kbd 键盘操作
 - 空白符
 
空格会自动合并
- Entity-实体字符
 - 空格
 - < <
 - > >
 - & &
 - 最好带上分号
 
1.2.2 多媒体类标签
- 图片
 
<img src="/path/to/omg.jpg" alt="可爱的小猫" width="360" height="480" />
<!-- alt为必要属性,图片为加载出来时则显示alt的值-->
不同格式的图片
jpg 照片,色彩丰富
png 颜色少,支持透明度
webp 体积更小,兼容性一般
gif 动画,体积大
- 视频
 
视频格式
ogg
webm
mp4
可以同时引入多个source,浏览器选择支持的格式进行播放
<video controls>
    <source src="/bunny.mp4" type="video/mp4">
    <source src="/bunny.ogv" type="video/ogg">
    <source src="/bunny.webm" type="video/webm">
    <p>您的浏览器不支持视频播放</p>
</video>
video的其他属性
<video src="/url.mp4"
    poster="/photo.jpg" 
    width="720" height="480"
    preload> </video> 
<!-- poster为未加载出时的显示画面,preload预加载-->
给视频添加字幕
- audio-音频
 
1.3 组织页面内容
header:头部的信息,介绍性、引导性的内容,如:logo,导航链接等
main:页面的主体内容
aside:侧边栏
footer:页面、区块的地步,放参考链接,版权信息等
- h1-h6
 - article§ion
 
- 列表
 - 有序列表
 
- 无序列表
 
列表可以嵌套
- 定义列表
 
- 导航
 
<header>
    <nav> 
        <ul>
            <li><a href="www.baidu.com"> Bai</a></li>
            <li><a href="www.baidu.com"> Du</a></li>
        </ul>
    </nav>
</header>
1.4 HTML表格
<table> 
    <thead><!-- 表头 -->
        <tr>
            <th>客户ID</th>
            <th>客户名称</th>
            <th>所属城市</th>
            <th>账户余额</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>123</td>
            <td>客户A</td>
            <td>北京</td>
            <td>6498.91</td>
        </tr>
        <tr>
            <td>124</td>
            <td>客户B</td>
            <td>上海</td>
            <td>1145.14</td>
        </tr>
    </tbody>
</table>
复杂表格-rowspan\colspan
<table>
    <caption>分类</caption> <!-- 表格标题 -->
    <thead>
    <tr>
      <th>分类</th>
      <th>技能</th>
      <th>分数</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td rowspan="3">编程语言</td>
      <td>JavaScript</td>
      <td>8</td>
    </tr>
    <tr>
      <td>C++</td>
      <td>7</td>
    </tr>
    <tr>
      <td>Swift</td>
      <td>9</td>
    </tr>
  </tbody>
    <tfoot>
        <tr>
            <td colspan="3">汇总</td>
            <td>114</td>
    </tfoot>
</table>
1.5 表单
1.5.1 输入框
<form>
    <p>
        <label>用户名</label>
        <input type="text" placeholder="3-12个字符"><!-- 输入类型以及占位符,type默认值为text -->
    </p>
    <p>
        <label>密码:</label>
        <input type="passward">
    <p>
        <label>年龄:</label>
        <input type="number" value="20"><!-- number型具有初值 -->
    </p>
    <p>
        <label>头像:</label>
        <input type="file">
    </p>
    <p>
        <label>生日:</label>
        <input type="date">
</form>
1.5.2 多行文本框
1.5.3 单选框
<form>
    <p>请选择您最喜欢的水果</p>
    <input type="radio" name="fruit"><label>香蕉</label>
    <input type="radio" name="fruit"><label>猕猴桃</label>
    <input type="radio" name="fruit"><label>葡萄</label>
    <p>请选择您的衣服尺码</p><!-- 都放在label里面,则点击文字也可以选择了 -->
    <label><input type="radio" name="size">M</label>
    <label><input type="radio" name="size">L</label>
    <!-- 另一种方式,将label与input关联 -->
    <input type="radio" name="size" id="xl"><label for="xl">XL</label>\
</form>
1.5.4 复选框
 <form>
    <p>请选择您最喜欢的水果</p>
    <input type="checkbox" checked><label>香蕉</label><!-- checked为预选 -->
    <input type="checkbox" ><label>猕猴桃</label>
    <input type="checkbox" ><label>葡萄</label>
</form>
1.5.5 更多类型
- search
 - tel
 - url
 - month
 - time
 - range
 - color
 
1.5.6 下拉选择框
<select name="fruit">
    <option value="1" selected>苹果</option>
    <option value="2">香蕉</option>
    <option value="3">芒果</option>
</select>
1.5.7 按钮
<form>
    <p>
        <label>用户名:</label>
        <input name="username">
    </p>
    <p>
        <label>密码:</label>
        <input name="password">
    </p>
    <button type="submit">提交按钮</button>
    <button type="button">普通按钮</button>
</form>
1.6 HTML语义化
- 代码可读性
 - 可维护性
 - 搜索引擎优化
 - 提升无障碍性
 - 传达内容,而不是样式
 
1.7 案例
- header(包含导航栏nav)
 - main(包含article)
 - aside
 - footer
 
在article\section中也可以使用footer
1.8 HTML的可扩展性
1.8.1 自定义属性
通常以”data-”开头
1.8.2 Meta
- 页面编码
 - 指定HTTP Header
 - SEO 搜索引擎优化-页面关键词及页面介绍
 - 移动设备Viewport
 - 是否关闭IOS电话号码自动识别
 - 指定内核
 - 指定IE渲染模式
 
1.8.3 Link
- 引入CSS样式
 - 指定页面图标
 - 提供RSS
 - 预先加载资源
 
1.8.4 Microdata
嵌入格式化数据,通常由搜索引擎等读取
1.9 深入学习HTML
1.9.1 嵌套规则
<p>This is a<div>test</div>.</p>
<!-- 解析为: -->
<p>This is a</p>
<div>test</div>
.
<p></p>
<!-- 因为div不能出现在p里面 -->
HTML, The living standard (traveldevel.org)
本站总访问量次