H5+CSS3 学习


 1.属性选择器

2.css3结构伪类选择器

n也可以是关键词 even是偶数 odd是奇数

选择div下面第一个span div后面加空格

<style type="text/css">
            div span:nth-child(2){
                background-color: pink;
            }
        style>
<body>
        <div>
            <p>我是一个pp>
            <span>我是spanspan>
            <span>我是spanspan>
            <span>我是spanspan>
        div>
    body>
  3.伪元素选择器   ::before 在元素内部的前面插入内容 ::after 在元素内部的后面插入内容   4. 2D转换   转换(transform)是css3中具有颠覆性的特征之一,可以实现元素的位移,旋转、缩放等效果 转换(transform)可以简单理解为变形   ·移动:translate ·旋转:rotate ·缩放:scale     ②重点   ·定义2D转换中的移动,沿着X和Y轴移动元素 ·translate最大的优点:不会影响到其他元素的位置 ·translate中的百分比单位是相对于自身元素的translate:(50%,50%); ·对行内标签没有效果

4.2 2D转换之旋转rotate   2D旋转指的是让元素在2维平面内顺时针旋转或者逆时针旋转。   ①语法 transform:rotate(度数)   ②重点 ·rotate里面跟度数,单位是deg比如 rotate(45deg) ·角度为正时,顺时针,负时,为逆时针 ·默认旋转的中心点是元素的中心点

4.3 2D转换中心点transform-origin

  ①语法 transform-origin:x y;

②重点 · 注意后面的参数x和y用空格隔开 · xy默认转换的中心点是元素的中心点(50% 50%) · 还可以给xy设置像素或者方位名词(top bottom left right center)

4.4 2D转换之缩放scale   ①语法 transform:scale(x,y);   ②注意 ·注意其中的x和y用逗号分隔 ·sacle缩放最大的优势:可以设置转换中心点缩放,默认以中心点缩放的,而且不影响其他盒子
5.动画(animation)   制作动画分为两步: ①先定义动画 ②在使用(调用)动画   5.1用keyframes定义动画(类似定义类选择器)         动画序列 ·0%是动画的开始,100%是动画的完成。这样的规则就是动画序列。 ·在@keyframes中规定某项css样式,就能创建由当前样式逐渐改为新样式的动画效果。 ·请用百分比来规定变化发生的时间,或用关键词“from”和“to”,等同于0%和100%

案例 奔跑的小熊

案例 地图标注

DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>title>
        <style type="text/css">
            body{background-color: #ccc;}
            .map{
                background:url(img/map.png) no-repeat;
                width: 953px;
                height: 472px;
                margin: 0 auto;
            }
            .city{
                position: absolute;
                top: 164px;
                left: 712px;
            }
            .dotted{
                position: absolute;
                width: 8px;
                height: 8px;
                background-color: pink;
                border-radius: 50%;
            }
            .city div[class^='pusle']{
                /*保证小波纹在父盒子里水平垂直居中 放大之后就会中心向四周发散*/
                position: absolute;
                top: 50%;
                left: 50%;
                transform: translate(-50%,-50%);
                
                width: 8px;
                height: 8px;
                box-shadow: 0 0 12px hotpink;
                border-radius: 50%;
                animation: pusle 1.2s linear infinite forwards;
            }
            .city div.pusle2{
                animation-delay: 0.4s;
            }
            .city div.pusle3{
                animation: .8s;
            }
            @keyframes pusle{
                0%{
                    opacity: 1;
                }
                70%{
                    width: 40px;
                    height: 40px;
                    opacity: 1;
                }
                100%{
                    width: 70px;
                    height: 70px;
                    opacity: 0;
                }
            }
        style>
    head>
    <body>
        <div class="map">
            <div class="city">
                <div class="dotted">div>
                <div class="pusle1">div>
                <div class="pusle2">div>
                <div class="pusle3">div>
            div>
        div>
    body>
html>

6.3D转换

 3D转换常用的3D位移和3D旋转   ·3D位移:translate3d(x,y,z) ·3D旋转:rotate3d(x,y,z) ·透视:perspective ·3D呈现:transfrom-style

  6.2 3D移动 translate3d   3D移动在2D移动的基础上多加了一个可以移动的方向,就是z轴方向。   ·transform:translateX(100px):仅仅在x轴上移动 ·transform:translateY(100px):仅仅在y轴上移动 ·transform:translateZ(100px):仅仅在z轴上移动(注意:translateZ一般用px单位) ·transform:translate3d(x,y,z):其中x、y、z分别指要移动的轴的方向的距离   6.6 3D呈现 transform-style   · 控制子元素是否开启三维立体环境。 ·transform-style:flat 子元素不开启3D立体空间 默认的 ·transform-style:preserve-3d; 子元素开启立体空间 · 代码写给父级,但是影响的是子盒子 · 这个属性很重要,后面必用

案例 旋转的盒子
DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>title>
        <style type="text/css">
            body{
                perspective: 500px;
            }
            .box{
                position: relative;
                width: 300px;
                height: 300px;
                margin: 0 auto;
                transform-style: preserve-3d;
                transition: all .4s;
            }
            .box:hover{
                transform: rotateY(180deg);
            }
            .front,
            .back{
                position: absolute;
                top: 0;
                left: 0;
                width: 300px;
                height: 300px;
                text-align: center;
                line-height: 300px;
                color: #fff;
                border-radius: 50%;
            }
            .front{
                background-color: pink;
            }
            .back{
                background-color: plum;
                transform: rotateY(180deg);
            }
        style>
    head>
    <body>
        <div class="box">
            <div class="front">粉色盒子div>
            <div class="back">这里紫色盒子div>
        div>
    body>
html>

案例   3D导航

DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>title>
        <style type="text/css">
            *{
                padding: 0;
                margin: 0;
            }
            ul li{
                float: left;
                list-style: none;
                width: 100px;
                height: 35px;
                margin: 0 5px;
                perspective: 500px;
                text-align: center;
                line-height: 35px;
                color: #fff;
                cursor: pointer;
            }
            .box{
                position: relative;
                width: 100%;
                height: 100%;
                transform-style: preserve-3d;
                transition: all .3s;
            }
            .box:hover{
                transform: rotateX(90deg);
            }
            .front,
            .bottom{
                width: 100%;
                height: 100%;
                position: absolute;
                top: 0;
                left: 0;
            }
            .front{
                background-color: pink;
                transform: translateZ(17.5px);
            }
            .bottom{
                background-color: purple;
                transform:translateY(17.5px) rotatex(-90deg);
            }
        style>
    head>
    <body>
        <ul>
            <li>
                <div class="box">
                    <div class="front">这里是导航div>
                    <div class="bottom">Hello!div>
                div>
            li>
            <li>
                <div class="box">
                    <div class="front">这里是导航div>
                    <div class="bottom">Hello!div>
                div>
            li>
            <li>
                <div class="box">
                    <div class="front">这里是导航div>
                    <div class="bottom">Hello!div>
                div>
            li>
            <li>
                <div class="box">
                    <div class="front">这里是导航div>
                    <div class="bottom">Hello!div>
                div>
            li>
            <li>
                <div class="box">
                    <div class="front">这里是导航div>
                    <div class="bottom">Hello!div>
                div>
            li>
        ul>
    body>
html>

案例 旋转木马

DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title>title>
        <style type="text/css">
            body{
                perspective: 1000px;
            }
            section{
                margin: 100px auto;
                position: relative;
                width: 300px;
                height: 200px;
                animation: rotate 10s linear infinite;
                transform-style: preserve-3d;
            }
            section:hover{
                animation-play-state: paused;
            }
            @keyframes rotate{
                0%{
                    transform: rotateY(0);
                }
                100%{
                    transform: rotateY(360deg);
                }
            }
            section div{
                position: absolute;
                width: 100%;
                height: 100%;
                top: 0;
                left: 0;
                background: url(img/han.JPG) no-repeat;

            }
            section div:nth-child(1){
                transform: translateZ(300px);
            }
            section div:nth-child(2){
                transform:rotateY(60deg) translateZ(300px);
            }
            section div:nth-child(3){
                transform:rotateY(120deg) translateZ(300px);
            }
            section div:nth-child(4){
                transform: rotateY(180deg) translateZ(300px);
            }
            section div:nth-child(5){
                transform:rotateY(240deg) translateZ(300px) ;
            }
            section div:nth-child(6){
                transform: rotateY(300deg) translateZ(300px);
            }
        style>
    head>
    <body>
        <section>
            <div>div>
            <div>div>
            <div>div>
            <div>div>
            <div>div>
            <div>div>
        section>
    body>
html>
  7.浏览器私有前缀   浏览器私有前缀是为了兼容老版本的写法,比较新版本的浏览器无须添加。 背景渐变色  

相关