web 页面布局:(一)align与表格布局

news2024/11/19 9:37:39

web 页面布局:(一)align与表格布局

  • 古早时代
    • 页面布局
  • 表格布局
    • 合并单元格
    • 表格布局的弃用

古早时代

之前,我们花费了一点时间,去了解了一下 html 的本质,那么,现在,我们就要尝试开始编写自己的 html 页面了。

在远古时期,由于没有 css 的配合,所有的布局,需要通过 html 标签来进行实现,这个时候,就需要对 html 标签及其属性有足够的熟悉,才能比较好的完成一个页面内,内容的排版。

在所有的可视化标签中,都具有一个通用属性 align ,这个属性用来设置居左、居中或居右,嗯,只支持横向,不支持纵向。

但是,align 有一个比较容易出现歧义的问题,那就是,在块级标签中,他描述的是内部文字的排版方式,而不是块本身。而对于具有 width 属性的块级标签,则描述的是块本身在页面的布局位置。。。所以后来的样式中,单独出现了 text-align 样式名,就是为了避免在古早时代中,出现的这种歧义。

CSDN 文盲老顾的博客,https://blog.csdn.net/superwfei
老顾的个人社区,https://bbs.csdn.net/forums/bfba6c5031e64c13aa7c60eebe858a5f?category=10003&typeId=3364713

页面布局

在 html 布局中,未引入 css 之前,所有的布局都是顺序的,我们来通过一段实际的例子,来看看古早时代,页面布局的方式:

  <p align="left" style="border:1px solid #ccc;">这里是第一个p,居左</p>
  <p align="center" style="border:1px solid #ccc;">这里是第二个p,居中</p>
  <p align="right" style="border:1px solid #ccc;">这里是第三个p,居右</p>
  <p style="border:1px solid #ccc;overflow:hidden;"><img src="https://img-home.csdnimg.cn/images/20201124032511.png" align="left" /></p>
  <p style="border:1px solid #ccc;overflow:hidden;"><img src="https://img-home.csdnimg.cn/images/20201124032511.png" align="center" /></p>
  <p style="border:1px solid #ccc;overflow:hidden;"><img src="https://img-home.csdnimg.cn/images/20201124032511.png" align="right" /></p>
  <table border="1" width="200" align="left"><tr><td>居左的表格</td></tr></table>
  <table border="1" width="200" align="center"><tr><td>居中的表格</td></tr></table>
  <table border="1" width="200" align="right"><tr><td>居右的表格</td></tr></table>
  <table border="1" width="200" align="center"><tr><td>居中的表格</td></tr></table>
  <table border="1" width="200" align="left"><tr><td>居左的表格</td></tr></table>
  <table border="1" width="200" align="right"><tr><td>居右的表格</td></tr></table>
  <table border="1" width="200" align="center"><tr><td>居中的表格</td></tr></table>

在这里插入图片描述

可以看到,对于段落标签 p 来说,align 是内部文字的排版

对于图片标签 img 来说,只有居左和居右,居中是被忽略掉的

而对于表格标签 table 来说,则是一个浮动方式的布局方式,也就是在样式中的 float:left/center/right 方式了。

除了 align 的影响外,我们还可以看到,所有的标签都是按照书写顺序进行排版的,第一个段落文字居左,第二个段落文字居中,第三个段落文字具有,自上而下的顺序渲染出来。

而对于具有 width 属性的标签,align 则相当于浮动布局了,比如之后的几个 table,根据 align 的设置,渲染在不同的位置,碰到居中时,本行渲染结束,其他元素渲染到下一个块中。所以,最后看到的效果就不再试表格1、2、3、4、5、6、7,而是如图中所示的布局。

关于浮动布局,我们之后在样式实现的时候再进行细说,今天就是先了解下古早时代的 align 即可。

表格布局

在除了顺序布局之外,有很多内容,我们希望他们可以处在同一行,但是各自又有不同的单独设置,那么,表格的需求就被提了出来。比如一个财务报表,第一行是表头,文字全部是居中的,后边的行是表格内容,前几列时居左的,关于数字的列,则是居右的,可能有些信息,比如状态或者地域之类的,我们根据习惯可能要居中。

那么,来了解一下表格所用的到各种标签吧。https://www.w3school.com.cn/html/html_tables.asp,不知道为什么 w3school 的网站突然变成不安全的网站了,也可以到菜鸟教程去学习相关内容。

简单的列举一下:

table 定义表格
thead 定义表头
th 定义表头的单元格
tbody 定义表格主体
tr 定义表格中的行
td 定义表格中的单元格

嗯。。。其实 html 并不是严格语法,所以,老顾经常是只用 table tr th 以及 td,这就足够了。

对于 td 标签来说,他多了一个 valign 属性,顾名思义,这是一个垂直分布设置的属性,终于可以垂直居中了。不过,居中的属性不是 center,而是 middle。嘿嘿,用一个表格来体现一下这些设置

  <table border="1">
	<tr>
		<td width="200" height="100" align="left" valign="top">left top</td>
		<td width="200" height="100" align="center" valign="top">center top</td>
		<td width="200" height="100" align="right" valign="top">right top</td>
	</tr>
	<tr>
		<td width="200" height="100" align="left" valign="middle">left middle</td>
		<td width="200" height="100" align="center" valign="middle">center middle</td>
		<td width="200" height="100" align="right" valign="middle">right middle</td>
	</tr>
	<tr>
		<td width="200" height="100" align="left" valign="bottom">left bottom</td>
		<td width="200" height="100" align="center" valign="bottom">center bottom</td>
		<td width="200" height="100" align="right" valign="bottom">right bottom</td>
	</tr>
  </table>

在这里插入图片描述
嗯,align 的歧义又出现了,虽然 td 既有 width 也有 align ,但是,他和 p 的方式又相同了,而不是浮动方式了。

合并单元格

当然,如果仅仅是这样,表格布局方式,也不会在当年流行一时,他最大的优势在于,可以合并单元格,然后进行更为复杂的布局方式。

在 td 的属性中,有两个特殊的属性 rowspan 和 colspan,分别描述的当前单元格,需要占用几行和几列。在没有设置这个属性时,则默认值都是1。

还是通过一个简单的 html 示例来看一下。

  <table border="1">
	<tr>
		<td colspan="2" width="100" height="50">一个两列的单元格</td>
		<td rowspan="2" width="50" height="100">一个两行的单元格</td>
	</tr>
	<tr>
		<td rowspan="2" width="50" height="100">一个两行的单元格</td>
		<td>中间空出的单元格</td>
	</tr>
	<tr>
		<td colspan="2" width="100" height="50">一个两列的单元格</td>
	</tr>
  </table>

在这里插入图片描述
由于合并单元格的能力,所以在古早时代,很多复杂的排版,都是通过表格完成的。我们只需要数出我们一共需要切出多少个列,多少个行,然后每个格需要占用多少,就可以制作出一个我们所需要的布局了。

表格布局的弃用

然而,为什么现在基本上见不到用表格制作的布局页面了呢?

这就涉及到了表格的渲染方式了,其他标签,包括 p 在内,那怕不是严格匹配,没有闭合,我们也可以继续向下渲染,但是,表格则由于其特殊性,如果没有碰到表格的结束标签,则必须读到 html 文档结尾,来表示这里是表格结束的位置,然后才能进行表格的渲染,使其呈现在页面上。

而古早时代,由于网速的原因,经常会有一个大大的表格,因为网速原因传输的较慢,会造成页面中,表格前的内容以及渲染结束了,而表格则还没有读完,没有碰到表格结束标签,所以表格内容没有开始渲染,等待很久很久的时间。。。。小伙伴们如果有兴趣的话,可以制作一个超过2000kb 的表格 html 页面,和一个同样内容,但不用 table 的页面进行一下测试哦。

所以,在出现了样式设置后,表格布局的方式,就慢慢的被大家淘汰掉了,不是功能不强,而是渲染机制问题太严重了。。。。。

在这里插入图片描述

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

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

相关文章

多元回归预测 | Matlab基于灰狼算法优化深度置信网络(GWO-DBN)的数据回归预测,matlab代码回归预测,多变量输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元回归预测 | Matlab基于灰狼算法优化深度置信网络(GWO-DBN)的数据回归预测,matlab代码回归预测,多变量输入模型,matlab代码回归预测,多变量输入模型,多变量输入模型 评价指标包括:MAE、RMSE和R2等,代码质…

[Android JNI] --- JNI基础

1 JNI概念 什么是JNI JNI 全称 Java Native Interface&#xff0c;Java 本地化接口&#xff0c;可以通过 JNI 调用系统提供的 API。操作系统&#xff0c;无论是 Linux&#xff0c;Windows 还是 Mac OS&#xff0c;或者一些汇编语言写的底层硬件驱动都是 C/C 写的。Java和C/C不…

一款批量漏洞挖掘工具

介绍 QingScan一个批量漏洞挖掘工具&#xff0c;黏合各种好用的扫描器。 是一款聚合扫描器&#xff0c;本身不生产安全扫描功能&#xff0c;但会作为一个安全扫描工具的搬运工&#xff1b;当添加一个目标后&#xff0c;QingScan会自动调用各种扫描器对目标进行扫描&#xff0c…

一文读懂智能汽车滑板底盘

摘要&#xff1a; 所谓滑板式底盘&#xff0c;即将电池、电动传动系统、悬架、刹车等部件提前整合在底盘上&#xff0c;实现车身和底盘的分离,设计解耦。基于这类平台&#xff0c;车企可以大幅降低前期研发和测试成本&#xff0c;同时快速响应市场需求打造不同的车型。尤其是无…

系统架构设计师-软件工程(2)

一、需求工程 1、需求工程阶段划分 软件需求是指用户对系统在功能、行为、性能、设计约束等方面的期望。 【需求工程主要活动的阶段划分】 2、需求获取 3、需求分析 &#xff08;1&#xff09;数据流图&#xff08;DFD&#xff09; 简称DFD&#xff0c;它从…

LabVIEW开发矿用泵液压头测试系

LabVIEW开发矿用泵液压头测试系 在矿井中&#xff0c;矿用泵是用于排放矿井水的关键设备。如果不正常运行&#xff0c;矿山的生产必然受到严重影响&#xff0c;工人的生命也受到严重威胁。确保矿用泵能够正常运行非常重要。由于其运行条件非常恶劣&#xff0c;矿用泵的故障率高…

网络故障排除之Traceroute命令详解

概要 遇到网络故障的时候&#xff0c;你一般会最先使用哪条命令进行排障&#xff1f; 除了Ping&#xff0c;还有Traceroute、Show、Telnet又或是Clear、Debug等等。 今天安排的&#xff0c;是Traceroute排障命令详解&#xff0c;给你分享3个经典排障案例哈。 一. Traceroute…

ChatGPT 最佳实践指南之:写出清晰的指示

Write clear instructions 写出清晰的指示 GPTs can’t read your mind. If outputs are too long, ask for brief replies. If outputs are too simple, ask for expert-level writing. If you dislike the format, demonstrate the format you’d like to see. The less GPTs…

如何使网站快速拥有登录注册功能

如何使网站快速拥有登录注册功能 一、产品介绍二、开始使用1、如何判断用户是否登录?2、如何让用户登录?举个例子: 3、登录成功后如何拿到用户数据?4、如何维护用户的登录态? 二、注意点 前端必备工具&#xff08;免费图床、API、chatAI等&#xff09;推荐网站LuckyCola: h…

机器学习——支持向量机(数学基础推导篇【未完】)

在一个周日下午&#xff0c;夏天的雨稀里哗啦地下着 我躺在床上&#xff0c;捧着ipad看支持向量机 睡了好几个觉…支持向量机太好睡了 拉格朗日乘数法太好睡了 几何函数太好睡了 在我看来&#xff0c;支持向量机是目前学下来&#xff0c;最难以理解的内容 希望日后不要太难…脑…

[计算机入门] Windows对话框

2.4 对话框 在图形用户界面中&#xff0c;对话框是一种特殊的窗口, 用来在用户界面中向用户显示信息&#xff0c;或者在需要的时候获得用户的输入响应。之所以称之为对话框是因为它们使计算机和用户之间构成了一个对话——或者是通知用户一些信息&#xff0c;或者是请求用户的…

C. Russian Roulette(构造)

传送门 题意 俄罗斯转盘&#xff0c;长度为n的环&#xff0c;有k个子弹&#xff0c;然后挨着对着脑袋打。 你是第一个人&#xff0c;你希望你死的概率最小&#xff0c;问你怎么去设置这个子弹的位置。 第二个人会一开始随机砖圈&#xff0c;使得每一个位置开始都是可能的。…

电脑技巧:怎么轻松地搞定Win11系统备份任务

目录 1、选择免费备份软件来自动备份系统 2、如何逐步配置定时系统备份任务&#xff1f; “我是一个电脑小白&#xff0c;不是很懂电脑的一些操作。我刚买了一台新电脑&#xff0c;它装的是Win11系统&#xff0c;我害怕它出现什么问题&#xff0c;听朋友说可以通过备份的方…

Kotlin~责任链模式

概念 允许多个对象按顺序处理请求或任务。 角色介绍 Handler: 处理器接口,提供设置后继者&#xff08;可选&#xff09;ConcreteHandler&#xff1a;具体处理器&#xff0c;处理请求 UML 代码实现 比如ATM机吐钱就可以使用责任链实现。 class PartialFunction<in P1, o…

【环境配置】Conda ERROR:Failed building wheel for lap

问题 note: This error originates from a subprocess, and is likely not a problem with pip.ERROR: Failed building wheel for lapRunning setup.py clean for lap Failed to build lap ERROR: Could not build wheels for lap, which is required to install pyproject.to…

JDK8安装

在官网进行下载Java Downloads | Oracle 点击进行安装即可。 之后是配置环境变量 点击我的电脑 – 属性 – 高级系统设置 – 环境变量 添加JAVA_8_HOME环境变量&#xff0c;指向jdk的安装目录。 之后编辑path环境变量&#xff0c;增加%JAVA_8_HOME%\bin win R 输入javac 测…

在线支付安全-业务安全测试实操(35)

目前网络在线消费和支付,已遍布人们生活的衣食住行等冬个方面,比如网上商城在线购物、水电燃气在线缴费、手机话费在线充值等。由于在线消费和支付过程中涉及真金白银,一旦存在漏洞,将会带来重大的经济损失。 某快餐连锁店官网订单金额篡改 篡改订单金额的流程如图 所示 步…

Spark(14):SparkSQL之概述

目录 0. 相关文章链接 1. SparkSQL是什么 2. Hive and SparkSQL 3. SparkSQL 特点 3.1. 易整合 3.2. 统一的数据访问 3.3. 兼容Hive 3.4. 标准数据连接 4. DataFrame 是什么 5. DataSet 是什么 6. SparkSQL的运行环境 0. 相关文章链接 Spark文章汇总 1. SparkSQL是…

java pdf加水印

本文将Base64编码形式的pdf文件加水印&#xff0c;并输出完成后的pdf的Base64编码&#xff0c;也可以根据情况自行改动&#xff0c;输出其他形式的内容。 首先引入两个包 <!-- PDF文件依赖包 --><dependency><groupId>com.itextpdf</groupId><arti…

计算机体系结构基础知识介绍之缓存性能的十大进阶优化之编译器优化和硬件预取(六)

优化七&#xff1a;编译器优化&#xff0c;降低miss率 处理器和主内存之间不断扩大的性能差距促使编译器编写者仔细检查内存层次结构&#xff0c;看看编译时优化是否可以提高性能。再次&#xff0c;研究分为指令缺失的改进和数据缺失的改进。接下来介绍的优化可以在许多现代编…