HTML入门

36 阅读7分钟

众所周知,前端三件套分别是HTML、CSS和JavaScript,其中HTML搭建了网页的骨架。
在学jsp的过程中涉及到了HTML,所以来速成一下!

网页构成

在HTML中,标签是成对存在的,其中标记网页开始和结尾的是<html>标签,内部嵌套了两个标签:<head><body>

  • <head>是网页头部标签,记录了一些网页的格式,关键字等等,是用户看不到的
  • <body>标签是网页的主体,也就是网页上展示的内容
  • 这两个标签内部又嵌套了更细节的标签,共同组成了这个网页,具体会在后面的学习中讲到
<!-- DOCTYPE:告诉浏览器我们使用什么规范 -->
<!DOCTYPE html>
<!-- 网页的语言 -->
<html lang="en">


<!-- head标签代表网页头部,用户看不到 -->
<head>
    <!-- mate描述性标签,用来描述网页关键信息,一般用来做SEO -->
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <!-- 关键词和解释 -->
    <mate name="keywords" content="html学习">
    <mate name="description" content="我的学习记录呀">

    <!-- title标签代表网页名字 -->
    <title>我的网页</title>
</head>


<!-- body标签代表网页主体,在网页上展示 -->
<body>
    hello world
</body>


</html>

image.png

标签

基本标签

  • 标题标签h
  • 段落标签p
  • 换行标签br
  • 水平线标签hr
  • 字体样式标签strong、em
  • 注释和特殊符号
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>基本标签学习</title>
</head>

<body>
    <!-- 标题标签,一共有六级 -->
    <h1>一级标签</h1>
    <h2>二级标签</h2>
    <h3>三级标签</h3>
    <h4>四级标签</h4>
    <h5>五级标签</h5>
    <h6>六级标签</h6>

    <!-- 段落标签 -->
    <p>祝你生日快乐</p>
    <p>祝你生日快乐</p>
    <p>祝你生日快乐</p>
    <p>祝你生日快乐</p>

    <!-- 水平线标签,是自闭合标签 -->
    <hr />

    <!-- 换行标签,是自闭合标签,只用写一个,换行后也只是一段,与段落标签不同 -->
    祝你生日快乐<br />
    祝你生日快乐<br />
    祝你生日快乐<br />
    祝你生日快乐<br />

    <!-- 粗体,斜体 -->
    粗体:<strong>我爱你</strong>
    斜体:<em>我爱你</em>
    <br />

    <!-- 特殊符号 -->

    空 格<!-- 空了很多格,但是在网页中只显示一个, -->&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br />
    大于小于号
    &gt;
    &lt;
    <br />
    版权符号
    &copy;

    <!-- 
        多行注释和单行注释一样的符号
     -->

</body>

</html>

image.png

图像标签

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <!-- img学习 -->
    <!--  
        scr:图片地址:
        分为相对地址和绝对地址
        推荐使用相对地址
        ../  上一级目录

        alt:图像替代文字,当找不到图片时显示的文字
        title:悬停文字,鼠标放在图片上显示的文字

        width:图片的宽
        height:图片的高
     -->
    <img src="../resources/image/1.png" alt="图像替代文字" title="悬停文字" width="" height="">
</body>
</html>

image.png

超链接标签

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>链接标签学习</title>
</head>

<body>

    <a name="top">顶部</a><br />


    <!-- 超链接标签(a标签) -->
    <!-- 
        name:锚标记的名字
        href:必填,表示跳转到哪个页面,可以填本地的也可以填网站域名
        targrt:表示窗口在哪里打开
            _blank表示在新网页中打开
            _self默认在当前网页打开
     -->
    <a href="html01.html" target="_blank">点击我跳转到页面一</a><br />
    <a href="https://www.baidu.com/" target="_self">点击我跳转到百度</a><br />

    <!-- 可以嵌套图片,点击图片跳转 -->
    <a href="html01.html">
        <img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </a><br />

    下面是凑字数的
    <p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </p>
    <p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </p>
    <p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </p>
    <p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </p>
    <p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </p>
    <p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </p>
    <p><img src="../resources/image/2.png" alt="超链接标签" title="超链接标签">
    </p>


    <!-- 锚链接 -->
    <!-- 
        作用是定位到网页的具体位置
        1.需要一个锚标记
        2.跳转到标记#+标记名

        可以在要跳转到的页面地址后面+#标记名,直接跳转到新页面的标记位置
     -->
    <a href="#top">回到顶部</a><br />
    <a href="html01.html#down">跳转到页面1底部</a><br />


    <!-- 功能性链接 -->
    <!-- 
        邮件链接:mailto
        QQ链接:把qq推广生成的链接粘到自己的网页上
     -->
     <a href="mailto:1599720786@qq.com">点击联系我</a>

</body>

</html>

屏幕截图 2024-06-02 124050.png image.png

行内元素和块元素

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>行内元素和块元素</title>
</head>

<body>

    <!-- 块元素 -->
    <!-- 
        无论内容多少,该元素独占一行
        p、h1-h6
     -->
    <p>段落标签是块元素</p>
    <h1>标题标签也是块元素</h1>


    <!-- 行内元素 -->
    <!-- 
        内容撑开宽度,左右都是行内元素的可以排在一行
        a、strong、em
      -->
    <strong>加粗标签是行内元素</strong>
    <em>斜体标签也是行内元素</em>
    <a href="">链接标签也是行内元素</a>


</body>

</html>

image.png

列表标签

把信息用列表的形式展示出来,分为有序列表ol、无序列表ul、定义列表dl

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>列表学习</title>
</head>
<body>
    

    <!-- 有序列表 -->
    <ol>
        <li>java</li>
        <li>python</li>
        <li>c++</li>
        <li>都学不会</li>
    </ol>

<hr/>

    <!-- 无序列表 -->
    <ul>
        <li>java</li>
        <li>python</li>
        <li>c++</li>
        <li>都学不会</li>
    </ul>

<hr>

    <!-- 自定义列表 -->
    <!-- 
        dl:标签
        dt:列表名称
        dd:列表内容
     -->
    <dl>
        <dt>上学</dt>
        <dd>java</dd>
        <dd>python</dd>
        <dd>c++</dd>
        <dd>都学不会</dd>
    </dl>


</body>
</html>

image.png

表格标签

结构:单元格、行、列、跨行、跨列

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>表格标签学习</title>
</head>
<body>
   
    
    <!-- 表格table -->
    <!-- 
        行:tr rows
        列:td
        边框宽度:border
     -->
    <table border="1px">

        <tr>
            <!-- 跨列:colspan -->
            <td colspan="4">1-1跨列</td>
        </tr>
        <tr>
            <!-- 跨行:rowspan -->
            <td rowspan="2">2-1跨行</td>
            <td>2-2</td>
            <td>2-3</td>
            <td>2-4</td>
        </tr>
        <tr>
            <td>3-2</td>
            <td>3-3</td>
            <td>3-4</td>
        </tr>

    </table>


</body>
</html>

image.png

音频视频元素

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>


    <!-- 音频和视频 -->
    <!-- 
        src:路径
        controls:控制,不加的话无法看到进度条
        autoplay:自动播放
     -->
    <video src="../resources/video/4.mp4" controls autoplay></video>

    <audio src="../resources/audio/祝你生日快乐.mp3" controls autoplay></audio>


</body>
</html>

image.png

iframe内联框架

image.png

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>内联框架</title>
</head>
<body>
    
    <!-- iframe内嵌框架 -->
    <!-- 
        scr:引用页面地址
        name:框架标识名
        frameborder:框架边框宽度
        width、height:宽和高
     -->
    <iframe src="//player.bilibili.com/player.html?isOutside=true&aid=55631961&bvid=BV1x4411V75C&cid=97257967&p=11" 
    name=hello scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"></iframe>
    
    <!-- 可与a标签联合使用
        target:在哪个页面跳转链接 -->
    <a href="html01.html" target="hello">点击跳转</a>

</body>
</html>

屏幕截图 2024-06-02 150724.png image.png

页面结构

元素名描述
header页眉,用于页面或一块区域,导航条
footer页脚,用于页面或一块区域,网页底部
sectionweb页面中的一块独立区域
article独立的文章内容
aside相关内容或应用,常用于侧边栏
nav导航类辅助内容
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>页面结构学习</title>
</head>
<body>

<header>
    <h2>网页头部</h2>
</header>

<section>
    <h1>网页主体</h1>
</section>

<footer>
    <h2>网页脚部</h2>
</footer>

</body>
</html>

image.png

表单

就是网站的注册登录

  • form标签格式
    • action:表单向何处提交
    • method:表单提交方式,get和post image.png
  • input标签属性:
    • type:指定元素的类型
      • text:文本框
      • password:密码
      • radio:单选(必须有初始值)
      • checkbox:多选,其中元素是option
      • submit:提交
      • reset:重置
      • button:按钮
      • image:图片按钮
      • file:文档
      • email:邮箱验证
      • url:url验证
      • number:数字验证,可设置max min type
      • range:滑块验证,可设置max min type
      • search:搜索框
    • name:指定表单元素的名称
    • value:元素的初始值
    • size:元素的初始宽度,type为text和password时大小以字符为单位
    • maxlength:type为text和password时输入的最大字符数
    • checked:type为radio和checkbox时默认按钮被选中
    • hidden:隐藏域,文本框不显示
    • readonly:只读,默认值不能更改
    • disable:禁用,比如按钮无法提交
    • 下面是表单验证,可以用来保证数据安全性,减轻服务器压力
    • placeholder:提示信息
    • required:非空判断
    • pattern:正则表达式
  • selete:下拉框,元素是option
  • textarea:文本域
    • cols:高
    • rows:行
<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>登陆注册</title>
</head>

<body>

    <h1>注册</h1>

    <!-- 表单form -->
    <!-- 
        action:表单提交的位置,可以是网站也可以是请求处理地址,提交后会跳转到相应位置
        method:提交方式,有post和get
                get方式提交:我们可以在url中看到提交的信息,不安全但高效
                post方式提交:比较安全,可以提交大文件,在请求正文可以查看
     -->

    <form action="html01.html" method="get">

        <!-- 表单的元素是input标签:<input type="类型"> -->
        <!-- 
            value:默认初始值
            maxlength:最长能写几个字符
            size:文本框长度
            value="好累啊" maxlength="8" size="30"
         -->

        <!-- 文本输入框:text -->
        <p>名字:<input type="text" name="username" readonly placeholder="请输入用户名" required></p>

        <!-- 密码输入框:password -->
        <p>密码:<input type="password" name="pwd" hidden></p>

        <!-- 单选框:radio -->
        <!-- 
            value:单选框的值
            name:表示组,选项的name相同才是单选
            checked:默认选中
         -->
        <p>性别:
            <input type="radio" name="sex" value="boy" checked><input type="radio" name="sex" value="girl"></p>

        <!-- 多选框:checkbox -->
        <p>爱好
            <input type="checkbox" value="sing" name="hobbys" checked><input type="checkbox" value="dance" name="hobbys"><input type="checkbox" value="rap" name="hobbys">rap
            <input type="checkbox" value="basketball" name="hobbys">篮球
        </p>

        <!-- 按钮:button 图片按钮:image -->
        <p>
            <input type="button" name="btn1" value="点击开始打篮球">
            <input type="image" src="../resources/image/6.jpg">
        </p>

        <!-- 增强鼠标可用性:label,点击文字后会锁定输入框 -->
        <p>
            <label for="mark">你点我试试</label>
            <input type="text" id="mark">
        </p>

        <!-- pattern:正则表达式,自定义判断 -->
        <P>自定义邮箱:
            <input type="text" name="diymail" pattern="^\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*$">
        </P>

        <!-- 提交:submit 重置:reset -->
        <p>
            <input type="submit" disabled>
            <input type="reset" value="清空表单">
        </p>

        <!-- 下拉框、列表框:selete -->
        <p>时代少年团
            <select name="列表名称">
                <option value="mjq">马嘉祺</option>
                <option value="dcx">丁程鑫</option>
                <option value="lyw">刘耀文</option>
                <option value="hjl">贺俊霖</option>
            </select>
        </p>

        <!-- 文本域:textarea -->
        <p>请简述喜欢马嘉祺的十个原因
            <textarea name="textarea" cols="50" rows="10"></textarea>
        </p>

        <!-- 文件域:file -->
        <p>
            <input type="file" name="files">
            <input type="button" name="upload" value="上传">
        </p>

        <!-- 邮件验证 -->
        <p>邮箱:
            <input type="email" name="email">
        </p>

        <!-- URL -->
        <p>URL:
            <input type="url" name="url">
        </p>

        <!-- 数字 -->
        <p>商品数量:
            <input type="number" name="num" max="100" min="0" step="10">
        </p>

        <!-- 滑块 -->
        <p>音量:
            <input type="range" name="listen" max="100" min="0" step="10">
        </p>

        <!-- 搜索框 -->
        <p>搜索:
            <input type="search" name="search">
        </p>

    </form>

</body>

</html>

image.png