读初二的时候,学校有了计算机,也简单地介绍了下网页,不过那是的html 都是table,也没有去细看。到了高中,qq空间有个html模式,为了让文章好看点。也浅尝辄止地学了下css

css简介

在HTML迅猛发展的 90 年代,不同的浏览器根据自身的 HTML 语法结构来支持实现不同的样式语言。在最初的 HTML 版本中,由于只含有很少的显示属性,所以用户可以自己决定显示页面的方式。

但随着 HTML 的发展,HTML 增加了很多功能,代码也越来越臃肿,HTML 就变得越来越乱。网页也失去了语义化,维护代码很艰难,因为代码很混乱:比如现在博客园里面还有大量的<font color="blue" face="verdana"><body bgcolor="#e6e6fa">标签等。于是装饰网页样式的 CSS(层叠样式表,Cascading Style Sheets)诞生了。

CSS 是随着前端表现分离的提出而产生的,因为最早网页内容的样式都是通过center、strike等标签或fontColor等属性内容来体现的,而CSS提出使用样式描述语言来表达页面内容,而不是用HTML的标签来表达。

css历史

CSS的早期历史可以读此文:http://www.w3.org/Style/LieBos2e/history/ ,以及CSS之父的博士论文:层叠样式表。css的特性早起由印刷出版业而来。

1994 年,Hkon Wium Lie 最初提出了 CSS 的想法,联合当时正在设计 Argo 的浏览器的Bert Bos,他们决定一起合作设计 CSS,于是创造了 CSS 的最初版本。

1995年他们在芝加哥的Mosaic and the Web 大会上第一次正式提出了 CSS 的建议,博斯演示了Argo浏览器支持CSS的例子,哈肯也展示了支持CSS的Arena浏览器。当时 W3C 刚刚建立,W3C 对 CSS 很感兴趣,为此专门组织了一次讨论会。同年,W3C组织(World WideWeb Consortium)成立,CSS的创作成员全部成为了W3C的工作小组并且全力以赴负责研发CSS标准,层叠样式表的开发终于走上正轨。有越来越多的成员参与其中,例如微软公司的托马斯·莱尔顿(Thomas Reaxdon),他的努力最终令Internet Explorer浏览器支持CSS标准。

1996 年 12 月,W3C 推出了 CSS 规范的第一版本。

1997 年,W3C 颁布 CSS1.0 版本 ,CSS1.0 较全面地规定了文档的显示样式,可分为选择器、样式属性、伪类 / 对象几个部分。这一规范立即引起了各方的关注,随即微软和网景公司的浏览器均能支持 CSS1.0,这为 CSS 的发展奠定了基础。W3C组织负责CSS的工作组开始讨论第一版中没有涉及到的问题。其讨论结果组成了1998年5月出版的CSS规范第二版。

1998年5,W3C 发布了 CSS 的第二个版本,目前的主流浏览器都采用这标准。

CSS2 的规范是基于 CSS1 设计的,包含了 CSS1 所有的功能,并扩充和改进了很多更加强大的属性。包括选择器、位置模型、布局、表格样式、媒体类型、伪类、光标样式。

1999年,CSS 3的草稿开始制定

2001年5月23日W3C完成了CSS3的工作草案,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块

2005 年 12 月,W3C 开始 CSS3 标准的制定。css是有一系列的标准组成。每个系列完成的时间不一样。所以css3是不断的演进的,直到现在。

css模块演化图

从形式上来说,CSS3 标准自身已经不存在了。每个模块都被独立的标准化。

网页布局模式演变

用于展示的HTML标签

1990年代中期,主流浏览器厂商(网景和微软)添加了一些标签(tag),从而使得设计者可以用“展示类”的标签来控制页面的外观,例如<b>让文字成为粗体,<i>则是斜体。

表格布局

table布局,在IBM的邮箱系统中投放,是个很好的解决方案。

帧(Frames)

通过使用<frameset>和<frame src>标签,一个HTML页面中的一些区域可以包含另外的HTML文件。帧甚至还可以嵌套使用。

客户端分区响应图(Image Map)

这在dreawave大热的时代,是利器。就是在图片上面添加锚点与热点区域,然后点击锚点。

css 层叠样式

浏览器战争中的对手们(网景和微软)达成了共识,决定逐渐淘汰展示类标签。CSS(Cascading Style Sheet)的广泛使用大大促进了结构和展示的分离。

DIV和“盒模型”

<div>元素起初是作为CSS的一部分被发明的,用来把页面组织成逻辑上独立的几个部分。它的设计初衷其实是替代当时最常用的表格布局。<div>标签内可以包含文字和图片,(从而形成“盒子”)。这些“盒子”可以设置宽度和/或长度,甚至还能有外边距(margin)和内边距(padding)。

CSS 定位(Position)属性

<div>默认是块级元素,如果不专门设置的话,多个<div>会一个个地上下层叠排列。而最早能够专门设置元素对齐的就是定位属性(即position:fixed)。定位属性至今仍然是CSS规范的一部分

浮动布局

float浮动属性最早是为了实现图片的文字环绕效果,允许的值包括left、right、none、inherit,后来人们发现,浮动<div>元素可以用来有效地控制页面上元素的位置。把<div>设置成浮动会使得对应的盒子有一定的自适应效果,多个浮动元素一一排列,如果超出了容器元素宽度,一行放不下时还会自动换行。

移动和响应式网站

Flexbox,Column Grid

CSS Grid

基于CSS来实现某种网格(grid)布局的想法已经存在多年了。CSS的两位联合发明人Bert Bos和Håkon Wium Lie都有相关的想法

突破来自微软。一些微软员工一直在为他们的浏览器探索更好的布局工具,慢慢形成了一份提案。事实上,2011年的时候,微软发布的IE 10中甚至用-ms-的厂商前缀实现了一个grid布局草案。随后的2012年,他们将规范的草案提交给了W3C。微软还为他们的grid系统申请了一份专利,并通过了审批。在专利文档中,这项技术被称为基于样式法则的内容无关网格布局

css grid第一份规范的网址是:https://www.w3.org/TR/css-grid-1

现在所有的主流浏览器全都支持CSS Grid了。

Flexbox

这个是目前主流的布局方式。就不多说了

参考文章:

前端技术演进(四):前端三层结构与应用 https://juejin.im/post/5c137fc96fb9a049e82b677b

转载本站文章《css过去及未来展望—分析css演进及排版布局的考量》,
请注明出处:https://www.zhoulujun.cn/html/webfront/style/cssBase/2020_0520_8436.html

css过去及未来展望—分析css演进及排版布局的考量的更多相关文章

  1. 20170305深圳Meetup Rails中CSS,JS引用关系分析

    新手上路,若有错误请及时提醒 Rails中CSS,JS引用关系分析 一.Rails静态文件存放位置 二.Rails中CSS引用方式 三.Rails中JS引用方式与CSS类似 四.上面都是默认引用app ...

  2. JS获取元素CSS值的各种方法分析

    先来看一个实例:如何获取一个没有设置大小的字体? <!DOCTYPE html> <html lang="en"> <head> <met ...

  3. CSS技巧(二):CSS hack

    什么是CSS hack CSS hack由于不同的浏览器,比如IE6,IE7,Firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果. 这个时候我们就需 ...

  4. CSS减肥的工具–Firefox插件 CSS Usage

    首先,我们需要安装Firefox(猛击此处下载),或者确定你已经安装的版本已经高于3.1; 第二步,安装前端开发人员最普及的开发工具 Firebug: 第三步,安装CSS Usage 0.3.4.1: ...

  5. HTML CSS + DIV实现排版布局

    HTML CSS + DIV实现排版布局 1.网页可以看成是由一个一个"盒子"组成,如图: 由上图可以看出,页面分为上(网站导航).中.下(版权声明)三个部分,中间部分又分为左(商 ...

  6. 谈谈一些有趣的CSS题目(十一)-- reset.css 知多少?

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  7. 谈谈一些有趣的CSS题目(八)-- 纯CSS的导航栏Tab切换方案

    开本系列,谈谈一些有趣的 CSS 题目,题目类型天马行空,想到什么说什么,不仅为了拓宽一下解决问题的思路,更涉及一些容易忽视的 CSS 细节. 解题不考虑兼容性,题目天马行空,想到什么说什么,如果解题 ...

  8. Normalize.css – 现代 Web 开发必备的 CSS resets

    Normalize.css 是一个可定制的 CSS 文件,使浏览器呈现的所有元素,更一致和符合现代标准.它正是针对只需要统一的元素样式.该项目依赖于研究浏览器默认元素风格之间的差异,精确定位需要重置的 ...

  9. 你真的精通 CSS 了?来挑战一下 CSS 选择器测验吧

    CSS 选择器赋予 CSS 强大的 HTML 元素匹配功能.作为前端开发人员必须要掌握的一部分,可能基本的大家都知道.但是你真的精通 CSS 了吗?挑战一下 CSS 选择器测验就知道. 您可能感兴趣的 ...

  10. CSS易混淆知识点总结与分享-定位与布局

    CSS定位有四种模式:static.relative.absolute.fixed,其它static是默认值,下面分别讲解下各自的特点: static:静态定位,处于动态布局流中,按照页面中的各元素先 ...

随机推荐

  1. umich cv-5-2 神经网络训练2

    这节课中介绍了训练神经网络的第二部分,包括学习率曲线,超参数优化,模型集成,迁移学习 训练神经网络2 学习率曲线 超参数优化 模型集成 迁移学习 学习率曲线 在训练神经网络时,一个常见的思路就是刚开始 ...

  2. JUC并发编程学习笔记(六)Callable(简单)

    Callable(简单) callable接口和runnable接口类似,都是为了执行另外一条线程而设计的,区别是Runnable不会返回结果也不会抛出异常. 1.可以有返回值 2.可以抛出异常 3. ...

  3. Senparc 基础库全面适配 .NET 8.0

    概要 Senparc 全家桶中的基础库已经全面适配 .NET 8.0,目前随着 .NET 8.0 的 RC 版本不断发布,对应的版本号也将同步进行更新,直到本月 Ignite 大会微软官方发布 .NE ...

  4. 提升运维效率:轻松掌握JumpServer安装和使用技巧

    前言 JumpServer 是一个开源的跳板机的解决方案,提供了对远程服务器的安全访问.会话录制和审计.用户身份管理等功能,适用于需要管理机器资源&大量服务器资源的情况. 本文将在分享 doc ...

  5. npm 发布包时 图片打包在新的项目引入不显示 路径错误解决方案

    使用的是vue-cli 4.0以上脚手架 vue2.6 封装好组件后 npm publish ,在其他项目引入该组件库 图片显示失败 打开F12时看到 组件库里图片是/img/图片名,可是该项目没有此 ...

  6. Codeforces Round #702 (Div. 3) 题解

    写在前边 链接:Codeforces Round #702 (Div. 3) 比较简单,但是总是感觉脑子有点转不过弯来. A. Dense Array 链接:A题链接 题目大意: 在数组中插入若干个数 ...

  7. excel怎么固定前几行前几列不滚动?

    在Excel中,如果你想固定前几行或前几列不滚动,可以通过以下几种方法来实现.详细的介绍如下: **固定前几行不滚动:** 1. 选择需要固定的行数.例如,如果你想要固定前3行,应该选中第4行的单元格 ...

  8. 🔥🔥Java开发者的Python快速实战指南:实用工具之PDF转DOCX文档(可视化界面)

    首先,大家对Python语法的了解已经基本完成,现在我们需要开始进行各种练习.我为大家准备了一些练习题目,比如之前的向量数据库等,这些题目可以参考第三方的SDK来进行操作,文档也是比较完善的.这个过程 ...

  9. Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作

    本文首发于公众号:Hunter后端 原文链接:Django笔记四十四之Nginx+uWSGI部署Django以及Nginx负载均衡操作 这一篇笔记介绍如何使用 Nginx + uWSGI 来部署 Dj ...

  10. Go语言实现GoF设计模式:适配器模式

    本文分享自华为云社区<[Go实现]实践GoF的23种设计模式:适配器模式>,作者:元闰子. 简介 适配器模式(Adapter)是最常用的结构型模式之一,在现实生活中,适配器模式也是处处可见 ...