答案是:不会有CSS4!

实际上,现在连CSS3这个词都已经名存实亡了,因为CSS3已经解体了。

为什么说CSS3解体了呢?

因为CSS按照大版本的方式进行迭代实在是太低效了。低效的原因其实很好理解,如果CSS这门语言必须按照大版本迭代发布的话,只要其中一个版本有一个CSS特性存在极大的争议,那这个版本的CSS的发布时间就会延后。例如,CSS2.1的规范在2002年开始制定,而一直到2011年才成为推荐规范,整个过程足足花费了10年的时间,就是因为一些次要的CSS特性拖了后腿。

在Web前端领域,新技术的发展十分迅速,而CSS的规范又是基于当前环境制定的。如果CSS的规范从开始制定到最终浏览器完全支持需要横跨很多年,保不准这个CSS新特性很快就过时了,或者开发者都约定俗成使用其他方案替代实现了,那之前辛苦做的工作就白费了。CSS这门语言的竞争力和潜力也会因此下降,因为不能快速响应时代变化的语言不是一门好语言。

为了加速没有争议的CSS特性的标准化,W3C的CSS工作组做出了一项被称为“Beijing doctrine”的决定,该决定将CSS划分为更小的组件,并把这些组件称为模块。这些模块互相独立,各自按照自己的速度走向标准化。例如,CSS选择器模块已经到了Level 4了,弹性布局模块还是Level 1。

将CSS划分为独立的模块是一个非常明智的决定,浏览器厂商可以根据对自己需求的判断决定究竟对哪些模块进行支持,哪怕这个模块还处于草案状态。例如CSS的env()函数的规范还是草案状态,但是Chrome和Safari浏览器的厂商却快速响应,对其进行了支持。对开发者而言,如此迅速地支持新特性犹如一场及时雨。

近几年,浏览器陆续支持一个又一个新的CSS特性,这已经成为一种常态。得益于CSS这种模块化的划分,以及浏览器厂商的积极支持,我们可以非常及时地使用这些CSS新特性来让我们的Web应用程序变得更丰富多彩,毕竟有很多内部的项目是不需要考虑兼容性问题的。

当然,这种模块化的设计也不是没有弊端,最大的问题就是设计冗余。例如,弹性布局和网格布局中的对齐属性其实可以统一,但它们却是分离的,这就会徒增学习成本;分栏布局、弹性布局和网格布局中的间隙其实可以统一,但它们也都是分离的,各有各的间隙属性。好在纠正及时,现在这三大布局全部开始改用gap属性表示间隙,减少了因为模块化带来的设计冗余。

模块化策略带来的好处远远大于弊端,正所谓瑕不掩瑜,与带来的好处相比,模块化设计的弊端几乎可以忽略不计。从这个角度看,CSS2.1之后的CSS世界就是模块化的新世界,所以我称之为CSS新世界。这个CSS新世界带来了新的CSS属性,并让很多CSS2中模糊的概念有了明确的定义,如尺寸体系、逻辑属性、CSS值类型划分等。

CSS新世界中各模块虽然发展独立,但是相互间还是有很多共性和联系的。因此,CSS新世界不仅是一个模块化的世界,还是一个缤纷多彩,同时又自成一体的严谨的世界。

CSS世界已经有了CSS2和CSS3,那会有CSS4吗?相关推荐

  1. css入门之CSS1、CSS2、CSS3、CSS4发展历程

    1.简介 CSS 最初于 1996 年发布,由用于添加字体属性的属性组成 例如字体和文本的强调颜色.背景和其他元素. CSS2 于 1998 年发布,为其他媒体类型添加了样式,以便可以用于页面布局设计 ...

  2. 请对比html与css的异同,css2与css3的区别是什么?

    css主要有三个版本,分别是css1.css2.css3.css2使用的比较多,因为css1的属性比较少,而css3有一些老式浏览器并不支持,所以大家在开发的时候主要还是使用css2. CSS1提供有 ...

  3. 《css世界》的那些实用技巧

    下面所有的内容都来至张鑫旭所著的<css世界>. <css世界>这是一本专门写css的书,书中并没有涉及css3的知识,但是它所展现的东西很多都是我从未知道或以前未重视的.这是 ...

  4. CSS 伪类选择器:如何使用 CSS3 伪类

    CSS 伪类选择器:如何使用 CSS3 伪类 CSS3 是个好东西,但也很容易被她的变形(transform)和动画(其中许多特性因浏览器厂商而异)特性所迷惑,因而忘了那些已经被添加到标准规范中的最为 ...

  5. 张鑫旭和他的《CSS世界》

    说到本书的作者,前端圈里没见过他的人有很多,但没读过他文章的人很少,他就是很多前端同行眼中的,张老师,张大神--张鑫旭(以下简称"张") 前一段时间,去参加"前端体验大会 ...

  6. css transparent张鑫旭,【灵感杂谈】张鑫旭和他的《CSS世界》

    原标题:[灵感杂谈]张鑫旭和他的<CSS世界> 说到本书的作者,前端圈里没见过他的人有很多,但没读过他文章的人很少,他就是很多前端同行眼中的,张老师,张大神--张鑫旭(以下简称" ...

  7. 读张鑫旭老师的《CSS世界》总结

    概述 整个css世界围绕"流"来展开,映射现实世界的流 现实世界,水流(div)放到一个容器里面,一定是平铺展开,如果放一个木头(span),它会漂在水流上面,再放一个,还是会跟前 ...

  8. CSS世界-第四章 盒尺寸四大家族

    盒尺寸的4个盒子:content box,padding box,border box,margin box 一 深入理解 content 1.根据可替换性把元素分为替换元素和非替换元素 <im ...

  9. 《CSS世界》读书笔记(九)

    <!-- <CSS世界>张鑫旭著 --> content内容生成技术 1. content 辅助元素生成 清除浮动: .clear:after {content: '';dis ...

最新文章

  1. [linux内核][linux中断]——软中断机制
  2. 三. H.264简介
  3. 美酒节成就及任务攻略指引
  4. 架WSUS服务器 内网自动打补丁
  5. 机器学习算法中的概率方法
  6. apache 设置404 页面_SpringBoot自定义错误页面
  7. scrapy读取mysql数据库_python3实战scrapy获取数据保存至MySQL数据库
  8. 哈达玛变换的应用SATD、SAD等匹配算法
  9. Android调用系统照相机
  10. oracle9i使用OMS备份数据
  11. 路由器php系统时间设置时间设置时间设置时间设置时间设置,win7电脑提示系统时间设置有误请更新系统日期...
  12. 第十五章、实现属性以访问字段
  13. java版的mrp模拟器_mrp模拟器(simulator)
  14. 盘点五款值得收藏的 Linux 开发板
  15. vs2013 update5离线升级包下载地址
  16. 【重识云原生】第六章容器6.3.1节——K8S核心组件总述
  17. 用canvas写 看你有多色 游戏
  18. ios开发——实用技术篇Block/KVO/通知/代理
  19. win7和win10哪个好用
  20. join left loke mysql_mysql监控---慢语句查询

热门文章

  1. [原创]全面增强版 eXtremeComponents !!!!
  2. T3 Android4.4平台的XR829的移植和XR819模块的兼容
  3. 【PMP备考经验分享】从选择培训机构到5A通关,你需要做什么?
  4. 安装Office2010提示无法将数值写入注册表
  5. Android获取WIFI信号强度
  6. 普通话考试是从题库里抽吗_普通话考试的作品朗读是不是从60篇范文中抽取一篇?...
  7. macbook pro 突破校园网inode客户端限制分享网络
  8. ArcEngine错误码
  9. 中国移动规范学习——4A技术要求(集中认证)
  10. 51单片机外接ADC0808制作简易电压表