当前位置: 首页 > news >正文

CSS3新增了哪些新特性?

在这里插入图片描述


文章目录

  • 一、是什么
  • 二、选择器
  • 三、新样式
    • 边框
      • box-shadow
    • 背景
      • background-clip
      • background-origin
      • background-size
      • background-break
    • 文字
      • word-wrap
      • text-overflow
      • text-shadow
      • text-decoration
    • 颜色
  • 四、transition 过渡
  • 五、transform 转换
  • 六、animation 动画
  • 七、渐变
  • 八、其他
  • 参考文献


一、是什么

css,即层叠样式表(Cascading Style Sheets)的简称,是一种标记语言,由浏览器解释执行用来使页面变得更美观

css3是css的最新标准,是向后兼容的,CSS1/2的特性在CSS3 里都是可以使用的

而CSS3 也增加了很多新特性,为开发带来了更佳的开发体验


二、选择器

css3中新增了一些选择器,主要为如下图所示:
在这里插入图片描述


三、新样式

边框

css3新增了三个边框属性,分别是:

  • border-radius:创建圆角边框
  • box-shadow:为元素添加阴影
  • border-image:使用图片来绘制边框

box-shadow

设置元素阴影,设置属性如下:

  • 水平阴影
  • 垂直阴影
  • 模糊距离(虚实)
  • 阴影尺寸(影子大小)
  • 阴影颜色
  • 内/外阴影

其中水平阴影和垂直阴影是必须设置的

背景

新增了几个关于背景的属性,分别是background-clip、background-origin、background-size和background-break

background-clip

用于确定背景画区,有以下几种可能的属性:

  • background-clip: border-box; 背景从border开始显示
  • background-clip: padding-box; 背景从padding开始显示
  • background-clip: content-box; 背景显content区域开始显示
  • background-clip: no-clip; 默认属性,等同于border-box

通常情况,背景都是覆盖整个元素的,利用这个属性可以设定背景颜色或图片的覆盖范围

background-origin

当我们设置背景图片时,图片是会以左上角对齐,但是是以border的左上角对齐还是以padding的左上角或者content的左上角对齐? border-origin正是用来设置这个的

  • background-origin: border-box; 从border开始计算background-position
  • background-origin: padding-box; 从padding开始计算background-position
  • background-origin: content-box; 从content开始计算background-position

默认情况是padding-box,即以padding的左上角为原点

background-size

background-size属性常用来调整背景图片的大小,主要用于设定图片本身。有以下可能的属性:

  • background-size: contain; 缩小图片以适合元素(维持像素长宽比)
  • background-size: cover; 扩展元素以填补元素(维持像素长宽比)
  • background-size: 100px 100px; 缩小图片至指定的大小
  • background-size: 50% 100%; 缩小图片至指定的大小,百分比是相对包 含元素的尺寸

background-break

元素可以被分成几个独立的盒子(如使内联元素span跨越多行),background-break 属性用来控制背景怎样在这些不同的盒子中显示

  • background-break: continuous; 默认值。忽略盒之间的距离(也就是像元素没有分成多个盒子,依然是一个整体一样)
  • background-break: bounding-box; 把盒之间的距离计算在内;
  • background-break: each-box; 为每个盒子单独重绘背景

文字

word-wrap

语法:word-wrap: normal|break-word

  • normal:使用浏览器默认的换行
  • break-all:允许在单词内换行

text-overflow

text-overflow设置或检索当当前行超过指定容器的边界时如何显示,属性有两个值选择:

  • clip:修剪文本
  • ellipsis:显示省略符号来代表被修剪的文本

text-shadow

text-shadow可向文本应用阴影。能够规定水平阴影、垂直阴影、模糊距离,以及阴影的颜色

text-decoration

CSS3里面开始支持对文字的更深层次的渲染,具体有三个属性可供设置:

  • text-fill-color: 设置文字内部填充颜色
  • text-stroke-color: 设置文字边界填充颜色
  • text-stroke-width: 设置文字边界宽度

颜色

css3新增了新的颜色表示方式rgba与hsla

  • rgba分为两部分,rgb为颜色值,a为透明度
  • hala分为四部分,h为色相,s为饱和度,l为亮度,a为透明度

四、transition 过渡

transition属性可以被指定为一个或多个CSS属性的过渡效果,多个属性之间用逗号进行分隔,必须规定两项内容:

  • 过度效果
  • 持续时间

语法如下:

transition: CSS属性,花费时间,效果曲线(默认ease),延迟时间(默认0)

上面为简写模式,也可以分开写各个属性

transition-property: width; 
transition-duration: 1s;
transition-timing-function: linear;
transition-delay: 2s;

五、transform 转换

transform属性允许你旋转,缩放,倾斜或平移给定元素

transform-origin:转换元素的位置(围绕那个点进行转换),默认值为(x,y,z):(50%,50%,0)

使用方式:

  • transform: translate(120px, 50%):位移
  • transform: scale(2, 0.5):缩放
  • transform: rotate(0.5turn):旋转
  • transform: skew(30deg, 20deg):倾斜

六、animation 动画

动画这个平常用的也很多,主要是做一个预设的动画。和一些页面交互的动画效果,结果和过渡应该一样,让页面不会那么生硬

animation也有很多的属性

  • animation-name:动画名称
  • animation-duration:动画持续时间
  • animation-timing-function:动画时间函数
  • animation-delay:动画延迟时间
  • animation-iteration-count:动画执行次数,可以设置为一个整数,也可以设置为infinite,意思是无限循环
  • animation-direction:动画执行方向
  • animation-paly-state:动画播放状态
  • animation-fill-mode:动画填充模式

七、渐变

颜色渐变是指在两个颜色之间平稳的过渡,css3渐变包括

  • linear-gradient:线性渐变

background-image: linear-gradient(direction, color-stop1, color-stop2, …);

  • radial-gradient:径向渐变

linear-gradient(0deg, red, green);


八、其他

关于css3其他的新特性还包括flex弹性布局、Grid栅格布局,这两个布局在以前就已经讲过,这里就不再展示

除此之外,还包括多列布局、媒体查询、混合模式等等…


参考文献

  • https://juejin.cn/post/6844903518520901639#heading-1
  • https://www.w3school.com.cn/css/index.asp

希望本文能够对您有所帮助!如果您有任何问题或建议,请随时在评论区留言联系 章挨踢(章IT)
谢谢阅读!

相关文章:

  • 进程间通信——IPC(Linux)
  • vue的生命周期有那些
  • React 教程
  • windows环境,gitbash可以连接拉取代码,但是idea没有权限
  • C#,红黑树(Red-Black Tree)的构造,插入、删除及修复、查找的算法与源代码
  • 离子束铣削(Ion Beam milling)
  • 惬意了解 —— 前端发展史
  • 【敬伟ps教程】视频动画
  • LeetCode 面试题08.04.幂集
  • FFmpeg开发笔记(十)Linux环境给FFmpeg集成vorbis和amr
  • 30个Linux性能问题诊断思路
  • 【构建部署_Docker介绍与安装】
  • 【框架学习 | 第六篇】SpringBoot基础篇(快速入门、自动配置原理分析、配置文件、整合第三方技术、拦截器、文件上传/下载、访问静态资源)
  • 使用yarn创建vite+vue3electron多端运行
  • 【C语言】人生重开模拟器
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • Computed property XXX was assigned to but it has no setter
  • ECMAScript 6 学习之路 ( 四 ) String 字符串扩展
  • java中的hashCode
  • leetcode98. Validate Binary Search Tree
  • Spring-boot 启动时碰到的错误
  • 服务器之间,相同帐号,实现免密钥登录
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 思维导图—你不知道的JavaScript中卷
  • 腾讯大梁:DevOps最后一棒,有效构建海量运营的持续反馈能力
  • 突破自己的技术思维
  • 赢得Docker挑战最佳实践
  • ionic入门之数据绑定显示-1
  • 正则表达式-基础知识Review
  • ​LeetCode解法汇总2670. 找出不同元素数目差数组
  • #Linux杂记--将Python3的源码编译为.so文件方法与Linux环境下的交叉编译方法
  • (八)Spring源码解析:Spring MVC
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (附源码)计算机毕业设计SSM智慧停车系统
  • (三)uboot源码分析
  • (十一)图像的罗伯特梯度锐化
  • (已解决)vue+element-ui实现个人中心,仿照原神
  • (转载)微软数据挖掘算法:Microsoft 时序算法(5)
  • **Java有哪些悲观锁的实现_乐观锁、悲观锁、Redis分布式锁和Zookeeper分布式锁的实现以及流程原理...
  • .Net IOC框架入门之一 Unity
  • .net refrector
  • .NET 发展历程
  • .NET企业级应用架构设计系列之结尾篇
  • @Documented注解的作用
  • [ 数据结构 - C++] AVL树原理及实现
  • [ActionScript][AS3]小小笔记
  • [Android]使用Retrofit进行网络请求
  • [AutoSar]BSW_Memory_Stack_004 创建一个简单NV block并调试
  • [Codeforces1137D]Cooperative Game
  • [EFI]DELL XPS13 9360电脑 Hackintosh 黑苹果efi引导文件
  • [go] 迭代器模式
  • [Hive] 常见函数
  • [JS]JavaScript 注释 输入输出语句
  • [k8s系列]:kubernetes·概念入门
  • [Leetcode] Permutations II