CSS3

作者: yuhuan121 | 来源:发表于2017-08-24 17:27 被阅读0次

CSS3是CSS技术的升级版本,CSS3语言开发是朝着模块化发展的。以前的规范作为一个模块实在是太庞大而且比较复杂,所以,把它分解为一些小的模块,更多新的模块也被加入进来。这些模块包括: 盒子模型、列表模块、超链接方式 、语言模块 、背景和边框 、文字特效 、多栏布局等。

CSS3文本

text-overflow

1.clip: 隐藏超出文本
2.ellipsis: 超出部分使用省略号
例子


overflow:hidden;
text-overflow:clip; 

对于省略号效果还需要其它属性配合

overflow:hidden; 超出的部分隐藏
text-overflow:ellipsis; 超出的文本省略号...
white-space: nowrap; 文本不换行

文本换行

word-wrap

word-wrap 属性允许长单词或 URL 地址换行到下一行

word-break

word-break 属性规定自动换行的处理方法

white-space

white-space 属性设置如何处理元素内的空白

normal 默认。连续空白会被浏览器忽略
pre 空白会被浏览器保留。其行为方式类似 HTML 中的标签
nowrap 文本不会换行,文本会在在同一行上继续,直到遇到 
标签为止
pre-wrap 保留空白符序列,但是正常地进行换行
pre-line 合并空白符序列,但是保留换行符
inherit 规定应该从父元素继承 white-space 属性的值

text-shadows设置文字阴影

和box-shdow很像
可以设置偏移、颜色、阴影大小

text-shadow: x轴(X Offset) y轴(Y Offset)  模糊半径(Blur)  颜色(Color)

可以写多个,,隔开

 text-shadow: 0 0 5px #fff, 0 0 10px #fff, 0 0 15px #fff, 0 0 40px #ff00de, 0 0 70px #ff00d

结合背景颜色,通过偏移距离负数或者颜色,可以做出各种效果

CSS3边框

border-radius

通过border-radius设置元素的圆角半径
对于正方形border-radius设置为边长的一半,就变成圆了

width: 100px;
height: 100px;
border-radius: 50px; //或者border-radius: 50%;

border-radius是缩写格式,其实border-radius和border属性一样,还可以把各个角单独拆分出来

border-radius: 50px 30px 20px 0;  表示左上、右上、右下、左下

半圆

.circle{
    width: 100px;
    height: 50px;
    background: red;
    border-radius: 50px 50px 0 0;
}

border-image

border-image几个属性详解
边框都是线条略显单调,使用CSS3可以用图片作为边框的修饰

source

和background类似,指定想使用的图片来源

border-image-source:url(image url);

width

指定border的宽度

border-image-width: 1;

repeat

三种repeat方式

  1. stretch 压缩或伸展border-image的背景图片以其刚好适应border-width的宽度
  2. repeat 简单的重复
  3. round 压缩或伸展border-image的背景图片以图片最小单元刚好适应border-width的宽度,在此基础上重复

slice

border-image-slice: number|%|fill;

此属性指定顶部,右,底部,左边缘的图像向内偏移,分为九个区域:四个角,四边和中间。图像中间部分将被丢弃(完全透明的处理)

有工具帮忙生成 border-image-generator

box-shadow

box-shadow:inset x-offset y-offset blur-radius spread-radius color
box-shadow属性至多有6个参数设置
阴影类型 X-offset Y-offset 阴影模糊半径 阴影扩展半径 颜色
  1. 阴影类型:默认的投影方式是外阴影;如果取其唯一值inset,就是将外阴影变成内阴影

  2. X-offset:是指阴影水平偏移量,可正可负,如果值为正,则阴影在对象的右边,值为负值时,阴影在对象的左边

  3. Y-offset:是指阴影的垂直偏移量,其值也可以是正负值,如果为正值,阴影在对象的底部,反之其值为负值时,阴影在对象的顶部

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

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

  6. 阴影颜色:此参数可选,如果不设定任何颜色时,浏览器会取默认色,但各浏览器默认色不一样

box-shadow可以使用一个或多个投影,如果使用多个投影时必须需要用逗号,分开

box-shadow: 3px 3px 3px orange, 3px 3px 3px red;

用阴影属性写一个月亮

.circle{
    width: 100px;
    height: 50px;
    border:1px solid red;
    border-bottom:0;
    border-radius: 50px 50px 0 0;
    box-shadow: inset 0px 16px 0px -2px red;
}

box-sizing

box-sizing可以改变盒模型
传统的盒模型width就是指内容区域宽度,和padding、border没有关系,但是这在布局上带来一定的困难

content-box:标准盒模型
border-box:width = content width + paddingLeft + borderLeft + paddingRight + borderRight

background-size

  1. length:设置背景图像的高度和宽度,第一个值设置宽度,第二个值设置高度,如果只设置一个值,则第二个值会被设置为auto
  2. percentage: 以父元素的百分比来设置背景图像的宽度和高度,第一个值设置宽度,第二个值设置高度,如果只设置一个值,则第二个值会被设置为auto
  3. cover: 把背景图像扩展至足够大,以使背景图像完全覆盖背景区域,背景图像的某些部分也许无法显示在背景定位区域中
  4. contain: 把图像图像扩展至最大尺寸,以使其宽度和高度完全适应内容区域

图片全屏设置

<style>
    html,body{
        margin: 0;
        height: 100%;
    }
    .box {
        height:100%;
        background: url(http://img2.imgtn.bdimg.com/it/u=3319314272,2780729326&fm=27&gp=0.jpg) no-repeat;
        background-size:cover;  
    }
    </style>
</head>
<body>
<div class="box"></div>

background-origin

background-origin 属性规定 background-position 属性相对于什么位置来定位

  1. padding-box: 背景图像相对于内边距框来定位
  2. border-box: 背景图像相对于边框盒来定位
  3. content-box: 背景图像相对于内容框来定位

如果背景图像的 background-attachment 属性为fixed,则该属性没有效果

background-clip

background-clip 属性规定背景的绘制区域

  1. padding-box: 背景被裁剪到边框盒
  2. border-box: 背景被裁剪到内边距框
  3. content-box: 背景被裁剪到内容框

多背景

在之前的CSS中只能使用一张背景图片,CSS3可以使用多张背景图片

background:url("haoroomsCSS1_s.jpg") 0 0 no-repeat,
         url("haoroomsCSS2_s.jpg") 200px 0 no-repeat,
         url("haorooms.jpg") 400px 201px no-repeat;

CSS3渐变

CSS3 定义了两种类型的渐变(gradients):

  • 线性渐变(Linear Gradients)- 向下/向上/向左/向右/对角方向
  • 径向渐变(Radial Gradients)- 由它们的中心定义

CSS3 线性渐变

语法

#可以使用多个颜色结点
background: linear-gradient(direction, color-stop1, color-stop2, ...);
background: linear-gradient(red, blue); /* 默认从上到下 */
background: linear-gradient(to right, red , blue); /* 从左到右 */
background: linear-gradient(to bottom right, red , blue); /* 从左上角到右下角 */
background: linear-gradient(180deg, red, blue); /*带有指定的角度的线性渐变 */
background: linear-gradient(to right, rgba(255,0,0,0), rgba(255,0,0,1)); /* 从完全透明,过渡到完全不透明的红色*/
/*rgba() 函数中的最后一个参数可以是从 0 到 1 的值,它定义了颜色的透明度:0 表示完全透明,1 表示完全不透明。*/
background: repeating-linear-gradient(red, yellow 10%, green 20%)/*重复线性渐变*/

CSS3 径向渐变

语法

background: radial-gradient(center, shape size, start-color, ..., last-color);

至少定义两种颜色结点,还可以指定渐变的中心、形状(原型或椭圆形)、大小。默认情况下,渐变的中心是 center(在中心点),渐变的形状是 ellipse(椭圆形),渐变的大小是 farthest-corner(表示到最远的角落)。

background: radial-gradient(red, green, blue); /*颜色结点均匀分布*/
background: radial-gradient(red 5%, green 15%, blue 60%);/*颜色结点不均匀分布*/
background: radial-gradient(circle, red, yellow, green);/*形状为圆形的径向渐变*/
background: repeating-radial-gradient(red, yellow 10%, green 15%)/*重复的径向渐变*/
background: radial-gradient(60% 55%, closest-side,blue,green,yellow,black)/*控制渐变尺寸大小*/

CSS3 过渡

用法

transition: property, duration, timing-function, delay

以下两种写法等价:

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

CSS3 动画

利用CSS3创建的动画,可以取代许多网页动画图像,Flash动画,和JAVAScripts。
CSS3 @keyframes 规则
@keyframes用于定义动画的规则

@keyframes rainbow {
  0% { background: #c00; }
  50% { background: orange; }
  100% { background: yellowgreen; }
}

rainbow效果一共有三个状态,分别为起始(0%)、中点(50%)和结束(100%)。如果有需要,可以插入更多状态。

定义了关键帧之后就可以给DOM元素绑定动画了,和事件很像

div:hover {
  animation: 1s rainbow;
}
#加入infinite关键字,让动画无限次播放
div:hover {
  animation: 1s rainbow infinite;
}
#指定动画具体播放的次数,比如3次
div:hover {
  animation: 1s rainbow 3;
}

animation-fill-mode规定结束模式

  • none:默认值,回到动画没开始时的状态
  • forwards:让动画停留在结束状态
  • backwards:让动画回到第一帧的状态
  • both: 根据animation-direction(见后)轮流应用forwards和backwards规则

animation-direction指定了动画播放的方向

animation-play-state
如果想让动画保持突然终止时的状态,设置为paused

 animation-play-state: paused;
animation-play-state: running;

工具
CSS3 Tool

如下 loading 动画效果 DEMO1& DEMO2

loading效果

CSS3变形

CSS3中transform属性包括以下几种:旋转rotate、扭曲skew、缩放scale和移动translate以及矩阵变形matrix

transform : none | <transform-function> [ <transform-function> ]*

transform中使用多个属性时需要有空格隔开,可用于内联(inline)元素和块级(block)元素

旋转rotate

transform:rotate(30deg);//通过rotate使元素顺时针旋转一定的度数
transform-origin: 0% 0%;//通过transform-origin属性改变元素旋转的的基点,
//transform-origin的取值可以是top, bottom, left, right, center,百分数

旋转之后元素仍占据原来位置,实际上所有的transform都是这样,缩放、位移等都不会改变元素占据的位置
transform-origin属性对下面介绍的transform都有作用
位移
可以通过translate使元素平移

transform:translate(x,y);
transform:translate(200px,150px);
transform:translate(50%,50%);//相对于自身发生偏移,常用来代替margin-left和margin-top设定绝对定位实现垂直水平居中:

也可以简单只移动一个坐标

transform:translateX(100px);
transform:translateY(100px);

缩放scale
通过scale使元素缩放一定的比例

transform:scale(2, 0.5);//scale(x,y):使元素水平方向和垂直方向同时缩放
transform:scaleY(0.3);//scaleY(y):元素仅垂直方向缩放
transform:scaleY(2);//scaleX(x):元素仅水平方向缩放
transform:scale(3);//scale只设置一个参数,一相同的比例缩放两个方向

扭曲skew
通过skew使元素扭曲一定的度数,和上面一样也有三种类似的用法

transform:skew(10deg, 20deg);//使元素水平方向和垂直方向同时扭曲
transform:skewX(10deg); //元素仅水平方向扭曲
transform:skewY(10deg); //元素仅垂直方向扭曲
transform:skew(10deg); //只设置一个参数,一相同的角度扭曲两个方向

3D

CSS3带来了DOM的3D效果,元素需要在transform属性中使用perspective方法来激活3D效果
2种方法
1.在transform属性中使用perspective方法

 transform: perspective( 600px );

2.直接使用perspective属性

 perspective: 600px;

perspective属性的值决定了3D效果的强烈程度,可以认为是观察者到页面的距离。值越大距离越远,视觉上的3D效果就会相应的减弱。

2种方法的不同
第一种方式直接在一个元素上触发3D变形,如果使用同样的方法作用于不同位置的元素的时候,每个元素会有自己的轴心


在父元素使用perspective属性,这样每个子元素都共享相同的3D空间
3D变形方法
在perspective激活的3D空间中我们可以在X、Y、Z三个坐标轴上对元素进行变形处理。3D变形使用的变形方法和2D变形一样
rotateX( angle )
rotateY( angle )
rotateZ( angle )
translateZ( tz )//使元素延Z轴(在3D空间中方向从前到后)移动
scaleZ( sz ) //缩放
translateX() //使元素延X轴移动(在3D空间中方向从前到后)移动。正值使元素离观察者更近,负值使元素变远。

立方体
css3立方体

相关文章

  • 网页高级知识点(三)

    CSS3 transition动画 CSS3 transform变换 CSS3 animation动画

  • CSS3-目录

    1 CSS3 兼容性 2 CSS3 选择器 3 CSS3 新加属性 4 CSS3 过渡动画 5 CSS3 变型 6...

  • CSS3 背景

    知识点: CSS3 背景图像区域CSS3 背景图像定位CSS3 背景图像大小CSS3 多重背景图像CSS3 背景属...

  • css3渐变:线性和径向

    知识点: CSS3 渐变CSS3 线性渐变CSS3 径向渐变 CSS3 渐变 渐变(gradients)可以在两个...

  • CSS3设置圆角边框 圆角特效代码 CSS3的圆角border-

    CSS3设置圆角边框 css3圆角特效代码 CSS3 border-radius 属性 使用 CSS3 borde...

  • 07day

    CSS3动画 CSS3 @keyframes 规则如需在 CSS3 中创建动画,您需要学习 @keyframes ...

  • css3 基础

    1. css3 起步 (图形2D旋转) 2. CSS3 模块 CSS3 被划分为模块。其中最重要的 CSS3 ...

  • CSS3:边框与圆角

    知识点: CSS3圆角CSS3盒阴影CSS3边界图片 一、CSS3圆角 border-radius属性 一个最多可...

  • css3圆角

    css3 圆角使用 CSS3 border-radius 属性,你可以给任何元素制作 "圆角"。CSS3 bord...

  • 1217

    资源:css3制作工具css3按钮生成css3制作特殊效果-web前端实验室 浏览器的型号和css3前缀 五种主流...

网友评论

      本文标题:CSS3

      本文链接:https://www.haomeiwen.com/subject/gomarxtx.html