【全面】CSS3新增了哪些新特性?

2023-09-19 09:02:23

目录

一、选择器的扩展

1.  属性选择器

2. 伪类选择器

3. 伪元素选择器

二、盒子模型的增强

 1. box-sizing属性

2. 边框圆角(border-radius)

3. 盒阴影(box-shadow)

三、过渡和动画效果

1. 过渡效果

2. 动画效果

四、响应式布局

1. 媒体查询(media query)

2. 弹性布局(Flexbox)


CSS3 是 CSS (Cascading Style Sheets) 的第三个主要版本,引入了许多令人兴奋的新特性和功能。在本文中,我们将介绍 CSS3 中一些重要的新增特性,并提供相应的代码示例。

一、选择器的扩展

CSS3 引入了一些新的选择器,使得选择元素更加便捷和灵活。

1. 属性选择器

属性选择器允许按照元素的某个属性来选择元素。例如,可以根据元素的属性值选择特定的元素。

/* 选择所有带有 target 属性的链接 */
a[target] {
  color: blue;
}

2. 伪类选择器

CSS3 引入了更多的伪类选择器,可以选择元素的特殊状态或位置。例如,可以选择第一个子元素、鼠标悬停的元素等。

/* 选择第一个段落元素 */
p:first-child {
  font-weight: bold;
}

/* 当鼠标悬停在链接上时改变样式 */
a:hover {
  color: red;
}

3. 伪元素选择器

可以用于选择元素的特定部分,例如元素的第一个字、第一个字母、之前的空白等。

p::first-letter {  
  /* 第一个字母的样式规则 */  
}

二、盒子模型的增强

CSS3对盒子模型进行了一些改进,使得我们能够更加灵活地控制元素的布局和尺寸。

 1. box-sizing属性

可以用于更改元素的盒子模型算法,使得元素的宽度和高度包括边框和内边距。

默认值是content-box,这意味着元素的宽度和高度只包括内容的宽度和高度,而不包括边框(border)、内边距(padding)和外边距(margin)。

如果将box-sizing属性的值设置为border-box,则元素的宽度和高度将包括内容的宽度和高度、边框和内边距,但不包括外边距。

div {  
  box-sizing: border-box;  
}

2. 边框圆角(border-radius)

通过设置边框圆角属性,可以使元素的边框呈现圆角效果。

/* 给一个 div 元素设置圆角边框 */
div {
  border-radius: 10px;
}

3. 盒阴影(box-shadow)

用于给元素添加阴影效果。阴影可以设置水平和垂直偏移量、阴影的模糊程度、阴影的颜色等。

/* 语法 */
box-shadow: h-offset v-offset blur spread color;

/* 给一个标题添加盒阴影 */
h1 {
  box-shadow: 5px 5px 5px #888888;
}
  • h-offset:水平偏移量,阴影在水平方向上偏移的距离。如果是负值,阴影将在元素左边。
  • v-offset:垂直偏移量,阴影在垂直方向上偏移的距离。如果是负值,阴影将在元素的上方。
  • blur:阴影的模糊程度。值越大,阴影边缘越模糊,但也越向外扩散。
  • spread:阴影的大小。正值会扩大阴影,负值会缩小阴影。
  • color:阴影的颜色。

三、过渡和动画效果

CSS3 引入了过渡(transition)和动画(animation)功能,使得元素的状态改变更加平滑和生动。

1. 过渡效果

通过设置过渡属性,可以在元素状态改变时实现平滑的过渡效果。

/* 当鼠标悬停在链接上时,改变颜色过渡效果 */
div {  
  transition: background-color 0.5s ease;  
}  
div:hover {  
  background-color: #f00;  
}

2. 动画效果

通过使用关键帧动画(@keyframes),可以创建自定义的动画效果。

/* 创建一个旋转动画效果 */
@keyframes spin {
  from { transform: rotate(0deg); }
  to { transform: rotate(360deg); }
}

/* 应用旋转动画到一个图像 */
img {
  animation: spin 2s linear infinite;
}

四、响应式布局

CSS3 引入了响应式布局的功能,使得网页能够根据不同设备的屏幕大小和分辨率进行自适应布局。

1. 媒体查询(media query)

用于针对不同的媒体类型定义不同的样式。媒体查询可以针对不同的屏幕尺寸、设备类型、分辨率等条件来应用不同的样式规则。

/* 当浏览器宽度小于 600px 时,改变背景颜色 */
@media (max-width: 600px) {
  body {
    background-color: lightblue;
  }
}

2. 弹性布局(Flexbox)

它是一种用于在页面上布置元素的布局模式,使得当页面布局必须适应不同的屏幕尺寸和不同的显示设备时,元素可预测地运行。

Flexbox模型中的元素可以是行或者列,并且可以灵活地改变大小和形状。使用Flexbox布局,可以轻松地实现元素的水平和垂直居中、元素的重新排序、元素的扩展等操作。

/* 创建一个使用 Flexbox 的水平布局 */
.container {
  display: flex;
  justify-content: space-between;
}

更多推荐

结构型设计模式

结构型设计模式结构型设计模式主要总结了一些类或对象组合在一起的经典结构,这些经典的结构可以解决特定应用场景的问题。结构模式包括:代理模式、桥接模式、装饰器模式、适配器模式、门面模式、组合模式、亨元模式。1.代理模式实现方式:代理模式在不改变原始类接口的条件下,为原始类定义一个代理类,主要目的是为了控制访问,而非加强功能

HTML实现移动端布局与页面自适应

我们所说的布局方式,这里我们通常指的是width和height在不同页面情况下面的改变。常见页面的布局方式有静态布局(px布局,就是固定其高宽,不论页面怎样放大缩小,其占领的依旧是,使用px固定了的高宽)流式布局(LiquidLayout)主要的划分区域的尺寸使用百分数(100%)(搭配min-*、max-*属性使用)

【Intel 黑客松大赛】基于YOLO的杂草-农作物检测分类系统

目录一、赛题简介:计算机视觉挑战——检测并清除杂草二、基于YOLO的杂草-农作物检测分类2.1、YOLO简介2.2、基于YOLO的杂草-农作物检测分类解决方案三、基于YOLO的杂草-农作物检测分类系统设计3.1、基于flask框架的demo应用程序后端3.2、基于Vue框架的demo应用程序前端四、InteloneAP

认识 AIGC ,浅淡 AIGC 的那些事—— AIGC:用 AI 创造万物

文章目录🎨关于封面🔥关于活动📋前言🎯什么是AIGC?🧩AIGC:用AI创造万物🧩AIGC的意义与发展🎯AIGC的发展历程🧩人工智能生成内容的发展历程与概念🧩早期萌芽阶段(1950s-990s)🧩沉淀积累阶段(1990s-2010s)🧩快速发展阶段(1990s-2010s)🎯AIGC峰会分享🧩A

极客时间:深入浅出计算机组成原理【文章笔记 & 思考总结】

本篇博客是学习过程中的笔记、思考和总结。原文链接:https://time.geekbang.org/column/intro/100026001?tab=catalog开篇词|为什么你需要学习计算机组成原理?01|冯·诺依曼体系结构:计算机组成的金字塔计算机的基本硬件组成冯·诺依曼体系结构总结延伸推荐阅读课后思考开篇

腾讯云AI绘画:探究AI创意与技术的新边界

目录一、2023的“网红词汇”——AI绘画二、智能文生图1、智能文生图的应用场景2、风格和配置的多样性3、输入一段话,腾讯云AI绘画给你生成一张图4、文本描述生成图像,惊艳全场三、智能图生图:重新定义图像美学1、智能图生图的多元应用场景2、试试看,上传大黄的照片会变成什么?3、支持辅助文本描述4、“打油诗”也能出图?四

PHP实践:用Yconf配置扩展为项目插上性能的翅膀

🏆作者简介,黑夜开发者,CSDN领军人物,全栈领域优质创作者✌,CSDN博客专家,阿里云社区专家博主,2023年6月CSDN上海赛道top4。🏆数年电商行业从业经验,历任核心研发工程师,项目技术负责人。🏆本文已收录于PHP专栏:PHP进阶实战教程。🏆另有专栏PHP入门基础教程,希望各位大佬多多支持❤️。🎉欢迎

ThreeJS-3D教学一基础场景创建

Three.js是一个开源的JS3D图形库,用于创建和展示高性能、交互式的3D图形场景。它建立在WebGL技术之上,并提供了丰富的功能和工具,使开发者可以轻松地构建令人惊叹的3D可视化效果。Three.js提供了一套完整的工具和API,用于创建和管理3D场景、几何体、纹理、光照、材质和相机等方面。它具有强大的渲染引擎,

分享一下蛋糕店在微信小程序上可以实现什么功能

蛋糕店在微信小程序上可以实现的功能微信小程序作为一种新型的商业模式,正逐渐成为各行各业拓展线上业务的重要手段。对于蛋糕店来说,开发微信小程序可以实现以下功能:一、展示产品和服务微信小程序可以作为蛋糕店的产品展示平台,展示店内的蛋糕品种、价格、口味、配料等信息。同时,小程序还可以提供预订服务,用户可以通过小程序提前预定蛋

Direct3D纹理映射

借助纹理映射技术,我们可将图像数据映射到三角形单元中,这种功能可以显著地增加所绘制场景的细节和真实感,例如创建一个立方体然后为其每个面映射一个板条纹理,从而将该立方体变为一个板条箱,在Direct3D中纹理用接口IDirect3DTexture9来表示,纹理是类似于表面的一个像素矩阵,与表面不同的是它可被映射到三角形单

如何在macOS上安装Go并搭建本地编程环境

引言Go是一种诞生于挫折中的编程语言。在谷歌,开发人员厌倦了在为新项目选择语言时必须做出权衡。有些语言执行效率很高,但需要很长时间编译,而另一些语言易于编写,但在生产环境中运行效率很低。因此,谷歌发明了Go语言,并设计了这门语言以拥有这一切:快速编译、快速执行、易于编写和易于部署。虽然Go是一种通用语言,可用于从web

热文推荐