CSS3

196 阅读5分钟

注:not finished

浏览器前缀简介及应用

  • -ms- IE
  • -moz- 基于Gecko引擎的浏览器,如Firefox
  • -o- Opera
  • -webkit- 基于Webkit引擎的浏览器,如Chrome、Safari

CSS3边框

  • border-radius:x,y,距离,大小,color,inset
  • box-shadow
  • border-image(不支持IE)
    border-radius和box-shadow支持IE9+

CSS3圆角

  • border-radius
    4:左上,右上,右下,左下
    3:左上,右上左下,右下(对角线)
    2:左上右下,右上左下(对角线)
    border-top-left-radius左上角

CSS3背景

background-image (-webkit-,-o-)

用多个url分开,最先写的在最上面

background-size

在CSS3之前,背景图像大小由图像的实际大小决定

  • length:宽高
  • Percentage(%),是相对父元素的宽高的百分比大小
  • cover:把图像拓展到足够大,以使背景图像完全覆盖背景区域;背景图像的某些部分也许无法显示在背景定位区域中
    • 是按照图片的比例放大或缩小至充满容器,而不是按照容器的比例大小来缩放
    • 如果照片的比例和容器的比例不一致,必定会导致 照片的不完整性
  • contain 把图像拓展盒子最大尺寸,以使其宽高完全适应内容区域
    必定会出现一张完整的图在容器中
    • no-repeat 出现留白
    • repeat 平铺整个容器,多余的部分裁减掉

background-origin (背景图片开始位置)

指定了背景图像的位置区域,(相对位置)

  • border-box(边框会把背景图像盖住)
  • padding-box(default)
  • content-box

background-clip背景裁剪,规定背景的绘制区域

背景裁剪属性是指从指定位置开始绘制

  • border-box(default)
  • padding-box
  • content-box
    注:多背景属性设置(高版本浏览器才识别),最先写的在最上层

CSS3渐变

  • 线性渐变
    background:linear-gradient() 向下/向上/向左/向右/对角方向
  • 径向渐变
    background:radial-gradient() 由它们的中心定义

CSS3文本效果

text-shadow 文本阴影

水平 垂直 迷糊 大小 颜色 inset
允许设置负值 可进行多阴影设置

火焰效果  
0 0 4px white,0 -5px 4px #ff3,2px -10px 6px #fd3,-2px -15px 11px #f80,2px -25px 18px #f20;

box-shadow 盒子阴影

div { box-shadow: 10px 10px 5px grey;} 也可用 ::before 和 ::after 两个伪元素中添加阴影效果

text-overflow 省略号设置

文本溢出:如何显示溢出内容

  • clip:不显示省略号,简单的剪切
  • ellipsis:当文本溢出,显示省略号

word-wrap 单词换行

  • break-word
  • normal

word-break

规定非中日韩文本的换行规则。

  • normal 单词一行写完,会超出
  • break-all 允许在单词内换行
  • keep-all 只能在半角空格或连字符处换行。

white-space

空白元素的处理

  • normal
  • norwap 不换行
  • pre
  • pre-wrap
  • pre-line
  • break-spaces

CSS3 字体

通过CSS3,web设计师可以使用他们喜欢的任意字体。 @font-face 规则

CSS3 2D转换

tranfrom:

  • translate(x轴,y轴)
  • rotate(deg)+顺时针,-逆时针
  • scale(宽度,高度)变大或减小。倍数,占位不变
  • skew()X轴Y轴倾斜的角度。负数则为相反的方向
  • matrix()6个参数:旋转,缩放,移动(平移),倾斜

CSS3 3D转换

transfrom:

  • translate3d(x,y,z)移动出去的不占位
    • translateX(x)
    • translateY(y)
    • translateZ(z) +变大,-变小
  • scale3d(x,y,z)
    • scaleX(x)
    • scaleY(y)
    • scaleZ(z)
  • rotate3d(x,y,z,angle)
    • rotateX(angle)
    • rotateY(angle)
    • rotateZ(angle) 2D的默认即中心点旋转
  • perspective(n) 转化元素的透视视图
    景深--近大远小 透视 物体的轴始终相对自己
transform: translate(30px, 20px) rotate(20deg);
// 需要搭配transition过渡使用才有效果。
transition: transform 2s;

CSS3 过渡

  • transition-property 规定应用过渡的CSS属性的名称
    • all(default);
  • transition-duration 过渡花费的时间
    • 0(default)
  • transition-timing-function 过渡效果的时间曲线
    • ease慢快慢 (default)
    • linear匀速
    • ease-in慢速开始
    • ease-out慢速结束媒体
    • ease-in-out以慢速开始和结束
  • transition-delay 延迟
    • 0(default);
  • transition: all 2s(duration) linear 1s(delay);
    注:CSS3过渡是元素从一种形式逐渐改变成为另一种的效果,要实现,必须规定两项内容:
  1. 规定把效果加到那个CSS属性上
  2. 规定效果的时长
.box {
    border-style: solid;
    border-width: 1px;
    display: block;
    width: 100px;
    height: 100px;
    background-color: #0000FF;
    -webkit-transition:width 2s, height 2s, 
        background-color 2s, -webkit-transform 2s;
    transition:width 2s, height 2s, background-color 2s, transform 2s;
}
.box:hover {
    background-color: #FFCCCC; q
    width:200px;
    height:200px;
    -webkit-transform:rotate(180deg);
    transform:rotate(180deg);
}

CSS3动画

作用:不需要事件驱动,当页面加载会直接运行,当结束时候会回到初始状态 -webkit,-ms-,-moz-
定义:@keyframes 绑定到一个选择器上(name)
调用:animation: name 5s(default0);
概念:样式逐渐变化为另一种样式效果 form->to==0%->100%
动画执行的条件: 动画名称
动画时长

  • animation-name 动画名称
  • animation-duration 动画时间
    0(default)
  • animation-timing-function 速度曲线
    • ease 慢快慢(default)
    • linear 匀速
    • ease-in 慢->块
    • ease-out 块->慢
    • ease-in-out 慢快慢
    • step-start 跳到鼠标开始那帧
    • step-end 跳到鼠标结束那帧
  • animation-delay 动画延迟 允许负值(自身能延迟不用借助transition)
  • animation-iteration-count 播放次数
    • 1(default)
    • infinite(无限循环)
  • animation-direction: 是否在下一周期逆向转
    • normal(default)
    • alternate(反向播放)
  • animation-play-state 规定动画是运行或暂停
    • running(default)
    • paused(鼠标滑过会暂停,离开继续执行)
  • animation-fill-mode: 规定对象动画时间之外的状态
    最终会清除动画回到初始位置
    none
    forwards保留最终位置(在最后一个关键帧中定义)
  • animation:name duration time-function delay interation-count direction play-state/paused
//<p> 元素由浏览器窗口右边滑至左边
p{
    animation-duration: 3s;
    animation-name: slidein;
    height: 30px;
    background: red;
}
@keyframes slidein {
    from {
        margin-left: 100%;
        width: 300%;
    }
    to {
        margin-left: 0%;
        width: 100%;
    }
}

MDN