CSS3中的一些新特性(CSS)

CSS3是CSS2的升级版本,3只是版本号,它在CSS2.1的基础上增加了很多强大的新功能。 目前主流浏览器chrome、safari、firefox、opera、甚至360都已经支持了CSS3大部分功能了,IE10以后也开始全面支持CSS3了。

在编写CSS3样式时,不同的浏览器可能需要不同的前缀。它表示该CSS属性或规则尚未成为W3C标准的一部分,是浏览器的私有属性,虽然目前较新版本的浏览器都是不需要前缀的,但为了更好的向前兼容前缀还是少不了的。

前缀浏览器
-webkit-chrome和safari
-moz-firefox
-ms-IE
-o-opera

CSS3能做什么

圆角效果

以前做圆角通常使用背景图片,或繁琐的元素拼凑,现在很简单了 border-radius 帮你轻松搞定。
在这里插入图片描述
块阴影与文字阴影

可以对任意DIV和文字增加投影效果。

色彩
CSS3支持更多的颜色和更广泛的颜色定义。新颜色CSS3支持HSL , CMYK ,HSLA and RGBA。
渐变效果
以前只能用Photoshop做出的图片渐变效果,现在可以用CSS写出来了。IE中的滤镜也可以实现。
在这里插入图片描述
变形处理(transition 过渡)
你可以对HTML元素进行旋转、缩放、倾斜、移动、甚至以前只能用JavaScript实现的强大动画。
在这里插入图片描述

个性化字体
网页上的字体太单一?使用@Font-Face 轻松实现定制字体。

多背景图
一个元素上添加多层背景图片。

边框背景图
边框应用背景图片。

多栏布局
可以让你不用使用多个div标签就能实现多栏布局。浏览器解释这个属性并生成多栏,
让文本实现一个仿报纸的多栏结构。

媒体查询
针对不同屏幕分辨率,应用不同的样式。

CSS3使代码更简洁、更高效。可以极大的提高工作效率,打造更高级的用户体验。使web应用的界面设计进入一个新的台阶。

边框

圆角效果 border-radius
border-radius是向元素添加圆角边框。

使用方法:

border-radius:10px; 所有角都使用半径为10px的圆角,可以诠释圆形

在这里插入图片描述
border-radius: 5px 4px 3px 2px; 四个半径值分别是左上角、右上角、右下角和左下角,顺时针
在这里插入图片描述

  • border-radius的值不是只能用px单位,还可以用百分比或者em

实心上半圆:

方法:把高度(height)设为宽度(width)的一半,并且只设置左上角和右上角的半径与元素的高度一致(大于也是可以的)

实心圆:
方法:把宽度(width)与高度(height)值设置为一致(也就是正方形),并且四个圆角值都设置为它们值的一半

阴影 box-shadow

box-shadow是向盒子添加阴影。支持添加一个或者多个。

很简单的一段代码,就实现了投影效果,酷毙了。我们来看下语法:

box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];

参数介绍:
在这里插入图片描述

  • inset 可以写在参数的第一个或最后一个,其它位置是无效的。

为元素设置外阴影:

.box_shadow{
  box-shadow:4px 2px 6px #333333; 
}

效果:
在这里插入图片描述
为元素设置内阴影:

.box_shadow{
  box-shadow:4px 2px 6px #333333 inset; 
}

效果:
在这里插入图片描述
如果添加多个阴影,只需用逗号隔开即可:

.box_shadow{
    box-shadow:4px 2px 6px #f00, -4px -2px 6px #000, 0px 0px 12px 5px #33CC00 inset;
}

效果:
在这里插入图片描述
阴影模糊半径与阴影扩展半径的区别

  • 阴影模糊半径:此参数可选,其值只能是为正值,如果其值为0时,表示阴影不具有模糊效果,其值越大阴影的边缘就越模糊;

  • 阴影扩展半径:此参数可选,其值可以是正负值,如果值为正,则整个阴影都延展扩大,反之值为负值时,则缩小;

X轴偏移量和Y轴偏移量值可以设置为负数

box-shadow: X轴偏移量 Y轴偏移量 [阴影模糊半径] [阴影扩展半径] [阴影颜色] [投影方式];

X轴偏移量为负数:

.boxshadow-outset{
    width:100px;
    height:100px;
    box-shadow:-4px 4px 6px #666;
}

在这里插入图片描述
Y轴偏移量为负数:

.boxshadow-outset{
    width:100px;
    height:100px;
    box-shadow:4px -4px 6px #666;
}

在这里插入图片描述

颜色

颜色之RGBA
RGB是一种色彩标准,是由红®、绿(G)、蓝(B)的变化以及相互叠加来得到各式各样的颜色。RGBA是在RGB的基础上增加了控制alpha透明度的参数。

语法:
color:rgba(R,G,B,A)

以上R、G、B三个参数,正整数值的取值范围为:0 - 255。百分数值的取值范围为:0.0% - 100.0%。超出范围的数值将被截至其最接近的取值极限。并非所有浏览器都支持使用百分数值。A为透明度参数,取值在0~1之间,不可为负值。
示例:

background-color:rgba(100,120,60,0.5);

渐变色彩

CSS3 Gradient 分为线性渐变(linear)和径向渐变(radial)。由于不同的渲染引擎实现渐变的语法不同,这里我们只针对线性渐变的 W3C 标准语法来分析其用法,其余大家可以查阅相关资料。W3C 语法已经得到了 IE10+、Firefox19.0+、Chrome26.0+ 和 Opera12.1+等浏览器的支持。

在这里插入图片描述
参数:

第一个参数:指定渐变方向,可以用“角度”的关键词或“英文”来表示:
在这里插入图片描述

  • 第一个参数省略时,默认为“180deg”,等同于“to bottom”。
    第二个和第三个参数,表示颜色的起始点和结束点,可以有多个颜色值。
background-image:linear-gradient(to left,red,orange,yellow,green,blue,indigo,violet);

效果图:
在这里插入图片描述

文字与字体

text-overflow与 word-wrap
text-overflow用来设置是否使用一个省略标记(…)标示对象内文本的溢出。

但是text-overflow只是用来说明文字溢出时用什么方式显示,要实现溢出时产生省略号的效果,还须定义强制文本在一行内显示(white-space:nowrap)及溢出内容为隐藏(overflow:hidden),只有这样才能实现溢出文本显示省略号的效果,代码如下:

text-overflow:ellipsis; 
overflow:hidden; 
white-space:nowrap;

同时,word-wrap也可以用来设置文本行为,当前行超过指定容器的边界时是否断开转行。

normal为浏览器默认值,break-word设置在长单词或 URL地址内部进行换行,此属性不常用,用浏览器默认值即可。

嵌入字体@font-face

@font-face能够加载服务器端的字体文件,让浏览器端可以显示用户电脑里没有安装的字体。

	@font-face {
    font-family : 字体名称;
    src : 字体文件在服务器上的相对或绝对路径;
}

设置之后,就可以像使用普通字体一样在(font-*)中设置字体样式。

比如:

 p {
    font-size :12px;
    font-family : "My Font";
    /*必须项,设置@font-face中font-family同样的值*/
}

文本阴影text-shadow

text-shadow可以用来设置文本的阴影效果

text-shadow: X-Offset Y-Offset blur color;
  • X-Offset:表示阴影的水平偏移距离,其值为正值时阴影向右偏移,反之向左偏移;
  • Y-Offset:是指阴影的垂直偏移距离,如果其值是正值时,阴影向下偏移,反之向上偏移;
  • Blur:是指阴影的模糊程度,其值不能是负值,如果值越大,阴影越模糊,反之阴影越清晰, 如果不需要阴影模糊可以将Blur值设置为0;
  • Color:是指阴影的颜色,其可以使用rgba色。

背景

background-origin

设置元素背景图片的原始起始位置。

background-origin : border-box | padding-box | content-box;

参数分别表示背景图片是从边框,还是内边距(默认值),或者是内容区域开始显示。

效果如下:
在这里插入图片描述

  • 如果背景不是no-repeat,这个属性无效,它会从边框开始显示

background-clip
用来将背景图片做适当的裁剪以适应实际需要

background-clip : border-box | padding-box | content-box | no-clip

参数分别表示从边框、或内填充,或者内容区域向外裁剪背景。no-clip表示不裁切,和参数border-box显示同样的效果。backgroud-clip默认值为border-box。

效果如下图所示:
在这里插入图片描述
background-size

设置背景图片的大小,以长度值或百分比显示,还可以通过cover和contain来对图片进行伸缩。

background-size: auto | <长度值> | <百分比> | cover | contain

取值说明:

  • auto:默认值,不改变背景图片的原始高度和宽度;

  • <长度值>:成对出现如200px 50px,将背景图片宽高依次设置为前面两个值,当设置一个值时,将其作为图片宽度值来等比缩放;

  • <百分比>:0%~100%之间的任何值,将背景图片宽高依次设置为所在元素宽高乘以前面百分比得出的数值,当设置一个值时同上;

  • cover:顾名思义为覆盖,即将背景图片等比缩放以填满整个容器;

  • contain:容纳,即将背景图片等比缩放至某一边紧贴容器边缘为止。

CSS3中的动画

变形–旋转 rotate()

旋转rotate()函数通过指定的角度参数使元素相对原点进行旋转。

它主要在二维空间内进行操作,设置一个角度值,用来指定旋转的幅度。

如果这个值为正值,元素相对原点中心顺时针旋转;

如果这个值为负值,元素相对原点中心逆时针旋转。

如下图所示:
在这里插入图片描述
案例:

.wrapper {
  width: 200px;
  height: 200px;
  border: 1px dotted red;
  margin: 100px auto;
}
.wrapper div {
  width: 200px;
  height: 200px;
  background: orange;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}

在这里插入图片描述
变形–扭曲 skew()

扭曲skew()函数能够让元素倾斜显示。

它可以将一个对象以其中心位置围绕着X轴和Y轴按照一定的角度倾斜。

这与rotate()函数的旋转不同,rotate()函数只是旋转,而不会改变元素的形状。

skew()函数不会旋转,而只会改变元素的形状。

skew()具有三种情况:

1、skew(x,y)使元素在水平和垂直方向同时扭曲(X轴和Y轴同时按一定的角度值进行扭曲变形);
在这里插入图片描述
第一个参数对应X轴,第二个参数对应Y轴。如果第二个参数未提供,则值为0,也就是Y轴方向上无斜切。

2、skewX(x)仅使元素在水平方向扭曲变形(X轴扭曲变形);

在这里插入图片描述
3、skewY(y)仅使元素在垂直方向扭曲变形(Y轴扭曲变形)

在这里插入图片描述
案例:通过skew()函数将长方形变成平行四边形。

.wrapper {
  width: 300px;
  height: 100px;
  border: 2px dotted red;
  margin: 30px auto;
}
.wrapper div {
  width: 300px;
  height: 100px;
  line-height: 100px;
  text-align: center;
  color: #fff;
  background: orange;
  -webkit-transform: skew(45deg);
  -moz-transform:skew(45deg) 
  transform:skew(45deg);
}

在这里插入图片描述
变形–缩放 scale()

缩放 scale()函数 让元素根据中心原点对对象进行缩放。

缩放 scale 具有三种情况:

1、 scale(X,Y)使元素水平方向和垂直方向同时缩放(也就是X轴和Y轴同时缩放)
在这里插入图片描述
案例:

.wrapper {
  width: 200px;
  height: 200px;
  border:2px dashed red;
  margin: 100px auto;
}
.wrapper div {
  width: 200px;
  height: 200px;
  line-height: 200px;
  background: orange;
  text-align: center;
  color: #fff;
}
.wrapper div:hover {
  opacity: .5;
  -webkit-transform: scale(1.5);
  -moz-transform:scale(1.5)
  transform: scale(1.5);
}

在这里插入图片描述

  • scale()的取值默认的值为1,当值设置为0.01到0.99之间的任何值,作用使一个元素缩小;而任何大于或等于1.01的值,作用是让元素放大。

变形–位移 translate()

translate()函数可以将元素向指定的方向移动,类似于position中的relative。或以简单的理解为,使用translate()函数,可以把元素从原来的位置移动,而不影响在X、Y轴上的任何Web组件。

translate我们分为三种情况:

1、translate(x,y)水平方向和垂直方向同时移动(也就是X轴和Y轴同时移动)
在这里插入图片描述
2、translateX(x)仅水平方向移动(X轴移动)
在这里插入图片描述
3、translateY(Y)仅垂直方向移动(Y轴移动)
在这里插入图片描述
案例:

.wrapper {
  width: 200px;
  height: 200px;
  border: 2px dotted red;
  margin: 20px auto;
}
.wrapper div {
  width: 200px;
  height: 200px;
  line-height: 200px;
  text-align: center;
  background: orange;
  color: #fff;
  -webkit-transform: translate(50px,100px);
  -moz-transform:translate(50px,100px);
  transform: translate(50px,100px);
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值