HTML 扫盲

✏️作者:银河罐头
📋系列专栏:JavaEE

🌲“种一棵树最好的时间是十年前,其次是现在”

目录

  • 前言
  • HTML 结构
    • 快速生成代码框架
  • HTML 常见标签
    • 注释标签
    • 标题标签: h1-h6
    • 段落标签:p
    • 换行标签:br
    • 格式化标签
    • 图片标签:img
    • 超链接 a
    • 表格标签
    • 列表标签
    • 表单标签
      • form 标签
      • input 标签
      • select 标签
      • textarea 标签
      • 无语义标签: div & span
  • 综合案例:展示简历信息

前言

HTML: 描述网页的骨架。标签化的语言。

<html>
    <head></head>
    <body>hello world</body>
</html>

html 的执行是浏览器的工作,浏览器会解析 html 的内容,根据里面的内容往浏览器放东西。浏览器的工作归根结底还是以汇编的形式在 CPU 上执行。

浏览器就像 JVM 一样, Java 是执行在 JVM 上的,JVM 又是执行在 CPU上的

浏览器对于 html 的语法格式检查没有很严格,即使你写的代码有一些不合规范之处,浏览器也会尽可能的去执行。称为"鲁棒性"。

直接在记事本编写代码,直接在浏览器运行代码。

浏览器的功能就是解析运行网页(HTML, CSS, JS)

开发,是在程序员的电脑上完成的写代码的过程;运行,则是在用户电脑上完成的具体的程序跑起来的过程。

一次开发,N 次运行。

  • 使用 VSCode 编写代码

1.打开目录,

2.创建代码文件

3.编辑代码

  • 保存代码

image-20230216115211635

写完代码要 ctrl + s 保存。如果没保存,右上角有个 实心小圆点

image-20230216115428566

image-20230216115547211

这里 off 可以改成自动保存。

4.运行代码(仍然是使用浏览器运行)

image-20230216115808823

在弹出的文件资源管理器中 双击 html 或 拖拽到浏览器中运行

HTML 结构

1.HTML 代码是通过标签来组织的,形如 用尖括号组织的,成对出现的这个就是标签(tag),也可以叫做元素(element).

2.一个标签通常是成对出现的,开始标签结束标签,这俩之间是标签的内容。(少数标签是可以只有一个开始标签的,单标签)

3.标签是可以嵌套的,一个标签的内容可以是其他一个或者多个标签,此时这些标签构成了一个"树形结构"。

image-20230216121205940

4.可以在开始标签中给标签赋予属性(attribute),属性相当于键值对,可以有一个或者多个。

XML 和 HTML 的区别:

XML 也是标签化的格式,有哪些标签,标签叫什么名字?有啥作用?有啥属性。都是程序员你根据你的需求场景自定义的。

HTML 也是标签化的格式,这里有哪些标签?标签叫啥名字?有啥作用?有啥属性?都是有一批大佬们规定好的,浏览器跟按照这份规定来解析实现的。HTML 不支持自定义标签

html:这是一个 html 文件最顶层标签(树根节点)。

head :存放了这个页面的一些属性(元数据meta data)

body :存放了这个页面,包含哪些内容。

  • 怎么理解属性?

现在我有个文本文件,这个文件的内容是 hello world

这个文件的属性:文件的大小、文件的创建者、文件的修改时间、文件的默认打开程序

快速生成代码框架

!(英文) + tab, 此时能自动生成代码的主体框架.

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

只需要编辑 body 的内容即可。

这个功能叫做 emmet 快捷键。

主流开发工具都有。(WebStorm 和 idea 也有)

  • 细节解释:

image-20230216124059675

HTML 常见标签

注释标签

<!-- 这是注释 -->

// /**/ # 这些都不是 html中合法的注释

注释的内容是不会在页面中显示的。(但是如果右键,查看网页源代码是可以看到注释的)

vscode 可以使用 ctrl + / 快速注释代码

webstorm 同理

标题标签: h1-h6

h1 最大最粗,h6 最小最细。

<body>
    <h1>一级标题</h1>
    <h2>二级标题</h2>
    <h3>三级标题</h3>
    <h4>四级标题</h4>
    <h5>五级标题</h5>
    <h6>六级标题</h6>
</body>

image-20230216130541068

HTML 网页最初只是用来代替传统的媒体的报纸/杂志,把报纸杂志搬到电脑里

注意到,这里每个标题都是独占一行的,这和代码的编写没有关系,

<body>
    <h1>一级标题</h1><h2>二级标题</h2>
    <h3>三级标题</h3>
    <h4>四级标题</h4>
    <h5>五级标题</h5>
    <h6>六级标题</h6>
</body>

这样写,运行效果不变。

在 html 里面,标签是否换行和代码编写无关,和 标签自身有关。(有的标签独占一行,有的标签不独占)

在 html 源代码中,写的 换行会被忽略。写的多个连续空格会被视为一个。

换行快捷键:

ctrl + enter

段落标签:p

lorem:自动生成一段随机的文本,帮我们调试效果。

image-20230216141750809

每个段落之间,要换行,还有一个明显的段落间距。(这个 间距 通过 css 才能调)

换行标签:br

image-20230216142116573

image-20230216142144077

格式化标签

<body>
    <strong>变粗!</strong>
    <b>变粗!</b>

    <em>倾斜</em>
    <i>倾斜</i>

    <del>删除线</del>
    <s>删除线</s>

    <ins>下划线</ins>
    <u>下划线</u>
</body>

image-20230216142650188

这些标签都是不独占一行的。

图片标签:img

网页上是可以显示图片的。

img 有个核心属性,src(必填项)

src 描述了该图片的路径,路径可以是一个本地的绝对路径,也可以是一个相对路径,还可以是网络路径。

  • 绝对路径
绝对路径写法:
<body>
    <img src="d:/xiaojiejie.jpg" >
</body>

image-20230216143922635

这里 src 填的是 绝对路径。

  • 相对路径

如果填相对路径,一定要明确工作目录是哪个。

html 的工作目录就是 html 文件所在的目录。

image-20230216144412450

相对路径写法:
<body>
    <img src="./xiaojiejie.jpg" >
</body>
./可以省略
<body>
    <img src="xiaojiejie.jpg" >
</body>

image-20230216144836744

  • 网络地址

右键图片,复制图片地址,此时就得到了图片的网络路径,拿着这个网络路径填写到浏览器里,就能直接打开图片。

或者把这个路径写到 img 里也能显示这个图片。

<body>
    <img src="https://img02.sogoucdn.com/app/a/100520093/f9d5c084396d06f6-0c7006bf1d0bb8d5-44cfb308fd53675f90401be304dc572d.jpg" >
</body>

img 别的属性

  • alt 属性:在图片挂了的时候,就会显示 alt 对应的文本。

如果图片地址是错的,

image-20230216152446598

  • title 属性

鼠标悬停在 图片上会给出一个提示。

  • width/height

描述图片的尺寸

宽度和高度可以同时设置,也可以只设置一个。如果只设置一个,另外一个会等比例缩放。

<body>
    <img width="1000px" title="这是一个小姐姐" alt="这是一个漂亮小姐姐" src="https://img02.sogoucdn.com/app/a/100520093/f9d5c084396d06f6-0c7006bf1d0bb8d5-44cfb308fd53675f90401be304dc572d.jpg" >
</body>

px 像素。(前端开发中常用单位)

关于图片的尺寸,也可以使用 css 来设置。

超链接 a

链接 link(快捷方式)

"超"链接跳转到的页面是当前网站之外的。

<body>
    <a href="https://www.sogou.com">搜狗</a>
    <a href="https://www.baidu.com">百度</a>
</body>
    这里的域名可以换成 ip 地址

image-20230216155549471

还有个属性,target, 一般都是写作 target = “_blank”,就可以打开一个新的标签页,而不是替换原有标签页。

表格标签

table 标签表示整个表格

tr 表示一行

td 表示一个单元格

th 表示表头中的一个单元格

<body>
    <table>
        <tr>
            <th>姓名</th>
            <th>电话</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>110</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>120</td>
        </tr>
        <tr>
            <td>王五</td>
            <td>119</td>
        </tr>
    </table>
</body>

image-20230216161800912

    <style> 
        td{
            text-align: center;
        }
    </style>
</head>
<body>
    <table width="500px" height="300px" border="1px" cellspacing="0">
        <tr>
            <th>姓名</th>
            <th>电话</th>
        </tr>
        <tr>
            <td>张三</td>
            <td>110</td>
        </tr>
        <tr>
            <td>李四</td>
            <td>120</td>
        </tr>
        <tr>
            <td>王五</td>
            <td>119</td>
        </tr>
    </table>
</body>

image-20230216162953283

image-20230216163010939

这个操作就是让页面中 所有的 td 标签中的文字都水平居中(CSS)

列表标签

有序列表 ol :ordered list

无序列表 ul :unordered list

列表项 li :list item

<body>
    <!-- 有序列表 -->
    <h3>四大名著</h3>
    <ol>
        <li>三国演义</li>
        <li>水浒传</li>
        <li>西游记</li>
        <li>红楼梦</li>
    </ol>
    <!-- 无序列表 -->
    <ul>
        <li>三国演义</li>
        <li>水浒传</li>
        <li>西游记</li>
        <li>红楼梦</li>
    </ul>
</body>

image-20230216164206548

表单标签

表单是让用户输入信息的重要途径.

form 标签

使用 form 进行前后端交互,把页面上用户进行的操作/输入提交到服务器上(暂时不展开,后面学了HTTP协议再说)

input 标签

1)文本框

<body>
    <input type="text">//单行文本框
</body>

image-20230220142747092

2)密码框

<body>
    <input type="password">//也是单行文本框,是用来输入密码的
</body>

image-20230220142912449

3)单选框

<body>
    请选择性别:
    <input type="radio"><input type="radio"></body>

image-20230220143751213

对于单选框需要加个 name 属性,name 属性相同的单选框, 值之间是互斥的。

image-20230220143721724

<body>
    请选择性别:
    <input type="radio" name="gender"><input type="radio" name="gender"></body>

加入 checked 属性,默认选择

<body>
    请选择性别:
    <input type="radio" name="gender"><input type="radio" name="gender" checked="checked"></body>

4)复选框

<body>
    大学生每天都干啥
    <input type="checkbox"> 吃饭
    <input type="checkbox"> 睡觉
    <input type="checkbox"> 学习
</body>

image-20230220144413088

也可以加上默认选项

<body>
    大学生每天都干啥
    <input type="checkbox" checked="checked"> 吃饭
    <input type="checkbox"> 睡觉
    <input type="checkbox"> 学习
</body>

image-20230220144534986

5)按钮

<body>
    <input type="button" value="我是个按钮">
</body>

image-20230220144727223

对于按钮点击之后要干啥, 需要通过 JS 来配合

<body>
    <input type="button" value="我是个按钮" onclick="alert('hello')">
</body>

alert 是 JS 里的一个函数,作用是弹出一个对话框,对话框的内容就是 hello

6)提交按钮

type="submit"

外表和 button 差不多,会触发 form 和服务器的交互。

7)上传文件

<body>
    <input type="file">
</body>

image-20230220145358332

select 标签

下拉菜单

<body>
    <select>
        <option>北京</option>
        <option>上海</option>
        <option>广州</option>
        <option>深圳</option>
        <option>杭州</option>
    </select>
</body>

image-20230220145747461

textarea 标签

多行编辑框

<body>
    <textarea cols="30" rows="10"></textarea>
</body>

image-20230220150001733

上述这些标签也可以称为是"控件", 构成一个图形化界面的基本要素。

无语义标签: div & span

前面的标签都是有特定含义的,而无语义标签是没有特定含义的。无语义标签可以用在各种场景。

div 默认是独占一行的。(块级元素)

span 默认是不独占一行的。(行内元素)

综合案例:展示简历信息

<body>
    <div style="border: 3px solid black;">
    <h1>xxx的简历</h1>
    <h2>基本信息</h2>
    <img src="头像.jpg" alt="" height="200px">
    <p>
        求职意向:软件开发工程师
    </p>
    <p>
        联系方式:110
    </p>
    <p>
        邮箱:123456@qq.com
    </p>
    <p>
        <a href="https://www.csdn.com">我的博客</a>
    </p>
    <p>
        <a href="https://github.com">我的 github</a>
    </p>
    <h2>教育背景</h2>
    <ol>
        <li>
            1990-1996 xxx小学
        </li>
        <li>
            1997-2000 xxx初中
        </li>
        <li>
            2001-2004 xxx高中
        </li>
        <li>
            2005-2008 xxx大学
        </li>
    </ol>
    <h2>专业技能</h2>
    <ul>
        <li>
            熟练掌握 Java 的基本语法,熟悉面向对象程序设计思想
        </li>
        <li>
            熟练常用的数据结构和算法,比如顺序表,链表,二叉树,堆,哈希表等
        </li>
        <li>
            熟练操作系统中的典型概念,熟练掌握并发编程,对于多线程,线程安全,加锁等操作有深刻的认识
        </li>
        <li>
            熟练掌握网络编程,熟悉网络通信原理,熟悉 TCP/IP 协议栈中的典型协议工作机制
        </li>
        <li>
            熟练掌握 SQL,能够进行基础的增删改查, 熟悉 mysql 的索引和事务等机制
        </li>
    </ul>
    <h2>我的项目</h2>
    <ol>
        <li>
            <h3>留言墙</h3>
            <p>开发时间: 2008-2011</p>
            <div>功能介绍</div>
            <ul>
                <li>支持留言发布</li>
                <li>支持匿名留言</li>
            </ul>
        </li>
        <li>
            <h3>学习小助手</h3>
            <p>开发时间: 2011-2012</p>
            <div>功能介绍</div>
            <ul>
                <li>支持错题检索</li>
                <li>支持同学探讨</li>
            </ul>
        </li>
    </ol>
    <h2>个人评价</h2>
    在校期间,学习成绩优异, 多次获得奖学金
    </div>
</body>

image-20230220160248677

HTML 只是描述了页面的骨架结构. 使用 CSS 可以针对页面进行进一步美化.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/154.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

PTA第六章作业详解

&#x1f680;write in front&#x1f680; &#x1f4dd;个人主页&#xff1a;认真写博客的夏目浅石. &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd; &#x1f4e3;系列专栏&#xff1a;夏目的作业 &#x1f4ac;总结&#xff1a;希望你看完之后&am…

JAVA进阶 —— Stream流

目录 一、 引言 二、 Stream流概述 三、Stream流的使用步骤 1. 获取Stream流 1.1 单列集合 1.2 双列集合 1.3 数组 1.4 零散数据 2. Stream流的中间方法 3. Stream流的终结方法 四、 练习 1. 数据过滤 2. 数据操作 - 按年龄筛选 3. 数据操作 - 演员信息要求…

蓝桥杯第十四届蓝桥杯模拟赛第三期考场应对攻略(C/C++)

这里把我的想法和思路写出来&#xff0c;恳请批评指正&#xff01; 目录 考前准备 试题1&#xff1a; 试题2&#xff1a; 试题3&#xff1a; 试题4&#xff1a; 试题5&#xff1a; 试题6&#xff1a; 试题7&#xff1a; 试题8&#xff1a; 试题9&#xff1a; 试题1…

第十六章 Java为什么使用序列化

为何要指定serialVersionUID的值如果不指定显示serialVersionUID的值&#xff0c;jvm在序列化时会自动生成一个serialVersionUID&#xff0c;跟属性一起序列化&#xff0c;再进行持久化或者网络传输&#xff0c;在反序列化时&#xff0c;jvm会根据属性自动生成一个新版的serial…

【Jetpack】Lifecycle 架构组件 ( 系统组件与普通组件解耦 | Lifecycle 解耦系统组件与普通组件 | 解耦服务组件与普通组件 | 监听应用程序生命周期 )

文章目录一、系统组件与普通组件解耦二、Lifecycle 解耦 Activity 系统组件与 UI 组件1、传统实现方式① Activity 系统组件② 布局文件③ 执行效果2、LifeCycle 实现方式① 自定义 UI 组件② Activity 系统组件③ 布局组件④ 执行效果三、LifecycleService 解耦 Service 与 UI…

为什么北欧的顶级程序员数量远超中国?

说起北欧&#xff0c;很多人会想到寒冷的冬天&#xff0c;漫长的极夜&#xff0c;童话王国和圣诞老人&#xff0c;但是如果我罗列下诞生于北欧的计算机技术&#xff0c;恐怕你会惊掉下巴。Linux&#xff1a;世界上最流行的开源操作系统&#xff0c;最早的内核由Linus Torvalds开…

2022济南大学acm新生赛题解

通过答题情况的难度系数&#xff1a; 签到&#xff1a;ABL 简单&#xff1a;DGKQ 中等&#xff1a;CMN 困难&#xff1a;EFHIJOPRST A-和 算出n个数的和判断正负性即可&#xff01;&#xff01;&#xff01; 发现很多同学的代码错误&#xff1a;要么sum未赋初值&#xf…

DDOS攻击

注&#xff1a;本博客只是为了自己的学习&#xff0c;记录自己的学习&#xff0c;请勿用于其他途径、1、winR-->cmd2、ping 网站3、替换IP1 import java.io.BufferedInputStream;2 import java.io.IOException;3 import java.net.MalformedURLException;4 import java.net.U…

Vue3做出B站【bilibili】 Vue3+TypeScript+ant-design-vue【快速入门一篇文章精通系列(一)前端项目案例】

本项目分为二部分 1、后台管理系统&#xff08;用户管理&#xff0c;角色管理&#xff0c;视频管理等&#xff09; 2、客户端&#xff08;登录注册、发布视频&#xff09; Vue3做出B站【bilibili】 Vue3TypeScriptant-design-vue【快速入门一篇文章精通系列&#xff08;一&…

【C++】STL简介 及 string的使用

文章目录1. STL简介1.1 什么是STL1.2 STL的版本1.3 STL的六大组件2. string类的使用2.1 C语言中的字符串2.2 标准库中的string类2.3 string类的常用接口说明1. string类对象的常见构造2. string类对象的容量操作3. string类对象的修改操作4. resize和reserve5. 认识迭代器&…

产品研发项目进度管理软件工具有哪些推荐?整理10款最佳进度管理软件

项目进度管理是确保项目按时完成的关键过程&#xff0c;使用合适的项目进度管理工具能确保帮助项目管理者实时了解和控制项目的进展情况&#xff0c;及时发现和解决问题&#xff0c;减少项目风险&#xff0c;提高项目效率和管理水平。这里将整理出国内外最受欢迎的10款项目进度…

ASEMI低压MOS管SI2301参数,SI2301体积,SI2301尺寸

编辑-Z ASEMI低压MOS管SI2301参数&#xff1a; 型号&#xff1a;SI2301 漏极-源极电压&#xff08;VDS&#xff09;&#xff1a;20V 栅源电压&#xff08;VGS&#xff09;&#xff1a;8V 漏极电流&#xff08;ID&#xff09;&#xff1a;2.3A 功耗&#xff08;PD&#xf…

Simulink壁咚(一)——What and How

目录 一、前言 二、Simulink 知多少 三、滤波算法 四、Model Verification 五、Model Coverage 六、Simulink测试实例 七、Simulink Test 八、Test Manager 九、Test Harness 十、 学习 一、前言 Simulink从2017b以后更加工程化和实用化&#xff0c;基于MBD的功能日趋…

MATLAB绘制ROC曲线

ROC曲线(Receiver Operating Characteristic Curve) 1 简介 ROC曲线是用于评估二元分类模型&#xff08;如Logistic回归&#xff09;表现优劣的一种工具&#xff0c;其横轴表示假阳性率&#xff08;false positive rate&#xff0c;FPR&#xff09;&#xff0c;即实际为负例但…

MySQL事务详解

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;Spring事务和MySQL事务详解 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: …

vue3 构建属于自己的组件库dxui

文章目录前言第一步&#xff0c;通过vue-cli搭建vue3框架第二步&#xff0c;构建一个入口&#xff0c;将所有的组件统一管理第三步 修改package.json &#xff0c;对组件进行单独打包第四步输入命令行开始打包第五步&#xff0c;修改package.json文件&#xff0c;为npm 发布做准…

[ vulnhub靶机通关篇 ] 渗透测试综合靶场 DC-1 通关详解 (附靶机搭建教程)

&#x1f36c; 博主介绍 &#x1f468;‍&#x1f393; 博主介绍&#xff1a;大家好&#xff0c;我是 _PowerShell &#xff0c;很高兴认识大家~ ✨主攻领域&#xff1a;【渗透领域】【数据通信】 【通讯安全】 【web安全】【面试分析】 &#x1f389;点赞➕评论➕收藏 养成习…

Python 基础教程【1】:Python介绍、变量和数据类型、输入输出、运算符

本文已收录于专栏&#x1f33b;《Python 基础》文章目录1、Python 介绍2、变量和数据类型2.1 注释的使用2.2 变量以及数据类型2.2.1 什么是变量&#xff1f;2.2.2 怎么给变量起名&#xff1f;2.2.3 变量的类型&#x1f3a8; 整数 int&#x1f3a8; 浮点数&#xff08;小数&…

教你成为比卡卡西还牛逼的全能忍者,全拷贝与分割函数

如何成为一个集雷切&#xff0c;写轮眼侦查和拷贝与一身的卡卡西&#xff0c;下面教你&#xff01; 目录 第一式——雷切&#xff01; strtok 第二式——写轮眼侦查&#xff01; strerror函数 第三式——写轮眼拷贝&#xff01; memcpy 模拟实现memcpy函数 &#x1f60e;…

Hadoop集群搭建

文章目录一、运行环境配置(所有节点)1、基础配置2、配置Host二、依赖软件安装(101节点)1、安装JDK2、安装Hadoop(root)3、Hadoop目录结构三、本地运行模式&#xff08;官方WordCount&#xff09;1、简介2、本地运行模式&#xff08;官方WordCount&#xff09;四、完全分布式运行…