突破 HTML 学习瓶颈:表格、列表与表单的学习进度(一)

HTML 学习之困,如何破局?

作为一名热衷于网页开发的博主,在 HTML 的学习道路上,我可谓是 “过关斩将”,但也遇到过不少 “硬茬”。起初,当我满心欢喜地以为掌握了基本的 HTML 标签,就能轻松搭建出理想中的网页时,现实却给了我沉重一击。

就拿简单的表格布局来说,我按照自己的理解编写代码,满心期待着能在浏览器中看到一个结构规整、样式美观的表格,可结果呈现出来的却是一团糟,单元格的宽度、高度完全不受控制,边框也粗细不均,有的甚至还莫名其妙地消失了。检查代码时,各种报错信息更是让我眼花缭乱,一会儿提示标签未闭合,一会儿又说属性值错误,当时真的是感觉自己像个无头苍蝇,完全不知道从何下手去解决这些问题 。

在学习列表时,我也遇到了不少麻烦。有序列表的编号总是不能按照我期望的起始值和顺序排列,无序列表的项目符号样式也很难调整成我想要的样子。而且,当我尝试将列表嵌套在复杂的页面结构中时,整个布局就会变得混乱不堪,元素之间的间距和层次关系也变得难以把控。

还有表单部分,那更是让我头疼不已。提交表单时,数据总是无法正确地发送到服务器,验证表单输入的合法性时,各种条件判断和提示信息的显示也总是出现问题。有时候,好不容易解决了一个问题,却又引发了新的问题,真的是让我心力交瘁。

相信不少学习 HTML 的小伙伴都有过类似的经历,那种面对问题时的迷茫和无助,真的很容易让人产生挫败感,甚至怀疑自己是否适合学习网页开发。但正是这些困难和挫折,让我明白,HTML 的学习绝非一蹴而就,每一个看似简单的知识点背后,都隐藏着许多需要我们深入探究和掌握的细节。在不断解决这些问题的过程中,我也逐渐摸索出了一些方法和技巧,今天就想和大家分享一下我在突破 HTML 学习瓶颈 —— 表格、列表与表单时的学习进度和心得。

表格:构建规整数据世界

在 HTML 中,表格是一种非常重要的元素,它能够将数据以结构化的方式呈现出来,让信息更加清晰明了 。无论是展示学生成绩、商品信息,还是其他各类数据,表格都能发挥其独特的作用。下面,我将分享一下我在学习表格过程中的一些关键知识点和心得。

(一)表格基础语法大揭秘

表格的创建主要依赖于<table>、<tr>、<th>和<td>这几个基本标签。<table>标签用于定义整个表格,就像是一个大容器,将所有的表格内容都包含在其中。<tr>标签代表表格中的一行,每一个<tr>标签内可以包含多个单元格标签。<th>标签用于定义表头单元格,通常表头会以加粗、居中的方式显示,以便与普通数据单元格区分开来,让用户一眼就能明白每列数据的含义。<td>标签则是用于定义普通的数据单元格,它是真正存放数据的地方。

下面通过一个简单的示例来展示如何创建一个学生成绩表:

 

<table border="1">

<tr>

<th>姓名</th>

<th>语文</th>

<th>数学</th>

<th>英语</th>

</tr>

<tr>

<td>张三</td>

<td>90</td>

<td>95</td>

<td>88</td>

</tr>

<tr>

<td>李四</td>

<td>85</td>

<td>87</td>

<td>92</td>

</tr>

</table>

在这个示例中,我们首先使用<table>标签创建了一个表格,并通过border="1"属性为表格添加了边框,这样可以更清晰地看到表格的结构。然后,在第一个<tr>标签内,使用<th>标签定义了表头,分别是 “姓名”“语文”“数学”“英语”。接着,在后面的两个<tr>标签内,使用<td>标签定义了每一行的数据,分别对应张三和李四的成绩。通过这样简单的代码,一个基本的学生成绩表就创建完成了。

(二)表格样式属性巧设置

虽然基础语法能够创建出表格,但默认的表格样式可能并不美观,这就需要我们通过设置一些样式属性来让表格更加美观。在 HTML 中,可以使用style属性来设置表格的样式,也可以通过 CSS 来进行更灵活、更强大的样式控制。这里先简单介绍一些常用的样式属性。

  • 边框设置:可以通过border属性来设置表格的边框,包括边框的宽度、颜色和样式。例如,border: 1px solid black;表示设置边框宽度为 1 像素,样式为实线,颜色为黑色。通过设置不同的border属性值,可以实现各种不同风格的边框效果。
  • 背景颜色设置:使用background - color属性可以设置表格的背景颜色,也可以单独设置表头、表行或单元格的背景颜色。比如,将表头的背景颜色设置为#4CAF50(绿色),可以使表头更加突出。示例代码如下:
 

<style>

th {

background-color: #4CAF50;

color: white;

}

</style>

  • 对齐方式设置:通过text-align属性可以设置单元格内文本的对齐方式,常见的值有left(左对齐)、center(居中对齐)和right(右对齐)。例如,将所有单元格内的文本设置为居中对齐:
 

<style>

td, th {

text-align: center;

}

</style>

为了更直观地对比不同样式设置的效果,我们来看下面两个表格:

  • 未设置样式的表格
 

<table>

<tr>

<th>姓名</th>

<th>年龄</th>

</tr>

<tr>

<td>小明</td>

<td>20</td>

</tr>

</table>

这个表格没有设置任何样式,看起来比较简陋,边框不明显,文本也没有统一的对齐方式。

  • 设置样式后的表格
 

<style>

table {

border-collapse: collapse;

width: 100%;

}

th, td {

border: 1px solid #dddddd;

text-align: left;

padding: 8px;

}

tr:nth-child(even) {

background-color: #f2f2f2;

}

th {

background-color: #4CAF50;

color: white;

}

</style>

<table>

<tr>

<th>姓名</th>

<th>年龄</th>

</tr>

<tr>

<td>小明</td>

<td>20</td>

</tr>

<tr>

<td>小红</td>

<td>22</td>

</tr>

</table>

设置样式后的表格,边框合并,宽度占满父容器,表头有了鲜明的背景颜色和白色文本,隔行背景颜色不同,文本左对齐,整体看起来更加美观、专业,数据也更易于阅读。

(三)复杂表格结构搭建

在实际应用中,我们经常会遇到需要创建复杂表格结构的情况,这时就需要用到表头<thead>、表格主体<tbody>和表格脚注<tfoot>等标记。<thead>标签用于定义表格的表头部分,通常包含列标题,它可以让表头在表格滚动时保持固定,方便用户查看。<tbody>标签用于定义表格的主体内容,也就是实际的数据部分。<tfoot>标签用于定义表格的脚注部分,一般包含一些汇总信息或说明。

以电商商品参数表为例,代码如下:

 

<table>

<caption>商品参数表</caption>

<thead>

<tr>

<th>参数名称</th>

<th>参数值</th>

</tr>

</thead>

<tbody>

<tr>

<td>品牌</td>

<td>小米</td>

</tr>

<tr>

<td>型号</td>

<td>13 Pro</td>

</tr>

<tr>

<td>屏幕尺寸</td>

<td>6.73英寸</td>

</tr>

</tbody>

<tfoot>

<tr>

<td colspan="2">以上参数仅供参考,实际参数可能因生产批次等因素略有差异。</td>

</tr>

</tfoot>

</table>

在这个示例中,<caption>标签为表格添加了标题 “商品参数表”。<thead>部分定义了表头,包含 “参数名称” 和 “参数值” 两列。<tbody>部分填充了具体的商品参数数据。<tfoot>部分则添加了脚注信息,通过colspan="2"属性让脚注单元格横跨两列。这样的结构使得表格层次更加清晰,易于维护和扩展,无论是对于开发者还是用户来说,都能更方便地理解和处理表格中的数据。

列表:让内容有序呈现

列表在 HTML 中也是非常重要的元素,它可以让内容以一种有序或无序的方式呈现,增强内容的可读性和条理性 。无论是制作导航菜单、展示步骤流程,还是列出项目清单,列表都能派上用场。接下来,让我们一起深入了解 HTML 中的列表。

(一)无序列表:自由的项目集合

无序列表使用<ul>(Unordered List)标签创建,其中的每个列表项使用<li>(List Item)标签定义。无序列表通常以项目符号(小圆点)开始每个列表项 。它非常适合用于项目没有特定顺序的场合,比如购物清单、功能列表等。例如,我们要创建一个今日待办事项的无序列表:

 

<ul>

<li>完成HTML学习笔记整理</li>

<li>购买生活用品</li>

<li>锻炼身体</li>

</ul>

在这个示例中,<ul>标签定义了无序列表,每个<li>标签表示一个待办事项。在 HTML4 中,可以使用type属性来改变项目符号的样式(如disc、circle或square),但在 HTML5 中,建议使用 CSS 来控制列表样式。例如,使用 CSS 将项目符号设置为方形:

 

ul {

list-style-type: square;

}

(二)有序列表:步骤与顺序的体现

有序列表使用<ol>(Ordered List)标签创建,同样每个列表项也是用<li>标签定义。有序列表通常以数字、字母或罗马数字等有序的符号开始每个列表项,用于表示步骤、顺序或排名等具有明确顺序的内容 。比如,我们要展示一份简单的炒菜烹饪步骤:

 

<ol>

<li>准备所有食材并洗净</li>

<li>将食材切成合适大小</li>

<li>热锅加油爆香</li>

<li>依次加入食材翻炒</li>

<li>加入调料烹饪至熟</li>

</ol>

在这个示例中,<ol>标签创建了有序列表,每个<li>标签代表一个烹饪步骤,浏览器会自动为每个步骤编号,从 1 开始依次递增。<ol>标签还可以通过start属性指定起始编号,通过reversed属性实现倒序排列,通过type属性改变编号的类型(如1、a、A、i、I等)。例如,将起始编号设置为 3:

 

<ol start="3">

<li>步骤一</li>

<li>步骤二</li>

<li>步骤三</li>

</ol>

(三)定义列表:术语与解释的组合

定义列表使用<dl>(Definition List)标签创建,它不同于无序列表和有序列表,用于表示术语及其解释,通常用于词汇表、术语解释或者键值对数据 。在定义列表中,<dt>(Definition Term)标签用于定义术语,<dd>(Definition Description)标签用于定义术语的描述。例如,我们要创建一个简单的 HTML 术语表:

 

<dl>

<dt>HTML</dt>

<dd>超文本标记语言,是创建网页的标准标记语言</dd>

<dt>CSS</dt>

<dd>层叠样式表,用于设置HTML元素的样式</dd>

<dt>JavaScript</dt>

<dd>一种编程语言,可以为网页添加交互功能</dd>

</dl>

在这个示例中,<dl>标签定义了整个定义列表,每个<dt>标签后面紧跟着对应的<dd>标签,用于解释该术语的含义。一个<dl>标签内可以包含多个<dt>和<dd>组合,以定义多个术语及其解释。

(四)列表嵌套:打造多级结构

HTML 列表可以相互嵌套,创建多级列表结构,用于展示具有层次关系的内容 。例如,我们要展示一个 Web 开发课程大纲:

 

<ol>

<li>HTML基础

<ul>

<li>标签与属性</li>

<li>文档结构</li>

<li>列表与表格</li>

</ul>

</li>

<li>CSS样式

<ul>

<li>选择器</li>

<li>盒模型</li>

<li>布局技术</li>

</ul>

</li>

</ol>

在这个示例中,外层是一个有序列表<ol>,代表课程的主要章节。每个章节又包含一个无序列表<ul>,用于展示该章节下的具体知识点。通过列表嵌套,可以清晰地呈现出课程内容的层次结构,使读者更容易理解和把握整体内容。列表嵌套的层数没有严格限制,但要注意保持结构清晰,避免过度嵌套导致代码复杂度过高。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

理一理Mysql日期

在 MySQL 数据库中&#xff0c;关于日期和时间的类型主要有以下几种&#xff1a; 1. **DATE**: 仅存储日期部分&#xff0c;格式为 YYYY-MM-DD&#xff0c;例如 2023-10-31。 2. **TIME**: 仅存储时间部分&#xff0c;格式为 HH:MM:SS&#xff0c;例如 14:30:00。 3. **DATE…

CEF 多进程模式时,注入函数,获得交互信息

CEF 控制台添加一函数,枚举 注册的供前端使用的CPP交互函数有哪些-CSDN博客 上篇文章,是在模拟环境,单进程中设置的,这篇文章,将其改到正常多进程环境中设置。 对应于工程中的 CEF_RENDER项目 一、多进程模式中,改写 修改步骤 1、注入函数 client_app_render.cpp 在…

C++ 介绍STL底层一些数据结构

c 标准模板库中&#xff0c;set和map的底层实现通常基于红黑树&#xff0c;然们都是平衡二叉搜索树(Balanceed Binary Serach Tree&#xff09;的一种,这种结构保证了 插入&#xff0c;删除&#xff0c;查找的时间复杂度为O(log n)比普通二叉搜索树更高效。 set set<T>…

在 Kubernetes(k8s)部署过程中常见的问题

在 Kubernetes(k8s)部署过程中,常见的问题主要包括以下几类,以下是具体示例及简要说明: 1. 资源配额不足(Resource Quota) 现象:Pod 处于 Pending 状态,事件日志显示 Insufficient CPU/Memory。 原因: 节点(Node)资源不足,无法满足 Pod 的 requests 或 limits。 命…

Android Window浮窗UI组件使用JetPack

目前接手的一个业务&#xff0c;应用不是用Activity/Fragment作为界面组件&#xff0c;而是用Window浮窗的形式显示&#xff0c;并且浮窗有很多种类型&#xff0c;每一种类型对应一类业务。那么怎么使用Jatpack的相关特性来设计架构并提高开发效率呢&#xff1f;分下面几个模块…

基于WebRtc,GB28181,Rtsp/Rtmp,SIP,JT1078,H265/WEB融合视频会议接入方案

智能融合视频会议系统方案—多协议、多场景、全兼容的一站式视频协作平台 OvMeet,LiveMeet针对用户​核心痛点实现功能与用户价值 &#xff0c;Web平台实现MCU多协议&#xff0c;H265/H264等不同编码监控&#xff0c;直播&#xff0c;会议&#xff0c;调度资源统一融合在一套界…

深入浅出理解LLM PPO:基于verl框架的实现解析之一

1. 写在前面 强化学习(Reinforcement Learning,RL)在大型语言模型(Large Language Model,LLM)的训练中扮演着越来越重要的角色。特别是近端策略优化(Proximal Policy Optimization,PPO)算法,已成为对齐LLM与人类偏好的主流方法之一。本文将基于verl框架(很多复刻De…

卷积神经网络 - 汇聚层

卷积神经网络一般由卷积层、汇聚层和全连接层构成&#xff0c;本文我们来学习汇聚层。 汇聚层(Pooling Layer)也叫子采样层(Subsampling Layer)&#xff0c;其作用是进 行特征选择&#xff0c;降低特征数量&#xff0c;从而减少参数数量。 卷积层虽然可以显著减少网络中连接的…

vue使用element-ui自定义样式思路分享【实操】

前言 在使用第三方组件时&#xff0c;有时候组件提供的默认样式不满足我们的实际需求&#xff0c;需要对默认样式进行调整&#xff0c;这就需要用到样式穿透。本篇文章以vue3使用element-ui的Tabs组件&#xff0c;对Tabs组件的添加按钮样式进行客制化为例。 确定需要修改的组…

【工具分享】vscode+deepseek的接入与使用

目录 第一章 前言 第二章 获取Deepseek APIKEY 2.1 登录与充值 2.2 创建API key 第三章 vscode接入deepseek并使用 3.1 vscode接入deepseek 3.2 vscode使用deepseek 第一章 前言 deepseek刚出来时有一段时间余额无法充值&#xff0c;导致小编没法给大家发完整的流程&…

【蓝桥杯速成】| 9.回溯升级

题目一&#xff1a;组合综合 问题描述 39. 组合总和 - 力扣&#xff08;LeetCode&#xff09; 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target &#xff0c;找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 &#xff0c;并以列表形式返…

【C++进阶】深入探索类型转换

目录 一、C语言中的类型转换 1.1 隐式类型转换 1.2. 显式类型转换 1.3.C语言类型转换的局限性 二、C 类型转换四剑客 2.1 static_cast&#xff1a;静态类型转换&#xff08;编译期检查&#xff09; 2.2 dynamic_cast&#xff1a;动态类型转换&#xff08;运行时检查&…

代码随想录_动态规划

代码随想录 动态规划 509.斐波那契数 509. 斐波那契数 斐波那契数 &#xff08;通常用 F(n) 表示&#xff09;形成的序列称为 斐波那契数列 。该数列由 0 和 1 开始&#xff0c;后面的每一项数字都是前面两项数字的和。也就是&#xff1a; F(0) 0&#xff0c;F(1) 1 F(n…

计算机基础:编码03,根据十进制数,求其原码

专栏导航 本节文章分别属于《Win32 学习笔记》和《MFC 学习笔记》两个专栏&#xff0c;故划分为两个专栏导航。读者可以自行选择前往哪个专栏。 &#xff08;一&#xff09;WIn32 专栏导航 上一篇&#xff1a;计算机基础&#xff1a;编码02&#xff0c;有符号数编码&#xf…

设计模式(创建型)-单例模式

摘要 在软件开发的世界里&#xff0c;设计模式是开发者们智慧的结晶&#xff0c;它们为解决常见问题提供了经过验证的通用方案。单例模式作为一种基础且常用的设计模式&#xff0c;在许多场景中发挥着关键作用。本文将深入探讨单例模式的定义、实现方式、应用场景以及可…

基于FPGA频率、幅度、相位可调的任意函数发生器(DDS)实现

基于FPGA实现频率、幅度、相位可调的DDS 1 摘要 直接数字合成器( DDS ) 是一种通过生成数字形式的时变信号并进行数模转换来产生模拟波形(通常为正弦波)的方法,它通过数字方式直接合成信号,而不是通过模拟信号生成技术。DDS主要被应用于信号生成、通信系统中的本振、函…

本地JAR批量传私服

在有网络隔离的环境下&#xff0c;Maven项目如果没有搭建私服就得把用到的通用组件通过U盘在每个组员间拷贝来拷贝去。非常的麻烦跟低效。搭建私服&#xff0c;如果通用组件很多的时候手工一个一个上传更是非常的麻烦跟低效&#xff1b; 我就遇上这问题&#xff0c;跟A公司合作…

【ROS实战】02-ROS架构介绍

1. 简介 你是否曾有过这样的疑问&#xff1a;我按照文档安装了ROS&#xff0c;依照要求写了一些示例节点&#xff08;node&#xff09;、消息&#xff08;msg&#xff09;和话题&#xff08;topic&#xff09;&#xff0c;但觉得过程既麻烦又繁琐。也许你开始怀疑&#xff1a;…

LeetCode算法题(Go语言实现)_07

题目 给你一个整数数组 nums&#xff0c;返回 数组 answer &#xff0c;其中 answer[i] 等于 nums 中除 nums[i] 之外其余各元素的乘积 。 题目数据 保证 数组 nums之中任意元素的全部前缀元素和后缀的乘积都在 32 位 整数范围内。 请 不要使用除法&#xff0c;且在 O(n) 时间复…

网络华为HCIA+HCIP 网络编程自动化

telnetlib介绍 telnetlib是Python标准库中的模块。它提供了实现Telnet功能的类telnetlib.Telnet。这里通过调用telnetlib.Telnet类里的不同方法实现不同功能。 配置云