前端与HTML | 青训营笔记

52 阅读8分钟

这是我参与「第四届青训营 」笔记创作活动的第1天

前端技术栈

  • HTML(内容)
  • CSS(样式)
  • JavaScript(内容)

前端应该关注的方面

  • 功能
  • 美观
  • 无障碍:Accessibility,任何人平等公平无障碍地浏览网页获取信息
  • 安全
  • 性能:开始渲染时间、DOM Ready、首屏时间、onload
  • 兼容
  • 体验

HTML

Hypertext Markup Language

网页的固定结构通过特定的HTML标签来描述

<html>
    <head>
        <title>网页标题</title>
    </head>
    <body>
        网页主题内容
    </body>
</html>

HTML语法

标签组成

  • 标签由<、>、/、英文单词或字母组成,< >中包含的内容成为标签名
  • 双标签:标签由两部分组成 eg.
  • 单标签:标签由一部分组成

标签关系

  • 父子关系(嵌套关系) eg.

    <head>
        <title></title>
    </head>
    
  • 兄弟关系(并列关系) eg.

    <head></head>
    <body></body>
    

标签学习

排版标签
  • 标题标签
<h1>1级标题</h1>
<h2>2级标题</h2>
<h3>3级标题</h3>
<h4>4级标题</h4>
<h5>5级标题</h5>
<h6>6级标题</h6>
  • 段落标签

    <p>
        段落独占一行 两段落之间存在间隙
    </p>
    
  • 换行标签

    <p>
        段落独占一行<br>两段落之间存在间隙
    </p>
    
  • 水平线标签

    <h2>标题与内容直线的分割线</h2>
    <hr>
    <p>
        段落内容
    </p>
    
文本格式化标签

作用:实现文字加粗、加下划线、倾斜、删除线等效果(右侧标签突出重要性的强调语境)

标签说明标签说明
b加粗strong加粗
u下划线ins下划线
i倾斜em倾斜
s删除线del删除线
媒体标签
图片标签
  • 单标签
  • img标签借助标签的属性设置
<img src="" alt="">
<!--src、alt属性名 “” 属性值-->
src属性
  • 属性名:src

  • 属性值:目标图片的路径

  • 网页和目标图片在一个文件夹中,路径直接写目标图片的名字(包括后缀名)

  • 图片路径问题详见下一部分有关路径的描述

    <body>
        <img src="./1.jpg" alt="">
    </body>
    <!--标签上可以存在多个属性,属性之间用空格隔开-->
    <!--标签和属性之间用空格隔开-->
    <!--属性之间没有先后顺序之分-->
    
alt属性
  • 属性名:alt
  • 属性值:替换文字——当图片无法显示时显示的文字
title属性
  • 属性名:title
  • 属性值:鼠标悬停时显示的文字
  • title属性不仅仅用于图片标签
width和height属性
  • 属性名:width和hight
  • 属性值:宽度和高度(数字)
  • 如果只设置其中一个属性,另一个会自动等比例缩放
  • 如果同时设置两个属性可能会时图片变形
路径
  • 绝对路径

    目录下的绝对位置,可直接到达的目标位置,通常从盘符开始

  • 相对路径

    从当前文件出发找目标文件的过程

    • 同级目录

      <!--方法一:-->
      <img src="目标图片.后缀">
      <!--方法二:-->
      <img src="./目标图片.后缀">
      
    • 下级目录

      <img src="目标图片所在文件夹/目标图片.后缀">
      
    • 上级目录

      <img src="../目标图片.后缀">
      
音频标签
  • 双标签

    <audio src="音频路径" controls></audio>
    <!--音频+controls默认手动播放-->
    <!--不加controls无法播放-->
    
  • 属性

属性名功能
src音频路径
controls显示播放控件
autoplay自动播放(部分浏览器不支持)
loop循环播放
  • 音频标签目前支持3种格式:MP3、Wav、Ogg
视频标签
  • 双标签
<video src="视频路径" controls></video>
  • 属性
属性名功能
src音频路径
controls显示播放控件
autoplay自动播放(谷歌浏览器中需要配合muted实现静音播放)
loop循环播放
  • 视频标签目前支持3种格式:MP4、WebM、Ogg
链接标签

href:跳转地址

  • 双标签

    <a href="./目标网页.html">超链接</a>
    

    当开发网页初期,href的值写到#(空白链接)代替具体的跳转地址

target属性
  • 属性名:target
  • 属性值:目标网页的打开方式
取值效果
_self默认值,在当前窗口中跳转
_blank在新窗口中跳转

列表标签

无序列表
  • 标签组成

    标签名说明
    ul表示无序列表的整体,同于包裹li标签
    li表示无序列表的每一项,用于包含每一行的内容
  • ul标签中只包含li标签

  • li标签可以包含任意内容

    <ul>
        <li>语文</li>
        <li>数学</li>
        <li>英语</li>
    </ul>
    
有序列表
  • 标签组成

    标签名说明
    ol表示有序列表的整体,同于包裹li标签
    li表示有序列表的每一项,用于包含每一行的内容
  • ol标签中只包含li标签

  • li标签可以包含任意内容

    <ol>
        <li>语文</li>
        <li>数学</li>
        <li>英语</li>
    </ol>
    
自定义列表
  • 标签组成

    标签名说明
    dl表示自定义列表的整体,用于包裹dt/dd标签
    dt表示自定义列表的主题
    dd表示自定义列表的针对主题的每一项内容
  • dd标签中只包含dt/dd标签

  • dt/dd标签可以包含任意内容

    <dl>
        <dt>学习科目</dt>
        <dd>语文</dd>
        <dd>数学</dd>
        <dd>英语</dd>
    </dl>
    

表格标签

基本标签
标签名说明
table表格整体,可用于包裹多个tr
tr表格每行,用于包裹td
td表格单元格,可用于包裹内容
  • table嵌套tr(父子关系)
  • tr嵌套td(父子关系)
<table border="1">
    <tr>
        <td>姓名</td>
        <td>成绩</td>
    </tr>
    <tr>
        <td>小李</td>
        <td>98</td>
    </tr>
    <tr>
        <td>总结</td>
        <td>优秀</td>
    </tr>
</table>
相关属性
属性名属性值效果
border数字边框宽度
width数字表格宽度
height数字表格高度
表格标题和表头单元格标签
标签名名称说明
caption表格大标题表示表格整体大标题,默认在表格整体顶部居中位置显示
th表头单元格表示一列小标题,通常用于表格第一行,默认内部文字加粗并居中显示
  • caption标签书写在table标签内部
  • th标签书写在tr标签内部(用于替换td标签)
<table border="1">
    <caption>学生成绩</caption>
    <tr>
        <th>姓名</th>
        <th>成绩</th>
    </tr>
    <tr>
        <td>小李</td>
        <td>98</td>
    </tr>
    <tr>
        <td>小华</td>
        <td>99</td>
    </tr>   
    <tr>
        <td>总结</td>
        <td>优秀</td>
    </tr>
</table>
表格结构标签
标签名名称
thead表格头部
tbody表格主题
tfoot表格底部
  • 表格结构标签内部用于包裹tr标签
  • 表格的结构标签可以省略
<table border="1">
        <caption>学生成绩</caption>
        <thead>
            <th>姓名</th>
            <th>成绩</th>
            </th>
        </thead>
        <tbody>
            <tr>
                <td>小李</td>
                <td>98</td>
            </tr>
            <tr>
                <td>小华</td>
                <td>99</td>
            </tr>   
        </tbody>
        <tfoot>
            <tr>
                <td>总结</td>
                <td>优秀</td>
            </tr>
        </tfoot>
</table>
合并单元格

合并单元格步骤

  1. 明确合并单元格
  2. 通过左上原则,确定保留和删除的单元格
  • 上下合并——只保留最上的,删除其他
  • 左右合并——只保留最左的,删除其他
  1. 给保留的单元格设置:跨行合并(rowspan)或者跨列合并(colspan)
属性名属性值说明
rowspan合并单元格的个数跨行合并,将多行的单元格垂直合并
colspan合并单元格的个数跨列合并,将多列的单元格水平合并

ps.只有同一个标签中的标签才能合并,不能跨结构标签合并

  • 跨行合并
<table border="1">
        <caption>学生成绩</caption>
        <thead>
            <th>姓名</th>
            <th>成绩</th>
            </th>
        </thead>
        <tbody>
            <tr>
                <td>小李</td>
                <td rowspan="2">98</td>
            </tr>
            <tr>
                <td>小华</td>
                
            </tr>   
        </tbody>
        <tfoot>
            <tr>
                <td>总结</td>
                <td>优秀</td>
            </tr>
        </tfoot>
</table>
  • 跨列合并
<table border="1">
        <caption>学生成绩</caption>
        <thead>
            <th>姓名</th>
            <th>成绩</th>
            </th>
        </thead>
        <tbody>
            <tr>
                <td>小李</td>
                <td>98</td>
            </tr>
            <tr>
                <td>小华</td>
                <td>99</td>
            </tr>   
        </tbody>
        <tfoot>
            <tr>
                <td colspan="2">总结</td>
                
            </tr>
        </tfoot>
</table>

表单标签

input系列标签

input标签可以通过type属性值的不同,展示不同的效果

  • type属性值
标签名type属性值说明
inputtext文本框,用于单行文本
inputpassword密码框,用于输密码
inputradio单选框,用于多选一
inputcheckbox多选框,用于多选多
inputfile文件选择,用于之后上传文件
inputsubmit提交按钮
inputreset密码框,用于输密码
inputbutton普通按钮,默认无功能,之后配合js添加功能
  • 常用属性:placeholder
属性名说明
placeholder占位符,提示用户输入内容
 姓名:<input type="text" placeholder="请输入您的姓名">
密码:<input type="password" placeholder="请输入您的密码">
  • radio常用属性(单选&默认选中)
属性名说明
name分组,有相同name属性值的单选框为一组,一组中同时只能有一个被选中
checked默认选中
性别:<input type="radio" name="sex">男<input type="radio" name="sex">女
    性别:<input type="radio" name="sex">男<input type="radio" name="sex" checked>女
  • file常用属性(上传多个文件)
属性名说明
multiple多文件选择
上传文件<input type="file" multiple>
  • 按钮(submit&reset&button)

ps.有表单域标签按钮才生效(

属性名说明
value给按钮添加文字
提交按钮:<input type="submit" value="提交按钮"><br><br>
重置按钮:<input type="reset"><br><br>
普通按钮:<input type="button" value="普通按钮"><br><br>
button标签
  • type属性值
标签名type属性值说明
buttonsubmit提交按钮
buttonreset密码框,用于输密码
buttonbutton普通按钮,默认无功能,之后配合js添加功能
<button>普通按钮</button>
<button type="submit">提交按钮</button>
<button type="reset">重置按钮</button>

ps.

  1. 谷歌浏览器中button默认是提交按钮
  2. button标签是双标签,便于包裹其他内容

select下拉菜单

  • 标签组成:

    • select标签:下拉菜单的整体
    • option标签:下拉菜单的每一项
  • 常见属性:

    • selected:下拉菜单的默认选中
  • select标签结构:

所在城市:
<select>
    <option> 北京</option>
    <option>上海</option>
    <option>广州</option>
    <option>深圳</option>
</select>
  • selected:
所在城市:
<select>
    <option> 北京</option>
    <option>上海</option>
    <option>广州</option>
    <option selected>深圳</option>
</select>

textarea文本域标签

  • 常见属性:

    • cols:规定了文本域内可见宽度
    • rows:规定了文本域内可见行数
  • 注意点:

    • 右下角可以拖拽改变大小
    • 实际开发时针对于样式效果推荐用CSS设置
<textarea cols="30" rows="10"></textarea>

label标签

用于绑定内容与表单标签的关系

  • 使用方法1:

    1. 使用label标签把内容(如文本)包裹起来
    2. 在表单标签上添加id属性
    3. 在label标签的for属性中设置对应的id属性值
性别:
<input type="radio" name="sex" id="nan"><label for="nan">男</label>
<input type="radio" name="sex" id="nv"><label for="nv">女</label>
  • 使用方法2:

    1. 直接使用label标签把内容(如文本)和表单标签一起包裹起来
    2. 需要把label标签的for属性删除即可
性别:
<label><input type="radio" name="sex"></label>
<label><input type="radio" name="sex"></label>

语义化标签

没有语义的布局标签-div和span
div标签

一行只显示一个(独占一行)

<div>这是div标签</div>
<div>这是div标签</div>
span标签

一行可以显示多个

<span>这是span标签</span>
<span>这是span标签</span>
有语义的布局标签

在HTML5新版本中推出,用于手机网页制作

标签名语义
header网页头部
nav网页导航
footer网页底部
aside网页侧边栏
section网页区块
artice网页文章
<header>网页头部</header>
<nav>网页导航</nav>
<footer>网页底部</footer>
<aside>网页侧边栏</aside>
<section>网页区块</section>
<artice>网页文章</artice>

字符实体

通过字符实体显示特殊符号效果

  • 多个空格显示
显示结果描述实体名称
空格

语义化

● HTML中的元素、属性及属性值都拥有某些含义

开发者应该遵循语义来编写HTML

语义化的好处

  • 代码可读性
  • 可维护性
  • 搜索引擎优化
  • 提升无障碍