初识HTML

什么是HTML

Hyper Text Markup Language (超文本标记语言)

HTML发展史

HTML取代了早期的flash

HTML5的优势

世界知名浏览器厂商对HTML5的支持

微软

Google

苹果

Opera

Mozilla

市场的需求

跨平台

W3C标准

w3c

World Wide Web Consortium (万维网联盟)

成立于1994年,Web技术领域最权威和具影响力的国际中立性技术标准机构

http://www.w3.orgl
http://www.chinaw3c.orgl

w3C标准包括

结构化标准语言(HTML、XML)

表现标准语言(css)

行为标准(DOM、ECMAScript )

常见IDE

一个IDE走天下


修改访问的浏览器

HTML的基本结构

网页基本信息

注释

<!注释内容>快捷键:Ctrl + /

DOCTYPE:文档类型

<title>标签

<meta>标签

<!DOCTYPE html>   //告诉浏览器,我们要使用什么规范,默认是HTML
<html lang="en">  //总的标签,所有的HTML代码必须在标签里面,外面写的东西不会显示
<head>            //头部
<meta charset="UTF-8">		//meta描述性标签,用来描述网站的一些信息
<meta name="keywords" content="HTML学习">  		//关键词
<meta name="description" content="菜鸟真菜"> 		//描述性语言


<title>Title</title>  		//网页标题
</head>

<body>            //主体

 Hello, World!

</body>
</html>

网页基本标签

标题标签

<!--标题标签  h1 + tab键 -->
<h1>一级标题</h1>
<h2>二级标题</h2>
<h3>三级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>

段落标签

<!--p:段落标签  P + tab键-->
<p>
    本来是师者,所以传道受业解惑也,本来是一直秉承“教育不是灌输,而是点燃火焰”,本来是一直坚信“优秀的老师教授知识只是基本,还要对学生的人生观价值观产生积极正向的影响”
</p>

换行标签

<!--换行标签    自闭和标签-->
身为教学负责人, <br/>这样的问题必然会引起我的关注
//段落之间的空白很大,换行很紧凑

水平线标签

<!--水平线标签   hr + tab键   自闭和标签-->
<hr/>

字体样式标签

<!--粗体,斜体-->
<h1>字体样式标签</h1>
Hello,World!<br/>
<strong>Hello,World!</strong>
<em>Hello,World!</em>

注释和特殊符号

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

图像标签

  • JPG
  • GIF:动态图
  • PNG
  • BMP:位图

<img src=”path” alt=”text”(图像如果没有显示出来的替代的文字) title=”text” width=”x” height=”y” ,>

良好的编码习惯:资源单独放到一个文件(新建一个目录)

直接右键粘贴图片,完全脱离Windows文件管理,太方便了

<!--
src: 资源图片 : 图片的路径:相对路径(推荐),绝对路径
../ : 上一级目录,用于同级目录的切换
alt: 图片加载失败,表示图片的问题,也即图片描述
title: 鼠标放在图片上的悬浮提示
width: 宽
height:高
-->
<img src="../resource/image/1.jpeg" alt="头像" width="300" height="300">

链接标签

文本超链接

图像超链接

<!--
超链接:表示从一个地方跳转到另外一个地方  hao123导航

href:要跳转地址
target: 目标打开的窗口,在自己这个当前页面打开,还是在新的页面打开
    _self : 在自己的窗口打开
    _blank: 在新窗口中打开

和图片嵌套使用
-->
<a href="https://www.baidu.com/">百度一下
    <img src="../resource/image/1.jpeg" alt="头像" width="300" height="300">
</a>

<!--锚链接
1.需要一个锚标记
2.跳转到这个标记
-->
<!--使用name作为标记-->
<a href="top">回到顶部</a>
<!--通过#+标记名跳转-->
<a href="#top"></a>

<!--
功能性链接:邮件链接:mailto;
-->
<a href="mailto:24736743@qq.com">联系我们</a>

块元素和行内元素

块元素

无论内容多少,该元素独占一行

(p(段落)、h1-h6…)

行内元素

内容撑开宽度﹐左右都是行内元素的可以在排在一行

( a . strong . em …)

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!--块元素, 会自动换行-->
<p>我是P标签</p>
<h1>我是H1标签</h1>

<!--行内元素-->
<a href="">我是a链接</a>
<strong>粗体</strong>
<em>斜体</em>

</body>
</html>

列表

列表就是信息资源的一种展示形式。它可以使信息结构化和条理化,并以列表的样式显示出来,以便浏览者能更快捷地获得相应的信息.

列表的分类:

无序列表

有序列表

定义列表

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
    
<body>
<!--title-->
<!--无序  ul-li
导航
侧边栏新闻
在文章中,一般会使用它来排列
-->
<ul>
    <li>语文</li>
    <li>数学</li>
    <li>英语</li>
    <li>Java</li>
</ul>

<hr>

<!--有序 ol-li(order list)
问答试卷、测试题....卷子,或者需要排序的。微博热搜,榜单
-->
<ol>
    <li>====</li>
    <li>====</li>
    <li>====</li>
    <li>====</li>
</ol>

<hr>

<!--自定义列表
网站的底部,用于标记项
dt的t是title的意思,列表名称
dd:列表内容
-->
<dl>
    <dt>水果</dt>
    <dd>苹果</dd>
    <dd>梨子</dd>
    <dd>香蕉</dd>
    <dd>葡萄</dd>

</dl>

</body>
</html>

表格

为什么使用表格

简单通用

结构稳定

基本结构

  • 单元格

  • 跨行(Excel中的合并单元格)

  • 跨列

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

<!--表格标签table
border="1px" 边框属性,给表格加边框
行:row
-->
<table border="1px">
    <!--行和列-->
    <!--第一行 tr,列 td-->
    <tr>
        <td>1-1</td>
        <td>1-2</td>
        <td>1-3</td>
    </tr>
    <tr>
        <td>2-1</td>
        <td>2-2</td>
        <td>2-3</td>
    </tr>

</table>


<hr>

<table border="1px">
    <tr>
        <!--实现跨列
        colspan 对应的值:就是要跨几列
        -->
        <td colspan="2">学生成绩</td>
        <td>学生成绩</td>
    </tr>
    <tr>
        <!--科目名称-->
        <td>语文</td>
        <td>100</td>
    </tr>
    <tr>
        <!--成绩-->
        <td>数学</td>
        <td>100</td>
    </tr>
</table>

<hr>

<table border="1px">
    <tr>
        <!--rowspan 所跨的行数-->
        <td rowspan="2">张三</td>
        <td>语文</td>
        <td>100</td>
    </tr>
    <tr>
        <td>数学</td>
        <td>100</td>
    </tr>
    <tr>
        <td rowspan="2">李四</td>
        <td>语文</td>
        <td>0</td>
    </tr>
    <tr>
        <td>数学</td>
        <td>0</td>
    </tr>
</table>


</body>
</html>

媒体元素

视频元素

video

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>视频</title>
</head>
<body>

<!--video 视频标签

这里放到视频,或者音乐,都是必须要能够直接播放的。

src:视频的路径
controls: 提供播放按钮,进度条、下载按钮、全屏按钮、音量控制
autoplay: 自动播放
loop: 循环播放

-->

<video src="../resources/video/china.mp4" controls autoplay></video>

<video src="//player.bilibili.com/player.html?aid=68373450&cid=118499718&page=1" controls autoplay>
    
<!--</video>-->

<iframe src="//player.bilibili.com/player.html?aid=68373450&cid=118499718&page=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"
width="1000px" height="500px">
</iframe>


</body>
</html>

音频元素

audio

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!--音频播放-->
<audio src="../statics/audio/ab410f7bbbb0955e7ae476ae89527a5d.m4a" autoplay controls>

</audio>

</body>
</html>

页面结构分析

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!--这些标签都是一些行业规范-->

<header>
    <h2>我是头部</h2>
</header>

<nav>导航栏</nav>

<aside>侧边栏</aside>

<article>文章主题</article>

<section> 独立区域 </section>

<footer>
    <h2>我是尾部</h2>
</footer>

</body>
</html>

iframe 内联框架

在一个网页里面嵌套另外一个网页

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>
<!--iframe 内联框架
src: 地址
直接跳转
-->
<iframe src="https://www.baidu.com/" width="1000px" height="600px"></iframe>

<!--通过和a标签配合使用,实现跳转
-->    
<iframe name="mainFrame"></iframe>
<a href="https://www.cnblogs.com/flying-birds-xyg/" target="mainFrame">点击跳转</a>

<!--Ajax-->

</body>
</html>

表单

表单语法

通过提交表单产生一些事件,比如注册和登陆

input的type和name可以理解为一个键值对,成对出现

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>

<!--
提交请求:
携带的参数
key: 控件的name。这个属性不要忘记

get:携带参数,参数可以在url中看到,不安全,但是高效,大小有限
    https://www.baidu.com/?username=kuangshen&password=123456

post:参数不可见、安全,大小没有限制,可以传输大文件  (表单提交常用方式post)
-->

<!--form 表单
action: 提交地址:可以是网站也可以是一个请求处理地址
method:提交的方式(get,post)
-->

<form action="test.html" method="post">

    <!--输入框
    input 标签
        name: 必须写上
        type:
            text : 文本框
            password: 密码框
            submit: 提交按钮
            reset: 重置
    -->
    
    <p>名字:<input type="text" name="username"> </p>
    <p>密码:<input type="password" name="password"> </p>

    <p>
        <input type="submit" value="提交">
        <input type="reset" value="重置">
    </p>

</form>


</body>
</html>

表单元素格式

文本框和单选框

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
<body>


<form action="test.html" method="get">
    <!--文本框 type="text"
    value :文本框默认的初始值
    size: 文本框的长度
    maxlength: 文本框的最大输入长度,最多可以写几个字符
    -->
    <p>
        <input type="text" name="username" value="用户名" size="30" maxlength="20">
    </p>

    <!--密码框 type="password"
    size="20" 密码框的长度
    -->
    <p>
        <input type="password" name="pwd" size="20">
    </p>

    <!--单选框Group  type="radio"
    -->

    <!--单选框type="radio"
        value: 表单提交的值
        name: 名字相同,则自动分组,必须要分组,单选框中同一组的元素只能选一个
        checked: 默认选中
        disabled: 禁用
        注意事项:默认没有值,需要再input type="radio" 后增加单选框的属性
    -->
    <p>
        <input type="radio" value="男" name="sex" checked>男
        <input type="radio" value="女" name="sex" disabled>女
    </p>

</form>


</body>
</html>

按钮和多选框

    <!--多选框 type="checkbox"
        name: 必填项,如果是分组,则名称一致
        value: 表单提交的值
        checked: 默认选中
        disabled: 禁用
        注意事项:默认没有值,需要再input type="checkbox" 后增加多选框的属性
    -->
    <p>
        <input type="checkbox" name="hobby" value="code">敲代码
        <input type="checkbox" name="hobby" value="music" checked>听音乐
        <input type="checkbox" name="hobby" value="girl" disabled>女孩
    </p>



    <!--按钮
      value:按钮上的文字
    -->
    <p>
        <!--提交按钮-->
        <input type="submit" value="登录">
        <!--重置按钮--使用-->
        <input type="reset" value="清空">
        <!--普通按钮:一般后来我们会和javascript结合使用,点击按钮xxx-->
        <input type="button" value="点我">
        <!--图片按钮
            type="image"
        -->
        <input type="image" src="../statics/images/bd.png">
    </p>

列表框、文本域和文件域

    <!--下拉列表框
    select
        name: 组件名字 必填
        size:  显示的数量,默认为1

    option: 选项
        value 必填
        option标签中间写下拉框的值
        selected: 默认选中

    -->
    <select name="科目">
        <option value="1"></option>
        <option value="2">数学</option>
        <option value="3" selected>英语</option>
        <option value="4">英语</option>
        <option value="5">英语</option>
    </select>


    <!--文本域  可以在浏览器输入的文本 cols  rows-->
    <p>反馈:
        <textarea name="textarea" cols="10" rows="10">
        </textarea>
    </p>

    <!--文件域,用于在浏览器上传文件-->
    <p>
        <input type="file" name="files">
        <input type="button" value="上传" name="upload">
    </p>

功能标签(自动验证)

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

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

    <!--数字:商品数量,计数  type="number"
    最小值  min="0"
    最大值  max="100"
    步长    step="10"
    -->
    <p>
        数字:<input type="number" min="0" max="100" step="10">
    </p>

    <!--滑块
    默认值0~100
    -->
    <p>
        <input type="range" name="range" min="0" max="1000" step="2">
    </p>

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

表单应用

隐藏域

只读

禁用

增强鼠标可用性

    <!--value是默认属性,即默认值,readonly:只读-->
    <p>
        <input type="text" name="username" value="admin" readonly>
    </p>
    <!--disabled:禁用,不允许选择这个标签-->
    <p>
        <input type="radio" value="男" name="sex" >男
        <input type="radio" value="女" name="sex" disabled>女
    </p>
    <!--hidden:隐藏,密码标签的输入框就没了-->
    <p>密码:
        <input type="password" name="pwd" size="20" hidden>
    </p>
    <!--增强鼠标可用性
    label标签的for可以指向id
    -->
    <label for="mark">你点我试试,点了就进入input</label>
    <input type="text" id="mark">

表单初级验证

placeholder

提示信息

required

元素不能为空,非空判断

pattern

正则表达式

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
</head>
    
<body>

<h1>登录</h1>

<hr>

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

    <p>
        <!--通过 for="name" 来链接到 表单中的指定ID -->
        <!--placeholder="必须是url格式" 默认提示,告诉用户应该这么做-->
        用户名:
        <input type="url" name="username" placeholder="必须是url格式">
    </p>

    <p>
        <!--required必须要填写这个字段-->
        密码: <input type="password" name="pwd" required>
    </p>

    <p>
        <!--pattern:正则表达式
		百度搜索常用正则表达式,不需要强制去记
		https://tool.oschina.net/uploads/apidocs/jquery/regexp.html
		-->
        手机号码: <input type="password" name="tel" required pattern="^1[358]\d{9}">
    </p>

    <!--隐藏域-->
    <p>
        <input type="hidden" name="count" value="10">
    </p>

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


</body>
</html>