CSS2和CSS3的区别

了解对CSS3的主要更改

CSS2和CSS3最大的不同之处在于CSS3被分成不同的部分,称为模块。 这些模块中的每一个都在推荐过程的各个阶段通过W3C。 这个过程使不同的制造商能够在浏览器中接受并实现各种CSS3。

如果您将此过程与CSS2发生的情况进行比较,那么所有内容都作为单个文档提交,其中包含所有层叠样式表信息,您将开始看到将建议分成更小,单独的部分的优势。 由于每个模块都是单独运行的,因此我们对CSS3模块的浏览器支持范围更广。

就像任何新的和不断变化的规范一样,一定要尽可能在尽可能多的浏览器和操作系统中彻底测试CSS3页面。 请记住,目标不是创建在每个浏览器中完全一样的网页,而是要确保您使用的任何样式(包括CSS3样式)在支持它们的浏览器中看起来都很棒,而且它们适合旧式浏览器不要。

新的CSS3选择器

CSS3提供了一系列新的方法,您可以使用新的CSS选择器来编写CSS规则,以及一个新的组合器和一些新的伪元素。

三个新的属性选择器:

16个新的伪类:

一个新的组合器:

新的属性

CSS3还引入了一些新的CSS属性。 这些属性中的很多都是为了创建视觉样式,这些样式可能会更多地与Photoshop等图形程序相关联。 自引入CSS3以来,其中一些像border-radius或box-shadow一样。 其他人,比如flexbox甚至CSS Grid都是更新的样式,这些样式仍然被认为是CSS3的补充。

在CSS3中,框模型没有改变。 但是有一些新的样式属性可以帮助您设计箱子的背景和边框。

多个背景I法师

使用背景图像,背景位置和背景重复样式,您可以指定多个背景图像在框中彼此重叠。 第一个图像是最接近用户的图层,后面绘制了下图。 如果存在背景色,则将其绘制在所有图像层下。

新的背景样式属性

CSS3中还有一些新的背景属性。

对现有背景样式属性的更改

现有的背景样式属性也有一些变化:

CSS3边框属性

在CSS3中,边框可以是我们习惯的样式(实体,双层,虚线等),也可以是图像。 另外,CSS3还可以创建圆角。 边框图像很有趣,因为您可以创建所有四个边框的图像,然后告诉CSS如何将该图像应用到边框。

新的边框样式属性

CSS3中有一些新的边框属性:

与边框和背景相关的其他CSS3属性

当在分页符处打开一个框时,换行分隔符(对于内联元素),box-decoration-break属性定义了如何使用边框和填充来包装新框。 使用此属性可将背景分成多个破损的框。

还有一个box-shadow属性,可以用来为box元素添加阴影。

使用CSS3,您现在可以轻松地设置具有多个列的网页,而无需表格或复杂的div标签结构。 您只需告诉浏览器body元素应该有多少列以及它们应该有多宽。 另外,您可以添加边框(规则),跨越列高度的背景颜色,并且文本将自动流过所有列。

CSS3列 - 定义列的数量和宽度

有三个新属性允许您定义列的数量和宽度:

CSS3栏目差距和规则

间隔和规则放置在同一多栏场景中的列之间。 差距会推开列,但规则不占用任何空间。 如果列规则比间隙宽,则它将与相邻列重叠。 列规则和差距有五个新属性:

CSS3列中断,跨越列和填充列

分栏符使用相同的CSS2选项来定义分页内容中的分隔符,但有三个新属性:分隔符,分隔符和分隔符。

与表格一样,您可以将元素设置为使用column-span属性跨越列。 这使您可以创建跨多列的标题,更像报纸。

填充列决定每列中将包含多少内容。 平衡列尝试在每列中放入相同数量的内容,而自动只传递内容直到列满,然后转到下一个列。

CSS3中包含更多的功能,不包含在CSS2中

CSS3中有很多附加功能在CSS2中不存在,其中包括: