【CSS|第1期】网页设计的演变:从表格布局到Grid布局

日期:2024年9月9日
作者:Commas
签名:(ง •_•)ง 积跬步以致千里,积小流以成江海……
注释:如果您觉在这里插入代码片有所帮助,帮忙点个赞,也可以关注我,我们一起成长;如果有不对的地方,还望各位大佬不吝赐教,谢谢^ - ^
1.01365 = 37.7834;0.99365 = 0.0255
1.02365 = 1377.4083;0.98365 = 0.0006


文章目录

  • 一、前言
  • 二、网页设计起源
  • 三、CSS的诞生与作用
    • 1、CSS是什么
    • 2、CSS的提出场景
  • 四、布局方式的演变
  • 五、特别的布局方式
    • 1、绝对定位布局
    • 2、相对定位布局
    • 3、框架布局(`Frame` 布局)
  • 六、标准化和模块化
    • 1、标准化
    • 2、模块化
  • 七、结语


在这里插入图片描述


一、前言


互联网的兴起带来了网页设计的革命,经历了数十年的发展和演变。从最初的简单文本和图像展示,到如今的复杂交互和响应式设计,网页设计的技术和方法不断进步。今天,让我们一起回顾网页设计的发展历程,探索从表格布局到CSS、Flex布局,再到Grid布局的演变。

二、网页设计起源


网页设计的起源可以追溯到20世纪90年代初,当时互联网刚刚兴起。最早的网页设计主要是基于HTMLHyperText Markup Language)的简单文本和图像展示。随着互联网的普及和技术的进步,网页设计逐渐发展成为一个独立的领域,涵盖了视觉设计、用户体验、交互设计等多个方面。

三、CSS的诞生与作用


1、CSS是什么

CSSCascading Style Sheets层叠样式表)是一种用于描述 HTMLXML(包括如 SVGMathML 等各种 XML 方言)文档样式的样式表语言,它可以控制网页元素的外观,如字体、颜色、布局等。CSS 的主要作用是将网页的内容(HTML)与样式分离,使得网页设计更加灵活和易于维护。

2、CSS的提出场景

在早期的网页设计中,HTML 不仅用于结构化内容,还用于定义内容的样式,样式和结构是混合在一起的,这导致了 HTML 代码的冗长、网页的维护和修改非常困难。为了解决这个问题,CSS 被提出,它将网页的内容样式分离,大大提高了网页的可维护性和可重用性。

四、布局方式的演变


1、表格布局

CSS 广泛应用之前,网页布局主要依赖于HTML表格(<table>)。表格布局的优点是简单易用,但缺点也很明显:

  • 可维护性差:表格嵌套复杂,修改布局需要大量修改HTML代码。
  • 性能问题:复杂的表格布局会导致页面加载速度变慢。
  • 灵活性差表格布局难以实现复杂的响应式设计。

以下例子,我们将通过表格的行和列来划分网页的不同区域:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>表格布局</title>
</head>
<body><table><tr><td colspan="2">头部</td></tr><tr><td>侧边栏</td><td>主体内容</td></tr><tr><td colspan="2">底部</td></tr></table>
</body>
</html>

2、Div+CSS

随着 CSS 的发展,网页布局逐渐转向了 Div+CSS 模式。这种模式下,HTML 用于定义内容的结构,而 CSS 用于定义内容的样式和布局。例如:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Div+CSS布局</title><style>css">*{margin:0;padding: 0;}#header {height: 100px;background-color: #ccc;}#sidebar {width: 200px;float: left;background-color: #eee;}#main-content {margin-left: 200px;background-color: #fff;}#footer {height: 50px;background-color: #ccc;}</style>
</head>
<body><div id="header">头部</div><div id="sidebar">侧边栏</div><div id="main-content">主体内容</div><div id="footer">底部</div>
</body>
</html>

3、Flex布局

Flex 布局(Flexible Box Layout Module)是 CSS3 中引入的一种新的布局模式,旨在提供一种更加灵活和强大的方式来排列和对齐容器中的子元素。Flex 布局特别适用于需要响应式设计的场景。例如:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>flex布局</title><style>css">* {margin: 0;padding: 0;}.flex-container {display: flex;justify-content: space-between;}.item {width: 100px;height: 100px;background-color: #ccc;}</style>
</head><body><div class="flex-container"><div class="item">项目 1</div><div class="item">项目 2</div><div class="item">项目 3</div></div>
</body></html>

4、Grid布局

Grid 布局(CSS Grid Layout)是 CSS3 中引入的另一种强大的二维布局系统,旨在提供一种更加直观和灵活的方式来创建复杂的网页布局Grid 布局特别适用于需要精确控制行和列的场景。例如:

<!DOCTYPE html>
<html lang="en"><head><meta charset="UTF-8"><title>grid布局</title><style>css">* {margin: 0;padding: 0;}.grid-container {display: grid;grid-template-columns: 1fr 1fr 1fr;grid-template-rows: 100px 100px;}.item1 {grid-column: 1 / 3;grid-row: 1;background-color: #ccc;}.item2 {grid-column: 3;grid-row: 1 / 3;background-color: #eee;}.item3 {grid-column: 1;grid-row: 2;background-color: #fff;}</style>
</head><body><div class="grid-container"><div class="item1">项目 1</div><div class="item2">项目 2</div><div class="item3">项目 3</div></div>
</body></html>

五、特别的布局方式

1、绝对定位布局

绝对定位布局通过设置元素的绝对定位(position: absolute),并利用 toprightbottomleft 属性来精确控制元素在页面中的位置。常用于创建特殊效果,比如:

<div style="css language-css">position: absolute; bottom: 20px; right: 20px;">客服按钮</div>

它可以创建出固定在页面特定位置的元素,如弹出框、固定导航栏等。但需要注意管理好元素的堆叠顺序和布局结构。

  • 绝对定位的元素会脱离文档流,因此它原来的位置不会被保留,下面的元素会向上移动来填补空位。
  • 绝对定位的元素可以重叠其他元素。
  • 通常,绝对定位的元素需要一个相对定位的父元素作为定位的参考点。
  • 如果没有设置偏移属性(top, right, bottom, left),则绝对定位的元素会位于其父元素的左上角。

2、相对定位布局

相对定位布局是元素相对其原本在文档流中的位置进行偏移。例如:

< img src="image.jpg" alt="图片">
<p style="css language-css">position: relative; left: 10px;">这是图片的描述文字</p >

相对定位是CSS布局中一个非常灵活的工具,在不影响其他元素位置的情况下,对元素进行微调,实现更细致的布局调整。

  • 相对定位的元素不会脱离文档流,因此它下面的元素不会上移来填补它的位置。
  • 相对定位通常用于微调元素的位置,或者作为绝对定位元素的参考点。
  • 如果没有设置偏移属性(top, right, bottom, left),则相对定位的元素不会发生任何位置上的变化。

3、框架布局(Frame 布局)

HTML 中,框架布局(Frame Layout)指的是使用框架集(<frameset>)和框架(<frame>)元素来创建一个包含多个 HTML 文档的页面布局。不过,需要注意的是,HTML 框架(frames)已经不被推荐使用,并且在 HTML5 中已经被移除。现代的网页设计更倾向于使用 CSS框架内联框架(<iframe> 来实现类似的功能。

<!DOCTYPE html>
<html>
<head><title>框架布局示例</title>
</head>
<frameset rows="25%, 75%"><frame src="top.html" noresize="noresize"><frameset cols="25%, 75%"><frame src="left.html"><frame src="right.html"></frameset>
</frameset>
</html>

本示例中,<frameset> 元素定义了页面的框架布局,而 rows 属性定义了框架集的行划分,cols 属性定义了框架集的列划分。

  • <frame src="top.html" noresize="noresize">:定义了一个框架,其内容来自 “top.html” 文件,且用户不能调整框架的大小。
  • <frameset cols="25%, 75%">:在主框架集内部定义了一个新的框架集,它将剩余空间分为两列,比例为 25%75%
    每个 <frame> 元素都指向一个 HTML 文件,该文件将显示在相应的框架中。

虽然在老式网站系统中曾有应用,但由于不利于搜索引擎优化和页面加载速度慢等缺点,在现代网页设计中使用较少。

六、标准化和模块化


1、标准化

网页设计的标准化主要体现在 HTMLCSSJavaScript 等技术的规范和标准上。W3CWorld Wide Web Consortium)是制定这些标准的主要组织。标准化的好处包括:

  • 兼容性:不同浏览器和设备之间的兼容性更好。
  • 可维护性:代码更加规范,易于维护和更新。

2、模块化

模块化是指将网页设计和开发过程中的各个部分分解成独立的模块,每个模块负责特定的功能或样式。模块化的优点包括:

  • 可重用性:模块可以在不同的项目中重复使用,减少开发时间和成本。
  • 可维护性:模块化的代码结构清晰,易于维护和更新。
  • 团队协作:模块化使得团队成员可以并行工作,提高开发效率。

七、结语


网页设计从最初的 表格布局 发展到如今的 Flex布局Grid布局,经历了不断的演变和进步。CSS的出现使得网页设计更加灵活和易于维护,而标准化和模块化则进一步提高了网页设计的效率和质量。


参考文章:

  • 《CSS:层叠样式表》
  • 《CSS Tutorial》

版权声明:本文为博主原创文章,如需转载,请给出:
原文链接:https://blog.csdn.net/qq_35844043/article/details/142137348


http://www.ppmy.cn/news/1525789.html

相关文章

分治算法之归并排序详细解读(附带Java代码解读)

分治算法中的归并排序&#xff08;Merge Sort&#xff09; **归并排序&#xff08;Merge Sort&#xff09;是一种基于分治法&#xff08;Divide and Conquer&#xff09;**的排序算法。其核心思想是将数组递归地分成若干个子数组&#xff0c;分别对每个子数组进行排序&#xf…

【计算机网络 - 基础问题】每日 3 题(四)

✍个人博客&#xff1a;Pandaconda-CSDN博客 &#x1f4e3;专栏地址&#xff1a;http://t.csdnimg.cn/fYaBd &#x1f4da;专栏简介&#xff1a;在这个专栏中&#xff0c;我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话&#xff0c;欢迎点赞&#x1f44d;收藏&…

25届计算机专业选题推荐-基于python的线上拍卖会管理系统【python-爬虫-大数据定制】

&#x1f496;&#x1f525;作者主页&#xff1a;毕设木哥 精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; 实战项目 文章目录 实战项目 一、基于python的线上拍卖会管理…

老古董Lisp实用主义入门教程(8):挠痒痒先生建网站记

是时候来个真正的应用 几位奇形怪状, 百无聊赖的先生, 用Common Lisp 搞东搞西一阵子, 总觉得没有干什么正经事. 一般而言, 学习编程语言总是应该先搞点计算, 让CPU燥起来. 但是Lisp搞计算总感觉有点不太对劲, 虽然颠倒先生已经尝试把数学公式改成中序以增强动力, 但是不行. 隔…

鸿蒙 ArkUI组件一

ArkUI组件 布局 布局指用特定的组件或者属性来管理用户页面所放置UI组件的大小和位置。在实际的开发过程中&#xff0c;需要遵守以下流程保证整体的布局效果&#xff1a; 确定页面的布局结构。分析页面中的元素构成。选用适合的布局容器组件或属性控制页面中各个元素的位置和大…

MySQL 数据库:原理、应用与发展

摘要&#xff1a;本文深入探讨了 MySQL 数据库相关内容。首先介绍了 MySQL 作为开源关系型数据库管理系统的显著特点&#xff0c;包括易用性、跨平台性、高性能、可扩展性、开源免费以及数据安全性等方面。接着详细阐述了其安装与配置过程&#xff0c;涵盖在不同操作系统上的安…

[晕事]今天做了件晕事44 wireshark 首选项IPv4:Reassemble Fragented IPv4 datagrams

不知不觉&#xff0c;已经来到了晕事系列的第四十四个晕事。今天办的晕事和Wireshark查看网络包相关。说&#xff0c;在Wireshark的编辑-首选项协议里的IPv4协议&#xff0c;有一个参数设置是&#xff1a;Reassemble Fragented IPv4 datagrams。 这个参数的含义是指定Wireshar…

Linux通配符*、man 、cp、mv、echo、cat、more、less、head、tail、等指令、管道 | 、指令的本质 等的介绍

文章目录 前言一、Linux通配符*二、man 指令三、 cp 指令四、mv指令五、 echo 指令六、cat 指令七、more 指令八、 less 指令九、 head 指令十、 tail指令十一、 管道 |十二、指令的本质总结 前言 Linux通配符*、man 、cp、mv、echo、cat、more、less、head、tail、等指令、管…

vue2,3生命周期

Vue.js 的生命周期在 Vue 2 和 Vue 3 中有所不同&#xff0c;但基本的概念是相似的。Vue 的生命周期是指 Vue 实例从创建到销毁的整个过程&#xff0c;这个过程中 Vue 实例会触发一系列的事件&#xff0c;我们称之为生命周期钩子&#xff08;Lifecycle Hooks&#xff09;。开发…

在Milvus中创建集合并在集合中插入数据,然后attu管理工具可以查看

日志打印出来的是这个&#xff0c;现在attu为什么看不到插入的数据信息&#xff0c;集合信息已经可以看到&#xff0c;为什么看不到数据呢/home/anaconda3/envs/bi-txt-sql/bin/python -X pycache_prefix/home/.cache/JetBrains/PyCharm2023.2/cpython-cache /home/tools/pycha…

前端——标签二(超链接)

标签二 超链接标签&#xff1a;a 超链接&#xff0c;实现页面间的跳转和数据传输 a标签的属性 href&#xff1a;跳转路径&#xff08;url&#xff09;必须具备&#xff0c;表示点击后会跳转到哪个页面 target&#xff1a;页面打开方式。默认是 _self 如果是 _blank则用新的…

CSDN玩法攻略(维护中)

以下均为测试过的条件 隐形条件和官方描写可能不准确更新不及时 勋章 签到勋章(已下架) 勤写标兵 每周三篇原创等级1 max10 创作能手 lv1 每周1-3 lv2 每周4-6 lv3 每周7-8 lv4 每周>9 持续创作 授予每个自然月内发布4篇或4篇以上原创或翻译IT博文的用户 五一创作勋章 每…

matlab处理函数2

1、数字数字图像的变换 ① fft2&#xff1a;fft2函数用于数字数字图像的二维傅立叶变换 iimread(104_8.tif); jfft2(i); ②ifft2:&#xff1a;ifft2函数用于数字数字图像的二维傅立叶反变换 iimread(104_8.tif);jfft2(i); kifft2(j); 2、模拟噪声生成函数和预定义滤波器 ①…

桥接模式详解和分析JDBC中的应用

&#x1f3af; 设计模式专栏&#xff0c;持续更新中&#xff0c; 欢迎订阅&#xff1a;JAVA实现设计模式 &#x1f6e0;️ 希望小伙伴们一键三连&#xff0c;有问题私信都会回复&#xff0c;或者在评论区直接发言 桥接模式 文章目录 桥接模式桥接模式的四个核心组成&#xff1a…

SMA2:代码实现详解——Image Encoder篇(Hiera章)

SMA2:代码实现详解——Image Encoder篇&#xff08;Hiera&#xff09; 写在前面 大家在SMA2:代码实现详解——Image Encoder篇&#xff08;FpnNeck&#xff09;下的留言我已收到&#xff0c;感谢大家的支持&#xff0c;后面如果遇到比较难以讲清的部分可能会使用视频的形式。…

Unity3D类似于桌面精灵的功能实现

前言&#xff1a; 由于最近在做游戏魔改&#xff0c;很多功能在游戏里面没法实现&#xff08;没错&#xff0c;说的就是排行榜&#xff09;&#xff0c;所以准备用Unity3D开发一个类似于桌面精灵的功能部件&#xff0c;实现效果如下&#xff1a; PS&#xff1a;有需要定制的老…

什么是 Grafana?

什么是 Grafana&#xff1f; Grafana 是一个功能强大的开源平台&#xff0c;用于创建、查看、查询和分析来自多个来源的数据。通过可视化仪表盘&#xff08;Dashboard&#xff09;&#xff0c;它能够帮助用户监控实时数据、生成历史报告&#xff0c;甚至进行预测分析。Grafana…

JVM四种垃圾回收算法以及G1垃圾回收器(面试)

JVM 垃圾回收算法 标记清除算法&#xff1a;标记清除算法将垃圾回收分为两个阶段&#xff1a;标记阶段和清除阶段。 在标记阶段通过根节点&#xff0c;标记所有从根节点开始的对象。然后&#xff0c;在清除阶段&#xff0c;清除所有未被标记的对象 适用场合&#xff1a; 存活对…

Linux面试题3

1. 描述Linux操作系统的安装过程。 以下是关于Linux操作系统的安装过程的描述&#xff1a; 选择发行版&#xff1a;首先&#xff0c;您需要选择一个Linux发行版&#xff0c;如Ubuntu、Fedora、Debian等。不同的发行版有不同的特点和适用场景&#xff0c;您可以根据自己的需求…

【物联网技术大作业】设计一个智能家居的应用场景

前言&#xff1a; 本人的物联网技术的期末大作业&#xff0c;希望对你有帮助。 目录 大作业设计题 &#xff08;1&#xff09;智能家居的概述。 &#xff08;2&#xff09;介绍智能家居应用。要求至少5个方面的应用&#xff0c;包括每个应用所采用的设备&#xff0c;性能&am…