【前端开发入门】html快速入门

目录

  • 引言
  • 一、html基础模板内容
  • 二、html文档流
  • 三、html 标签
    • 1.块级元素
    • 2.行内元素
    • 3.功能性元素
    • 4.标签嵌套
  • 四、html编码习惯
  • 五、总结

引言

本系列教程旨在帮助一些零基础的玩家快速上手前端开发。基于我自学的经验会删减部分使用频率不高的内容,并不代表这部分内容不重要,只是对于初学者来说没必要一开始就学的面面俱到。我希望可以先通过主干内容带大家入门前端,细节技巧性内容,可以在后续的开发工作中自行发现并掌握。

本篇介绍html的相关内容,包含文档流的概念以及块级元素和行内元素等。同时强调了有关代码编写习惯性问题。

有关html的详细介绍,请参考:HTML 基础


一、html基础模板内容

<!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>
    <div>块级元素</div>
    <span>行内元素</span>
    <span>行内元素</span>
</body>
</html>

当使用vscode编辑器时,在新建了html文件后,输入英文符号 !,会提示!,按下tab键即可初始化一个html基础代码。
在这里插入图片描述
在学习前端初期阶段你不需要关心这个模板文件里的大部分内容,只需要关注你的编写区域

前端页面所展示的内容都会编写在 body 标签中,你所编写的内容也都会使用标签包裹起来,就像如下代码:

    <div>块级元素</div>
    <span>行内元素</span>
    <span>行内元素</span>

二、html文档流

简单来说,可以把网页理解为word文档。你在html中编写的页面内容会像文档一样从左至右、从上至下填充到文档流中,并逐行排布。每一行的高度由当前行最高的那个元素决定。


三、html 标签

标签的作用其实是把你填写在文档流的内容进行区域划分,方便后期管理,比如动态插入、设置样式等。

在业界执行了html5标准之后,现在有大量可供选择的语义化标签。对于初学者而言,你不需要按部就班的每样都了解一下,后期用的不多的类型都会逐渐遗忘。不需要投入太多精力在区分这些标签的含义以及熟悉其内置的样式。建议在入门前端半年到一年后,根据自身需求去选择性使用语义化标签。

语义化标签的优缺点:

  • 优势点:
    • 自带样式,可以更快速的构建页面。
    • 代码结构更加清晰,易读性更高,有利于团队开发。
    • 有利于搜索引擎SEO优化。
  • 缺点:
    • 语义化标签均赋予了特定的默认样式,在项目开发时仍然需要对样式进行复写,以满足UI设计稿。对初学者快速上手实际项目不够友好。

根据标签占据文档流位置的特征作为划分,我们将html标签分为 块级元素行内元素 两类。

首先明确一个概念,在不考虑标签元素层级提升的情况下,默认所有的页面标签元素都在一张平面容器中(默认指代body标签)。每次添加一个标签元素,就会往平面容器中推入该元素,就像是word文档一样,自左而右、自上而下的方向堆放。

1.块级元素

不论设置了该元素多少宽度,都会独占一行(除了一些特殊情况,本篇不做展开),之后的块级元素或行内元素只能排在下一行,自上而下排列。

这里不推荐使用除了 div 之外的任何块级元素标签,这个观点可能不太合适, 仅供大家批判讨论。

我清楚大佬们都更推荐使用语义化标签。但是相信我,真的在开发的时候只会觉得div更好用,没有什么会比在一张白纸上画画更爽的事情了。

在你有更多的开发经验之后还是建议去了解一下例如:p、h系列标签、aside、article、section、footer、header等标签。会对你未来的开发技能提升有所帮助。

2.行内元素

当宽度不超过平面容器的总宽度,则放在当前行的最左侧。下一个行内元素紧挨着依次向右排列,当前行的行内元素宽度总和大于平面容器的总宽度时,最后一个元素默认出现在下一行继续重复如上排列方式。

这里不推荐使用除了 span 之外的任何行内元素标签,理由同块级元素。

在你有更多的开发经验之后还是建议去了解一下例如:b、i、u、del、sub、sup等标签。会对你未来的开发技能提升有所帮助。

3.功能性元素

之前推荐的块级元素标签:div 和 行内元素标签:span。这两个标签都有一个特点是无任何特殊属性,仅仅作为包裹内容的元素,根据自身占据文档流位置的特性,能够在没有css介入的情况下,大体上将页面内容进行规整。

除此还有一些功能性的元素标签,例如:img、input等。
他们各自拥有一定的特性:

  • img: 将项目相对路径的图片地址或者公网可访问的图片链接填入标签src属性,即可将图片插入文档流。从占据文档流位置的特征来划分,属于行内元素。
    举例:
    <div>
      <span>图片:</span>
      <img style="width: 100px" src="./logo.png" alt="logo" />
    </div>

在这里插入图片描述

  • input: 可以通过修改标签type属性,用作输入文本、上传文件等。从占据文档流位置的特征来划分,属于行内元素。
    举例:
    <div>
      <span>输入文本:</span>
      <input type="text" />
    </div>
    <div style="margin-top: 50px">
      <span>上传附件:</span>
      <input type="file" />
    </div>

在这里插入图片描述

  • 除此之外还有其他特殊功能标签:iframevideocanvas 等。暂时接触不到,可以入门后自行探索研究。

4.标签嵌套

这里可以将页面理解为一个容器(前文提到了平面容器),我们编写的页面元素作为子元素按照文档流规则填充进入容器中(一般指代body标签)。我们可以将某一个编写的页面元素抽象理解为一个子容器(同样是平面容器),它的内部同样按照文档流的规则填充孙子元素。理论上可以无限嵌套,但都要遵守文档流规则。

继续去想象,随着孙子元素越来越多,他会将子容器越撑越大,那么子容器会在页面中占据更多的位置但依然遵守文档流规则。无论子元素承载多少孙子元素,他对于父元素都是表现为一个整体。稍微理解一下这里的抽象关系。

至此你可以随意发挥,编写标签元素并去嵌套他们。

// 用div作为子元素,包裹span和img两个孙子元素
// div整体作为一个子元素插入body标签中。
    <div>
      <span>图片:</span>
      <img style="width: 100px" src="./logo.png" alt="logo" />
    </div>

在这里插入图片描述


四、html编码习惯

在这里强调一点,不论是html、css、js或是其他编程语言,我都建议优先编辑注释伪代码,进而补充实际代码。

  • 通过注释的形式先将页面整体结构划分清楚。
  • 进而根据实际需求填写页面元素。
  • 在学习了组件化开发思想后,使用例如vue、react等前端框架进行项目开发时,可以依据划分好的页面结构结合项目需求,封装为组件。使各部分独立维护、互不影响,同时页面结构更加清晰。

举一个表单填写的例子:

  1. 先写注释
<body>
    <!-- 表单头部 -->
    
    <!-- 表单主体 -->

    <!-- 表单底部按钮 -->
  </body>
  1. 再补充代码
<!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>
    <!-- 表单头部 -->
    <div class="title">
      <img style="width: 30px" src="./logo.png" alt="logo" />
      <span>表单标题</span>
    </div>
    <!-- 表单主体 -->
    <div class="container">
      <div>
        <span>输入1:</span>
        <input type="text" />
      </div>
      <div>
        <span>输入2:</span>
        <input type="text" />
      </div>
      <div>
        <span>附件:</span>
        <input type="file" />
      </div>
    </div>
    <!-- 表单底部按钮 -->
    <div class="footer">
      <button>取消</button>
      <button>确认</button>
    </div>
  </body>
</html>


  1. 看下代码结构
    在这里插入图片描述

  2. 使用 vscodelive server 插件启动预览。在编辑器右下角找到 Go Live 点击启动服务,默认端口为 5500 。会默认启动浏览器预览,如果没有自动弹出浏览器,可以自行在浏览器输入http://localhost:5500预览。

在这里插入图片描述


五、总结

以上我们介绍完了html对于前端初学者来说的基础内容,到这里为止你应该可以编写一个不带样式但是具备基本页面结构的前端页面了。
这些内容只是html的一小部分,当你逐渐深入前端领域后,会有更多的内容需要学习探索。

再接再厉~

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

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

相关文章

vue.js 原生js app端实现图片旋转、放大、缩小、拖拽

效果图&#xff1a; 旋转 放大&#xff1a;手机上可以双指放大缩小 拖拽 代码实现&#xff1a; html <div id"home" class"" v-cloak><!-- 上面三个按钮 图片自己解决 --><div class"headImage" v-if"showBtn">&l…

数据订阅与消费中间件Canal 服务搭建(docker)

MySQL Bin-log开启 进入mysql容器 docker exec -it mysql5.7 bash开启mysql的binlog cd /etc/mysql/mysql.conf.dvi mysqld.cnf #在文件末尾处添加如下配置&#xff08;如果没有这个文件就创建一个&#xff09; [mysqld] # 开启 binlog log-binmysql-bin #log-bin/var/lib/mys…

Linux集群部署RabbitMQ

目录 一、准备三台虚拟机&#xff0c;配置相同 1、所有主机都需要hosts文件解析 2、所有主机安装erLang和rabbitmq 3、修改配置文件 4、导入rabbitmq 的管理界面 5、查看节点状态 6、设置erlang运行节点 7、rabitmq2和rabbitmq3重启服务 8、查看各个节点状态 二、添加…

LC刷题专题:二叉树;迭代;递归(897、1372、208)

文章目录 897.递增顺序搜索树1372. 二叉树中的最长交错路径208. 实现 Trie (前缀树) 897.递增顺序搜索树 https://leetcode.cn/problems/increasing-order-search-tree/description/ 这道题目本身就是一个简单题&#xff1a;非常容易实现&#xff1a;只需要在递归或者迭代中序…

基于spring boot的篮球论坛系统

作者&#xff1a;计算机搬砖家 开发技术&#xff1a;SpringBoot、php、Python、小程序、SSM、Vue、MySQL、JSP、ElementUI等&#xff0c;“文末源码”。 专栏推荐&#xff1a;SpringBoot项目源码、Vue项目源码、SSM项目源码、微信小程序源码 精品专栏&#xff1a;Java精选实战项…

每日一练:地下城游戏

174. 地下城游戏 - 力扣&#xff08;LeetCode&#xff09; 题目要求&#xff1a; 恶魔们抓住了公主并将她关在了地下城 dungeon 的 右下角 。地下城是由 m x n 个房间组成的二维网格。我们英勇的骑士最初被安置在 左上角 的房间里&#xff0c;他必须穿过地下城并通过对抗恶魔…

telnet发送邮件教程:安全配置与操作指南?

telnet发送邮件的详细步骤&#xff1f;怎么用telnet命令发邮件&#xff1f; 尽管现代邮件客户端和服务器提供了丰富的功能和安全性保障&#xff0c;但在某些特定场景下&#xff0c;了解如何使用telnet发送邮件仍然是一项有价值的技能。AokSend将详细介绍如何安全配置和操作tel…

数字电路week1

数字电路学习 一.电路基础 1.数字电路仿真软件-digital digital官网&#xff1a;https://github.com/hneemann/Digital?tabreadme-ov-file 建议使用红绿色盲模式 2.异或门 输入1输入2输出000011101110 简单来说就是判断两个输入是否相同 异或门的组成&#xff1a; 异或…

C语言 动态数据结构的C语言实现内存映像

C程序的内存映像 C程序中变量的内存分配方式  C程序中变量的内存分配方式  从静态存储区分配  全局变量和静态变量 C程序中变量的内存分配方式  从静态存储区分配  全局变量和静态变量  在栈上分配  存放函数参数值&#xff0c;局部变量值等  …

国外电商系统开发-运维系统功能清单开发

一、最终效果图 二、功能清单 功能 描述 自定义日志绘图 根据Nginx、Apache登录日志文件绘图&#xff0c;绘图数据包括&#xff1a;访问量走势&#xff0c;500错误&#xff0c;200正确百分比等 创建服务器 加入服务器 主机状态自动检查 加入主机到系统后&#xff0c;系统…

机器学习:opencv--摄像头OCR

目录 前言 一、三个函数 1.显示图像 2.点排序 3.透视变换 二、代码实例 1.打开摄像头 2.图像预处理 3.检测特定轮廓 4.对轮廓进行处理 5.释放资源 前言 摄像头OCR指的是利用摄像头捕捉图像中的文字信息&#xff0c;并通过光学字符识别&#xff08;OCR&#xff09;技…

深度学习----------------------------编码器、解码器架构

目录 重新考察CNN重新考察RNN编码器-解码器架构总结编码器解码器架构编码器解码器合并编码器和解码器 重新考察CNN 编码器&#xff1a;将输入编码成中间表达形式&#xff08;特征&#xff09; 解码器&#xff1a;将中间表示解码成输出。 重新考察RNN 编码器&#xff1a;将文…

CSS 盒子属性

1. 盒子模型组成 1.1 边框属性 1.1.1 四边分开写 1.1.2 合并线框 1.1.3 边框影响盒子大小 1.2 内边距 注意&#xff1a; 1.3 外边距 1.3.1 嵌套块元素垂直外边距的塌陷 1.4 清除内外边距 1.5 总结

EasyExcel使用介绍

EasyExcel使用 1、EasyExcel介绍 1.1 官网介绍 传统操作Excel大多都是利用Apach POI进行操作的&#xff0c;但是POI框架并不完善&#xff0c;使用过程非常繁琐且有较多的缺陷&#xff1a; 动态操作Excel非常繁琐,对于新手来说&#xff0c;很难在短时间内上手;读写时需要占用…

二叉树深度学习——将二叉搜索树转化为排序的双向链表

1.题目解析 题目来源&#xff1a;LCR 155.将二叉搜索树转化为排序的双向链表 测试用例 2.算法原理 首先题目要求原地进行修改并且要求左指针代表前驱指针&#xff0c;右指针代表后继指针&#xff0c;所以思路就是 1.使用前序遍历创建两个指针cur、prev代表当前节点与前一个节点…

Stable Diffusion绘画 | 来训练属于自己的模型:炼丹参数调整--步数设置与计算

要想训练一个优质的模型&#xff0c;一定要认识和了解模型训练中&#xff0c;参数的作用和意义。 整个模型训练的过程&#xff0c;参数并不是一成不变的&#xff0c;也没有固定的模板&#xff0c; 当我们修改了模型训练里面的某个参数&#xff0c;很可能就需要连带其他一系列…

在LabVIEW中如何读取EXCEL

在LabVIEW中读取Excel文件通常使用“报告生成工具包”&#xff08;Report Generation Toolkit&#xff09;。以下是详细步骤&#xff1a; ​ 安装工具包&#xff1a;确保已安装“报告生成工具包”。这通常随LabVIEW一起提供&#xff0c;但需要单独安装。 创建VI&#xff1a; 打…

java入门基础(一篇搞懂)

​ 如果您觉得这篇文章对您有帮助的话 欢迎您分享给更多人哦 感谢大家的点赞收藏评论&#xff0c;感谢您的支持&#xff01;&#xff01;&#xff01; 首先给大家推荐比特博哥&#xff0c;java入门安装的JDk和IDEA社区版的安装视频 JDK安装与环境变量的配置 IDEA社区的安装与使…

自然语言任务规划的新篇章:AutoGPT+P的突破

人工智能咨询培训老师叶梓 转载标明出处 尽管LLMs在自然语言处理&#xff08;NLP&#xff09;方面取得了显著进展&#xff0c;但它们在直接将自然语言指令转换为执行机器人任务的计划方面仍存在限制。这些限制主要源于LLMs在推理能力上的不足。由德国卡尔斯鲁厄理工学院&#…

Geogebra中级篇003—几何对象之点与向量

本文概述了在GeoGebra中如何使用笛卡尔或极坐标系输入点和向量。用户可以通过指令栏输入数字和角度&#xff0c;使用工具或指令创建点和向量。在笛卡尔坐标系中&#xff0c;示例如“P(1,0)”&#xff1b;在极坐标系中&#xff0c;示例如“P(1;0)”或“v(5;90)”。文章还介绍了点…