【CTF-WEB入门】HTML+CSS+JS三件套之第一套--HTML!!

HTML:Hyper Text Markup Language

首先声明:本篇文章基于狂神说Java展开学习~

What is HTML

  • 超文本标记语言

Version

html5,与之前的时候需要flash插件去播放视频,但在html5中提供了很多新功能,如不需要插件直接使用网页播放视频,使用网页实现动态渲染图形,图标,图像和动画。

Standard

  • W3C
    • World Wide Web Consortium 万维网联盟
    • web技术领域最权威和具影响力的国际中立性技术标准机构 扩展还有一个IEEE
  • W3C标准包括
    • 结构化标准语言(HTML XML)
    • 表现标准语言(CSS)
    • 行为标准(DOM、ECMAScript)

Software

在idea中打开非常方便,自动生成结构,在右上角可以直接打开浏览器调试

image-20230806111656620

Study

注释符号:<!-- -->

<!-- DOCTYPE:告诉浏览器,使用的规范-->

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title></title>
</head>
<body> <!--开放标签
这里上下成对出现 分别又自己的名字 -->
</body> <!--闭合标签-->
</html>

base label

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
<!--    地址栏中的名称-->
    <title>666</title>
</head>
<body>

<!--标题标签-->
<h1>一级标题</h1>
<h2>two</h2>
<h3>three</h3>
<h4>four</h4>
<h5>five</h5>
<h6>six</h6>

<!--段落标签 : 注意如果不加标签则会导致内容在一行显示,现在是进行分段 每个标签里面的内容作为一段出现-->
<p>一去二三里</p>
<p>岩村四五家</p>
<p>亭台六七座</p>
<p>八九十之花</p>

<!--水平线标签-->
<hr/>

<!--换行标签 : 间隙比段落标签变小 只是单纯的换行 属于一段中的内容-->
一去二三里<br/>
岩村四五家<br/>
亭台六七座<br/>
八九十之花<br/>

<!--粗体,斜体-->
<h1>字体样式标签</h1>
粗体 : <strong>i love u</strong> <br>
斜体 : <em>i love u</em>

<hr>

<!--特殊符号-->
空格:&nbsp;&nbsp;&nbsp;&nbsp;空格 <br>
大于号: &gt;  <br>
小于号: &lt;  <br>
版权符号: &copy;版权所有happy superman
</body>
</html>

效果图:

image-20230806171011483

image label

常见图像格式:

JPG

GIF

PNG

BMP  这是一个位图

图像标签组成及其属性

<img src="path" alt="text" title="text" width="x" height="y"/>

属性解释:

src:图像地址 (必填)

alt:图像的代替文字 当src找不到图像的时候显示(必填)

title:鼠标悬停提示文字

width:宽度

height:高度

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>图像标签学习</title>
</head>
<body>
<!--img学习
src:图片地址
  相对地址 , 绝对地址
  ../  代表上一级目录


-->
<img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">

</body>
</html>

link label

<a href="path" target="目标窗口位置">链接文本或图像</a>

属性解释:

href:链接路径

target:链接在哪个窗口打开 常用值:_self _blank

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>链接标签学习</title>
</head>
<body>

<!--使用name作为标记-->
<a name="top"></a>

<!--a标签
href:必填 表示要跳转到那个页面
target:表示窗口在哪里打开
    _blank:在新窗口打开
    _self:在当前界面打开
-->
<a href="2基本标签.html" target="_blank">点击我跳转到页面2</a>
<a href="https://www.baidu.com" target="_self">点击我跳转到百度</a>
<br>
<a href="2基本标签.html">
    <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
</a>


<br>

<p>
    <a href="2基本标签.html">
        <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
    </a>
</p><p>
    <a href="2基本标签.html">
        <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
    </a>
</p><p>
    <a href="2基本标签.html">
        <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
    </a>
</p><p>
    <a href="2基本标签.html">
        <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
    </a>
</p><p>
    <a href="2基本标签.html">
        <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
    </a>
</p><p>
    <a href="2基本标签.html">
        <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
    </a>
</p><p>
    <a href="2基本标签.html">
        <img src="../resource/image/HZNUCTF.jpg" alt="哈皮" title="悬停文字" width="300" height="300">
    </a>
</p>

<!--锚链接
1. 需要一个锚标记
2. 跳转到标记 #
-->

<a href="#top">回到顶部</a>
<!--做一个锚链接的标记-->
<a name="down"></a>

<!--功能性链接

邮件链接:mailto:
QQ链接:在QQ推广中添加
-->
<a href="mailto:test.qq.com">点击联系我</a>

</body>
</html>

list label

列表就是信息资源的一种展示形式,使信息结构化 条理化

分类:

无序列表

有序列表

定义列表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>列表学习</title>
</head>
<body>



<!--有序列表 order list-->
<ol>
  <li>Java</li>
  <li>Python</li>
  <li>运维</li>
  <li>前端</li>
  <li>C/C++</li>
</ol>

<hr>
<!--无序列表 unordered list-->
<ul>
  <li>Java</li>
  <li>Python</li>
  <li>运维</li>
  <li>前端</li>
  <li>C/C++</li>
</ul>

<hr>
<!--自定义列表
dl:标签
dt:列表名称
dd:;列表内容

-->
<dl>
  <dt>1</dt>

  <dd>2</dd>
  <dd>3</dd>
  <dd>4</dd>
  <dd>5</dd>
  <dd>6</dd>

</dl>

</body>
</html>

table label

表格:

为什么使用?

简单通用

结构稳定

基本结构:

单元格

跨行

跨列

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格学习</title>
</head>
<body>

<!--表格table
行 tr   table raws
列 td
-->

<table border="1px">
    <tr>
<!--        colspan 跨列-->
        <td colspan="3">1-1</td>
        <td>1-1</td>
        <td>1-1</td>
    </tr>
    <tr>
<!--        rowspan 跨行-->
        <td rowspan="2">2-1</td>
        <td>2-2</td>
        <td>2-3</td>
    </tr>
    <tr>
<!--        <td>3-1</td>-->
        <td>3-2</td>
        <td>3-3</td>
    </tr>
</table>

</body>
</html>

效果:

image-20230807162449462

example:

image-20230807162531687

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>表格学习</title>
</head>
<body>

<!--表格table
行 tr   table raws
列 td
-->

<table border="1px">
    <tr>
<!--        colspan 跨列-->
        <td colspan="3">学生成绩</td>
    </tr>
    <tr>
<!--        rowspan 跨行-->
        <td rowspan="2">狂神</td>
        <td>语文</td>
        <td>100</td>
    </tr>
    <tr>
<!--        <td>3-1</td>-->
        <td>数学</td>
        <td>100</td>
    </tr>
    <tr>
        <!--        rowspan 跨行-->
        <td rowspan="2">哈皮</td>
        <td>语文</td>
        <td>100</td>
    </tr>
    <tr>
        <!--        <td>3-1</td>-->
        <td>数学</td>
        <td>100</td>
    </tr>
</table>

</body>
</html>

image-20230807162726457

media elements

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>媒体元素学习</title>
</head>
<body>

<!--视频和音频-->
<!--controls 控制按钮-->
<!--autoplay 自动播放-->
<video src="../resource/video/haha.mp4" controls autoplay></video>

<audio src="../resource/audio/baba.mp3" controls autoplay></audio>

</body>
</html>

page frame

image-20230807165857876

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>页面结构分析</title>
</head>
<body>

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

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

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

</body>
</html>

iframe_inside_frame

内联框架

<iframe src="path" name="mainFrame"></iframe>

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>内联框架</title>
</head>
<body>

<!--iframe内联框架
src:地址
w-h:宽度 高度
可以f12审查元素 看到w-h
-->
<iframe src="https://www.bilibili.com/" frameborder="0" width="1000px" height="1000px"></iframe>
<iframe src="//player.bilibili.com/player.html?aid=55631961&bvid=BV1x4411V75C&cid=97257967&page=11" scrolling="no" border="0" frameborder="no"
        framespacing="0" allowfullscreen="true">
</iframe>


<!--拓展跳转使用
设置name之后
当点击之后target寻找name进行跳转 在开辟的空间内打开指定链接
-->
<iframe src="" name="hello" frameborder="0" width="1000px" height="1000px"></iframe>
<a href="2基本标签.html" target="hello">点击我进行指定跳转</a>

</body>
</html>

submit form by post or get

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录注册表单学习</title>
</head>
<body>

<!--表单form
action:表单提交的位置 可以是网站  也可以是一个请求处理地址
method:post get 提交方式
    get方式提交:我们可以在url中看到我们提交的信息 不安全 但是高效
    post方式提交: 比较安全 可以传输大文件
-->
<h1>注册</h1>

<form action="2基本标签.html" method="post">

<!--    文本输入框:<input type="text">-->
    <p>名字:<input type="text" name="username"></p>
<!--    密码框:<input type="password" name="pwd">-->
    <p>密码:<input type="password" name="pwd"></p>

    <p>
        <input type="submit">
        <input type="reset">
    </p>


</form>

</body>
</html>

image-20230807185905620

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录注册表单学习</title>
</head>
<body>

<!--表单form
action:表单提交的位置 可以是网站  也可以是一个请求处理地址
method:post get 提交方式
    get方式提交:我们可以在url中看到我们提交的信息 不安全 但是高效
    post方式提交: 比较安全 可以传输大文件
-->
<h1>注册</h1>

<form action="2基本标签.html" method="post">

<!--    文本输入框:<input type="text">
value是默认值
-->
    
    <p>名字:<input type="text" name="username" value="哈皮好帅" maxlength="8" size="30"></p>
<!--    密码框:<input type="password" name="pwd">-->
    <p>密码:<input type="password" name="pwd"></p>

    <p>
        <input type="submit">
        <input type="reset">
    </p>


</form>

</body>
</html>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>登录注册表单学习</title>
</head>
<body>

<!--表单form
action:表单提交的位置 可以是网站  也可以是一个请求处理地址
method:post get 提交方式
    get方式提交:我们可以在url中看到我们提交的信息 不安全 但是高效
    post方式提交: 比较安全 可以传输大文件
-->
<h1>注册</h1>

<form action="2基本标签.html" method="get">

<!--    文本输入框:<input type="text">-->
<!--    value相当于默认值-->
<!--    readonly表示只能读 不能修改-->
<!--    hidden表示隐藏域 看不见 但是可以正常提交默认值-->
    <p>名字:<input type="text" name="username" value="哈皮好帅" maxlength="8" size="30" readonly></p>
<!--    密码框:<input type="password" name="pwd">-->
    <p>密码:<input type="password" name="pwd" hidden value="123456"></p>

    
<!--    单选框-->
    <p>性别:
<!--        name进行对单选框打组-->
<!--        value表示单选框的值 提交时的内容是value 外面的文字只是一个提示-->
<!--        disabled表示禁用 不能选-->
        <input type="radio" value="boy" name="sex" checked disabled><input type="radio" value="girl" name="sex"></p>
    
    
<!--    多选框-->
    <p>爱好:
        <input type="checkbox" value="sleep" name="hobby">睡觉
<!--        checked默认选中-->
        <input type="checkbox" value="code" name="hobby" checked>敲代码
        <input type="checkbox" value="chat" name="hobby">聊天
        <input type="checkbox" value="ball" name="hobby">篮球
    </p>

<!--    按钮-->
    <p>按钮:
<!--        但是没有变化 需要js去写效果-->
        <input type="button" name="btn1" value="点击变色">
<!--        这个图片具有和提交相同的效果-->
        <input type="image" src="../resource/image/HZNUCTF.jpg">

    </p>

<!--    下拉框,列表框-->
    <p>国家:
        <select name="列表名称">
<!--            selected表示默认选择-->
            <option value="China" selected>中国</option>
            <option value="usa">美国</option>
            <option value="eth">瑞士ETH</option>
            <option value="Italu">意大利</option>
        </select>
    </p>

<!--    文本域-->
    <p>反馈:
<!--        cols列  rows行-->
        <textarea name="textarea" cols="30" rows="10">文本内容</textarea>
    </p>

<!--    文件域-->
    <p>文件上传:
<!--        通过name属性才能上传执行 键值对的形式-->
        <input type="file" name="files">
        <input type="button" value="上传" name="upload">
    </p>

<!--    邮件验证-->
    <p>邮箱:
<!--        会验证邮件的格式 但是验证比较low 一般都上用javaScript去验证-->
        <input type="email" name="email">
    </p>
    <p>URL
        <input type="url" name="url">
    </p>
    <p>数字
<!--        范围0到100 且只能为10的倍数-->
        <input type="number" name="num" max="100" min="0" step="10">
        商品数量:
        <!--        范围0到100 且只能为10的倍数-->
        <input type="number" name="num" max="100" min="0" step="1">
    </p>

<!--    滑块
可以读取值调节音量
-->
    <p>音量:
        <input type="range" name=voice min="0" max="100" step="1">
    </p>

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


<!--    增强鼠标可用性-->
    <p>
        <label for="mark">你点我试试</label>
        <input type="text" id="mark">

    </p>




    <p>
        <input type="submit">
        <input type="reset" value="清空表单">
    </p>
</form>

</body>
</html>

from verify

  • 为什么进行表单验证?

减轻服务器的一些负担,减少一些无效的表单请求

保证数据的安全性

注意在html的验证是初级的,高级的验证用js去实现

  • placeholder 设置默认参数 提示信息
<p>密码:<input type="password" name="pwd" placeholder="请输入密码"></p>
  • requried 必须填写该字段的验证 非空判断
<p>密码:<input type="password" name="pwd" placeholder="请输入密码" required></p>
  • pattern 自己设置正则表达式验证
<p>自定义邮箱
<!--        搜索 正则表达式速查表-->
        <input type="text" name="diyemail" pattern="/^([a-z0-9_\.-]+)@([\da-z\.-]+)\.([a-z\.]{2,6})$/
/^[a-z\d]+(\.[a-z\d]+)*@([\da-z](-[\da-z])?)+(\.{1,2}[a-z]+)+$/">
    </p>

Summary

image-20230807234226604

我是哈皮,祝您每天嗨皮,我们下期再见~

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值