CSS3新增内容

CSS3新增选择器

子选择器

  • 子级选择器用于选取带有特定父元素的元素
    .box > p{
      background-color: pink
    }
    

兄弟选择器

  • 相邻兄弟选择器:用于选择紧接在另一个元素后的兄弟元素,而且两者都有相同的父元素
    h1 + p{
      margin-top:50px;    满足h1相邻的p标签
      }   
    

其他兄弟选中器

  • 匹配同一个父元素中在element1后面的所有element2元素,两种元素为相同的父元素
    h2 ~ p{
      background: ff0000;   和h2同级的其他选择器
    }
    

结构伪类选择器

  • nth-child(n):n可以是数字、关键字和公式
  • 常见的关键字even:偶数、odd:奇数
选择器 作用
e:first-child 匹配父元素种第一个子元素e
e:last-child 匹配父元素中最后一个e元素
e:nth-child(n) 匹配父元素中第n个子元素e
e:first-of-type 指定类型e的第一个
e:last-of-type 指定类型e的最后一个
e:last-of-type 指定类型e的第n个

伪元素选择器

  • 新增伪元素,浏览器对单冒号和双冒号都能识别,双冒号是h5语法规范
  • 伪元素只能给双标签添加
  • 伪元素里面必须写上属性content:"";
  • 伪元素的冒号前不能有空格
  • before和after创建一个元素,属于行内元素
选择器 作用
e::before 在 E元素内部的前面插入一个元素
e::after 在E元素内部的后面插入一个元素
e:first-letter 选择到了E容器内的第一个字母
e::first-line 选择到了E容器内的第一行文本

属性选择器

  input[name]{  选择input中带有name属性的选择器
    width:30px;
    height:30px;
  }
  input[type="checkbox"]{  选择input中type="checkbox"属性的选择器
    width:30px;
    height:30px;
  }
  input[type^="check"]{  包含input中type="check"开头属性的选择器
    width:30px;
    height:30px;
  }
  input[class&="check"]{  包含input中class="box"结尾属性的选择器
    width:30px;
    height:30px;
  }
   input[class*="eck"]{  包含input中含有class="eck"属性的选择器
    width:30px;
    height:30px;
  }

新增选择器权重

  • 伪类选择器、属性选择器的权重等于类选择器
  • 伪元素选择器的权重等于标签选择器

CSS3盒模型

  • css3可以通过box-sizing来指定盒模型,这样我们可以设置如何计算一个元素的总宽度和总高度

content-box标准模式

  • 盒子的总大小为width+padding+border,内容区域是width和height部分

border-box怪异模式

  • 盒子大小为width和height,添加padding和border,内容区域会收缩

边框圆角border-radius

  • 设置边框的圆角
    border-radius: 100px/50px   分别设置水平方向和垂直方向半径
    border-bottom-right-radius: 50px; 单一属性设置右下角设置
    

text-shadow文字阴影

  • 通过属性值能够规定水平阴影、垂直阴影、模糊距离以及阴影的颜色
属性值 作用
h-shadow 必须,水平阴影位置
v-shadow 必须,垂直阴影位置
blur 模糊距离
color 阴影的颜色
文字阴影:水平位置 垂直位置 模糊程度 颜色
text-shadow: 10px 20px 5px #f00;
  • 多层阴影: 先写的压盖在后写的阴影上

box-shadow盒子阴影

  • 用于对盒子边框添加阴影
属性值 作用
h-shadow 必须,水平阴影位置
v-shadow 必须,垂直阴影位置
blur 模糊距离
spread 阴影的尺寸
color 阴影的颜色
inset 外部阴影改为内部阴影
边框阴影:水平位置 垂直位置 模糊程度 拓展大小 颜色 是否内边框阴影
box-shadow: 20px 20px 5px 20px #f00 inset;

过渡属性transition

transition: 过渡属性 过渡时间 运动曲线 延时时间;

属性值 作用
transition 简写属性,用于在一个属性中设置其他4个过渡属性
transition-property 规定应用过渡的css属性的名称
transition-duration 定义过渡效果花费的时间,默认是0
transition-timing-function 规定过渡效果的时间曲线,默认是ease
transition-delay 规定过渡效果何时开始。默认是0

transition-property过渡的属性

  • none表示没有属性过渡
  • all表示所有变化的属性都过渡
  • 属性名:使用具体的属性名,多个属性名之间逗号分隔

transition-timing-function 时间曲线

属性值 作用
linear 规定以相同速度开始至结束的过渡效果
ease 规定慢速开始,然后变快,然后慢速结束的过渡效果
ease-in 规定以慢速开始的过渡效果
ease-out 规定以慢速结束的过渡效果
ease-in-out 规定以慢速开始和结束的过渡效果
cubic-bezier(x1,y1,x2,y2) 在cublic-bezier函数中,x1,x2取0到1之间,y1,y2取任意值
.box{
    width: 100px;
    height: 100px;
    background-color: aquamarine;
    transition: all 2s linear 0s;     过渡属性的使用(动画效果)
  }
  .box:hover{
    width: 500px;
  }

2D转换-transform

移动translate()

  • 作用:对元素进行移动、缩放、转动、拉长、拉伸,配合过渡效果实现动画效果
属性值 作用
translate(x,y) x,y分别为水平和垂直方向距离,可以为px或者百分比
translate(x) 只有一个数值,表示水平方向的位移
transform: translate(10px,10px); 

缩放scale()

  • transform的属性值为scale()可以实现缩放效果
  • scale为1以上为放大效果,为0到1之间缩放
属性值 作用
scale(x,y) x,y分别为改变元素的高度和宽度的倍数
scale(n) 只有一个数值,表示高度和宽度同时缩放n倍
scaleX(n) 改变元素的宽度
scaleY(n) 改变元素的高度

旋转rotate()

  • 实现元素旋转
  • 元素旋转后,坐标轴也会发生改变
  • 正数表示顺时针旋转,负数表示逆时针旋转
    transform: rotate(30deg);
    

倾斜skew()

  • 设置skew(),实现元素倾斜
  • 书写语法:transform:skew(数字deg,数字deg);

transform-origin 属性

  • 设置调整元素的水平和垂直方向原点位置,调整元素基准点
  • x:定义X轴的原点,可能的值:left、center、right、像素值、百分比
  • y:定义y轴的原点,可能的值:left、center、right、像素值、百分比
    transform-origin: left top;   以左上角为基准点
    

3D转换

透视perspective

  • 透视可以将一个2D平面在转换过程中呈现3D效果
  • 作用:设置在Z轴的视线焦点的观察位置,从而实现3D效果
  • 属性值:像素值,数值越大,观察点距离z轴原点越远

3D旋转

属性值 作用
rotateX(angle) 定义X轴3D旋转
rotateY(angle) 定义Y轴3D旋转
rotateZ(angle) 定义Z轴3D旋转

3D位移

  • 属性值为像素或者百分比
属性值 作用
translateX(x) 定义X轴3D位移值
translateY(y) 定义Y轴3D位移值
translateZ(z) 定义Z轴3D位移值

transform-style属性

  • 用于设置被嵌套的子元素在父元素的3D空间中显示,子元素会保留自己的3D转换坐标轴
  • 属性值:flat:所有子元素在2D平面呈现,preserve-3d:保留3D空间
    transform-style: preserve-3d;
    

浏览器兼容

  • internet Explorer10、Firefox以及Opera支持transform属性
  • Chrome 和 Safari需要前缀-webkit-
  • internet Explorer9 需要前缀-ms-

动画

  • css3中提供了自己的动画制作方法
  • css3动画制作分为两步,创建动画、制作动画

animation属性

  • 需要将@keyframes中创建的动画捆绑到某个选择器,否则不会产生动画效果
  • animation属性用于对动画进行捆绑
  • 语法:animation:动画名称 过渡时间 速度曲线 动画次数 延时时间

小球运动动画代码

<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
    *{
      margin: 0;
      padding: 0;
    }
    .box{
      width: 100px;
      height: 100px;
      border-radius: 50%;
      margin: 200px auto;
      background-color: skyblue;
      /* 添加绑定动画 */
      animation: move1 2s linear infinite;
    }
    /* 开头和结尾定义动画效果 */
    @keyframes move{
      from{
        transform: translateY(0);
      }
      to{
        transform: translateY(150px);
      }
    }
    @keyframes move1{
      0%{
        transform: translateY(0);
      }
      25%{
        transform: translateY(200px);
      }
      50%{
        transform: translateY(0);
      }
      75%{
        transform: translateY(-200px);
      }
      100%{
        transform: translateY(0);
      }
    }
  </style>
</head>
<body>
  <div class="box">
  </div>
</body>
</html>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,126评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,254评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,445评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,185评论 1 278
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,178评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,970评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,276评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,927评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,400评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,883评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,997评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,646评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,213评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,204评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,423评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,423评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,722评论 2 345

推荐阅读更多精彩内容

  • CSS3新增选择器 子级选择器 用于选取带有特定父元素的元素。书写语法:element1 > element2注意...
    琳琳酱吖阅读 584评论 0 1
  • css3 新增选择器 子集选择器 子集选择器代码示例 兄弟选择器 相邻兄弟选择器 相邻兄弟选择器示例 其他兄弟选择...
    GongShengM阅读 464评论 0 1
  • 一、过渡 过渡的属性写在本身的元素上,鼠标放上去有过渡效果,滑离的时候也有过渡效果 过渡的属性写在:hover 里...
    小唱同学阅读 407评论 0 0
  • 选择器 CSS3中新添加了很多选择器,解决了很多之前需要用javascript才能解决的布局问题。· elemen...
    lovelydong阅读 473评论 0 2
  • 原文链接 除了html5的新特性,CSS3的新特性也是面试中经常被问到的。 选择器 CSS3中新添加了很多选择器,...
    bestvist阅读 8,415评论 0 8