【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒

这篇具有很好参考价值的文章主要介绍了【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 3D变换

1.1 3D空间与景深

/* 开启3D空间,父元素必须开启 */
        transform-style: preserve-3d;
        /* 设置景深(你与z=0平面的距离 */
        perspective:50px;

1.2 透视点位置

透视点位置:观察者位置

   /* 100px越大,越感觉自己边向右走并看,102px越大越感觉自己在蹲下过程中看 */
        /* 设置透视点位置 */
        perspective-origin: 100px 102px;

1.3 3D位移

在2D位移基础上,可以让元素沿z轴移动

/* 数值越大,感觉盒子变的越大,视距变小 */
        /* 可以写负值,但不可以写百分号 */
        transform: translateZ(150px);
        /* x,y,z轴三个值缺一不可 */
        transform: translateZ(0px,0px,150px);

1.4 3D旋转

  /* 从与zoy垂直的方向去看绕x轴顺时针旋转 */
        transform:rotateX('45deg');
        /* 从与zox垂直的方向去看绕y轴顺时针旋转 */
        transform:rotateY('45deg');

1.5 3D缩放

 /* 如果perspective:100px;,那么景深变为100/4=25px */
        transform: scaleZ(4);
        /* 经常用缩放调整宽和高 */
        transform: scale3d(1.5,1.5,1)

1.6 多重变换

/* rotateY会破坏坐标系放后面,看scaleZ(1)要旋转 */
        transform: translateZ(100px) scaleZ(1) rotateY('45deg');

1.7 背部

/* 默认x:center */
        transform: rotateY('45deg');
        /* 旋转到背部不可见 */
        backface-visibility: hidden;

2 过渡

<head>
        <style>
       .box1{
        width: 200px;
        height: 200px;
        background-color: aqua;
        /* 设置所有属性都过渡 */
        /* transition-property:all; */
        /* 只要属性为数字都可以 */
        /* 设置所有属性过渡时间都1s */
        /* transition-duration: 1s; */
        /* 分别设置时间 */
        transition-property:height,width,background-color;
        transition-duration: 1s ,1s, 1s;
       }
       .box1:hover{
        height: 400px;
        width: 300px;
        background-color: blue;
       }
        </style>
</head>
<body>
  <div class="box1"></div>
</body>

cubic-bezier(.17,.67,.83,.67) ✿ cubic-bezier.com

<!DOCTYPE html>

<html lang="en">
<head>
        <style>
       .outer{
        width: 1000px;
        height: 1800px;
        background-color: aqua;
        border: 1px black solid;
       }
       .outer:hover .box{
        width: 1000px;
       }
       .box{
        height: 200px;
        width: 100px;
        transition-property:all;
        transition-duration: 5s;
        /* 过渡延迟 */
        /* transition-delay: 1s; */
       }
/*transition不要在hover加,不然鼠标离开效果瞬间消失*/
       .box1{
        background-color: rgb(161, 239, 6);
        /* 平滑变换(慢,快,慢) */
        transition-timing-function: ease;
       }
       .box2{
        background-color: blue;
        /* 线性变换,匀速 */
        transition-timing-function:linear;
       }
       .box3{
        background-color: coral;
        /* 先慢再快 */
        transition-timing-function: ease-in;
       }
       .box4{
        background-color: darkorchid;
        /* 先快后慢 */
        transition-timing-function: ease-out;
       }
       .box5{
        background-color: lightpink;
        /* 平滑变换(慢,快,慢) ,比ease开始更慢一点*/
        transition-timing-function: ease-in-out;
       }
       .box6{
        background-color: rgb(14, 207, 251);
        /* 瞬间到终点*/
        transition-timing-function: step-start;
       }
       .box7{
        background-color: rgb(238, 10, 204);
        /* 等transition-duration: 5s;5s过去,瞬间到终点*/
        transition-timing-function: step-end;
       }
       .box8{
        background-color: rgb(11, 234, 97);
        /* 分为20份,每一份瞬间到终点*/
        transition-timing-function:step(20);
       }
       .box9{
        background-color: rgb(202, 235, 17);
        /* 贝塞尔曲线*/

        transition-timing-function:cubic-bezier(.17,.67,.83,.67);
       }
       
        </style>
</head>
<body>
  <div class="outer">
    <div class="box box1"></div>
    <div class="box box2"></div>
    <div class="box box3"></div>
    <div class="box box4"></div>
    <div class="box box5"></div>
    <div class="box box6"></div>
    <div class="box box7"></div>
    <div class="box box8"></div>
    <div class="box box9"></div>
  </div>
  
</body>
</html> 

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

贝塞尔曲线: cubic-bezier(.17,.67,.83,.67) ✿ cubic-bezier.com

 复合属性

/* 1s表示duration */
        transition:1s linear all;
        /* 1s表示duration,2s表示delay */
        transition:1s 2s all linear;

 过渡小案例

效果:鼠标悬浮,图片旋转,字体出现,背景模糊

鼠标悬浮前:

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

 鼠标悬浮后:

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

<!DOCTYPE html>

<html lang="en">
<head>
        <style>
       .outer{
        width: 517px;
        height: 730px;
        border: 1px black solid;
        position: relative;
        overflow: hidden;
       }
       .letter{
        width: 517px;
        height: 730px;
        background-color: black;
        color: white;
        position: absolute;
        top: 0;
        left: 0;
        text-align: center;
        line-height: 730px;
        font-size: 100px;
        opacity: 0;
        transition: 1s linear; 
       }
       .outer:hover .letter{
        opacity: 0.5;
       }
       .outer:hover img{
        transform: scale(1.5) rotate(30deg);
       }
       img{
        transition: 1s all linear;
       }
       
       
        </style>
</head>
<body>
  <div class="outer">
    <img src="./image/landscape.png">
    <div class="letter">嘉年华</div>
  </div>
  
</body>
</html> 

 3 动画

帧:一个视频包含多个画面,每一个画面叫一个帧

关键帧:告诉编程器几个关键帧,其他帧编程器会补全

3.1 基本使用

<!DOCTYPE html>

<html lang="en">
<head>
        <style>
       .outer{
        width: 1000px;
        height: 400px;
        border: 1px black solid;
       }
       /* 定义一个动画(几组关键帧) */
       @keyframes goright1{
        from{

        }
        to{
          transform: translate(800px);
          background-color: rgb(9, 245, 80);
        }
       }
       @keyframes goright2{
        0%{

        }
        /* 走到50%的路程 */
        50%{
          background-color: dodgerblue;
        }
        100%{
          transform: translate(800px) rotate(360deg);
          border-radius: 50%;
          background-color: rgb(237, 245, 9);
        }
       }
       .inner1,.inner2{
        height: 200px;
        width: 200px;
        animation-duration: 3s; 
        animation-delay: 1s;
       }
       .inner1{
        background-color: rgb(152, 244, 14);
        /* 应用动画元素 */
        animation-name: goright1;
       }
       .inner2{
        background-color: rgb(14, 41, 244);
        /* 应用动画元素 */
        animation-name: goright2;
       }
       
       
        </style>
</head>
<body>
  <div class="outer">
    <div class="inner1"></div>
    <div class="inner2"></div>
  </div>
  
</body>
</html> 

效果部分演示:

QQ录屏11111

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

        /* 与过渡变换属性值相同,比如ease,ease-in-out */
        animation-timing-function: linear;
        /* 动画播放次数 */
        animation-iteration-count:3;
        /* alternate 右->左->右;alternate-reverse: 左->右->左  */
        animation-direction: alternate;
        /* 不发生动画停在哪里 */
        /* forwards停在终点,backwards停在原点 */
        animation-fill-mode: forwards;
        /* 动画播放状态 */
        /* 停止播放,悬浮时动画暂停最好不要用复合属性写,单独写 */
        animation-play-state:paused;

3.2 复合属性

一个数字是duration,两个数字是 duration, delay
animation: name duration timing-function delay iteration-count direction fill-mode;

3.3 动画案例

3.3.1 图片

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

3.3.2 代码

<!DOCTYPE html>

<html lang="en">
<head>
        <style>
       .outer{
        width: 130px;
        height: 130px;
        background-image: url('./image/bike.png');
        margin: 0 auto;
        margin-top: 150px;
        /* steps(31)必须是31,而不是其他数值,相当于到第二个图片是一个step,走一步 */
        animation: bike 0.5s steps(31) infinite;
       }
       @keyframes bike{
        from{}
        to{
          /* 图片往上动 */
          /* 4030是最后一个图片上边框的位置 */
          background-position: 0px -4030px;
        }
       }   
        </style>
</head>
<body>
  <div class="outer">
  </div>  
</body>
</html> 

 3.3.3 效果

不断骑自行车:

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

 4 多列布局

4.1 案例一

效果:

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

<!DOCTYPE html>

<html lang="en">
<head>
        <style>
       .outer{
        width: 1000px;
        margin: 0 auto;
        margin-top: 150px;
        /* 指定列数 
        column-count:5; */
        /* 指定每一列宽度,自动计算列数
        column-width: 200px; */
        /* 指定列宽和列数
        columns:6 200px; */
        column-count:5;
        /* 调整列间距
        column-gap: 150px; */
        column-rule-color: red;
        column-rule-style: dotted;
        column-rule-width: 2px;
        /* 边框复合属性 */
        column-rule:red dotted 2px;

       }
      h1{
        /* 横跨全部列 */
        column-span: all;
      }
      img{
        /* 所在列的宽度 */
        width: 100%;
      }
         
        </style>
</head>
<body>
  <div class="outer">
    <h1>路上只我一个人,背着手踱着</h1>
    <p>这一片天地好像是我的;我也像超出了平常旳自己,到了另一世界里。我爱热闹,也爱冷静;爱群居,也爱独处。像今晚上,一个人在这苍茫旳月下,什么都可以想,什么都可以不想,便觉是个自由的人。白天里一定要做的事,一定要说的话,现在都可不理。这是独处的妙处,我且受用这无边的荷香月色好了。</p>

<p>曲曲折折的荷塘上面,弥望旳是田田的叶子。叶子出水很高,像亭亭旳舞女旳裙。层层的叶子中间,零星地点缀着些白花,有袅娜(niǎo,nuó)地开着旳,有羞涩地打着朵儿旳;正如一粒粒的明珠,又如碧天里的星星,又如刚出浴的美人。微风过处,送来缕缕清香,仿佛远处高楼上渺茫的歌声似的。这时候叶子与花也有一丝的颤动,像闪电般,霎时传过荷塘的那边去了。叶子本是肩并肩密密地挨着,这便宛然有了一道凝碧的波痕。叶子底下是脉脉(mò)的流水,遮住了,不能见一些颜色;而叶子却更见风致了。
</p>
<img src="./image/jianianhua.gif">
<p>月光如流水一般,静静地泻在这一片叶子和花上。薄薄的青雾浮起在荷塘里。叶子和花仿佛在牛乳中洗过一样;又像笼着轻纱的梦。虽然是满月,天上却有一层淡淡的云,所以不能朗照;但我以为这恰是到了好处——酣眠固不可少,小睡也别有风味的。月光是隔了树照过来的,高处丛生的灌木,落下参差的斑驳的黑影,峭楞楞如鬼一般;弯弯的杨柳的稀疏的倩影,却又像是画在荷叶上。塘中的月色并不均匀;但光与影有着和谐的旋律,如梵婀(ē)玲(英语violin小提琴的译音)上奏着的名曲。</p>

<p>荷塘的四面,远远近近,高高低低都是树,而杨柳最多。这些树将一片荷塘重重围住;只在小路一旁,漏着几段空隙,像是特为月光留下的。树色一例是阴阴的,乍看像一团烟雾;但杨柳的丰姿,便在烟雾里也辨得出。树梢上隐隐约约的是一带远山,只有些大意罢了。树缝里也漏着一两点路灯光,没精打采的,是渴睡人的眼。这时候最热闹的,要数树上的蝉声与水里的蛙声;但热闹是它们的,我什么也没有。</p>
</div>  
</body>
</html> 

4.2 案例二

效果:鼠标悬浮到图片需要阴影、过渡与变大

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

<!DOCTYPE html>

<html lang="en">
<head>
        <style>
       .outer{
        width: 1000px;
        margin: 0 auto;
        column-rule:red dotted 2px;
        column-count:5;
       }
      img{
        width: 100%;
        /* 过渡 */
        transition: 0.2s linear;
      }
      img:hover{
        box-shadow: 0px 0px 20px black;
        /* 变换 */
        transform: scale(1.05);
      }
        </style>
</head>
<body>
  <div class="outer">
    <img src="./image/img1.jpg" alt="">
    <img src="./image/img2.jpg" alt="">
    <img src="./image/img3.jpg" alt="">
    <img src="./image/img4.jpg" alt="">
    <img src="./image/img5.jpg" alt="">
    <img src="./image/img6.jpg" alt="">
    <img src="./image/img7.jpg" alt="">
    <img src="./image/img8.jpg" alt="">
    <img src="./image/img9.jpg" alt="">
    <img src="./image/img10.jpg" alt="">
    <img src="./image/img11.jpg" alt="">
    <img src="./image/img12.jpg" alt="">
    <img src="./image/img13.jpg" alt="">
    <img src="./image/img14.jpg" alt="">
    <img src="./image/jianianhua.gif" alt="">
    <img src="./image/img1.jpg" alt="">
    <img src="./image/img2.jpg" alt="">
    <img src="./image/img3.jpg" alt="">
    <img src="./image/img4.jpg" alt="">
    <img src="./image/img5.jpg" alt="">
    <img src="./image/img6.jpg" alt="">
    <img src="./image/img7.jpg" alt="">
    <img src="./image/img8.jpg" alt="">
    <img src="./image/img9.jpg" alt="">
    <img src="./image/img10.jpg" alt="">
    <img src="./image/img11.jpg" alt="">
    <img src="./image/img12.jpg" alt="">
    <img src="./image/img13.jpg" alt="">
    <img src="./image/img14.jpg" alt="">
    <img src="./image/jianianhua.gif" alt="">
    <img src="./image/img1.jpg" alt="">
    <img src="./image/img2.jpg" alt="">
    <img src="./image/img3.jpg" alt="">
    <img src="./image/img4.jpg" alt="">
    <img src="./image/img5.jpg" alt="">
    <img src="./image/img6.jpg" alt="">
    <img src="./image/img7.jpg" alt="">
    <img src="./image/img8.jpg" alt="">
    <img src="./image/img9.jpg" alt="">
    <img src="./image/img10.jpg" alt="">
    <img src="./image/img11.jpg" alt="">
    <img src="./image/img12.jpg" alt="">
    <img src="./image/img13.jpg" alt="">
    <img src="./image/img14.jpg" alt="">
    <img src="./image/jianianhua.gif" alt="">

  </div>
</body>
</html> 

 5 伸缩盒模型

5.1 容器与项目

传统布局:display属性+float属性+position属性

flex布局在移动端应用广泛

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
.outer{
  width: 1000px;
  height: 600px;
  background-color: gray;
  /* 将元素变为伸缩容器,开启flex布局,没有脱离文档流 */
  display: flex;
}
.inner{
  border: 1px solid black;
  background-color: aqua;
  width: 200px;
  height: 200px;
  /* 盒子最终宽和高 */
  box-sizing: border-box;
}
  </style>
</head>
<body>
  <!-- display: flex;后,outer就是伸缩容器,子元素是伸缩项目 -->
  <!-- 伸缩项目都是块状元素 -->
  <div class="outer">
    <div class="inner inner1">inner1</div>
    <div class="inner inner2">inner2</div>
    <div class="inner inner3">inner3</div>
  </div>
  <div class="outer">
    <div class="inner inner1">inner1</div>
    <div class="inner inner2">inner2</div>
    <div class="inner inner3">inner3</div>
  </div>
</body>
</html>

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

/* 改display: flex为inline-flex,将两个outer改为伸缩容器和行内块,两个outer容器中有回车,所以相隔有空白 */
  display: inline-flex;

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

网页检查的computed可以表示计算完的值:

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

5.2 主轴方向

项目沿主轴排列,默认从左往右是主轴,默认从上到下是侧轴(交叉轴),主轴垂直于侧轴,不关心原点 

 在5.1代码中加入:

  /* 调整主轴方向,方向从下到上
  flex-direction: column-reverse; */
    /* 调整主轴方向,方向从右到左*/
  flex-direction: row-reverse;

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

5.3 主轴换行方式

/*如果容器下面有空,那么换行的容器默认会保证自己的上下边距相同*/
flex:wrap;

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

 5.4 flex-flow

  flex-direction: row-reverse;
  flex-wrap: wrap-reverse;
  /* 相当于上面两行,可以但不推荐 */
  flex-flow:  row-reverse wrap-reverse;

5.5 主轴对齐方式

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
.outer{
  width: 500px;
  height: 300px;
  background-color: gray;
  display: flex;
}
.outer1{
  background-color: aqua;
      /* 调整主轴方向,方向从右到左*/
      flex-direction: row-reverse;
}
.outer2{
  background-color: rgb(227, 235, 11);
  /* 主轴对齐方式:起始位置
  justify-content: flex-start; */
    /* 主轴对齐方式:中间位置
  justify-content: flex-center; */
  /* 结束位置 */
  justify-content: flex-end;
}
.outer3{
  background-color: rgb(250, 11, 250);
  /* 项目均匀的分布在一行,项目与项目的距离是项目与边缘的距离的两倍 */
  justify-content: space-around;
}
.outer4{
  background-color: rgb(8, 243, 113);
    /* 项目均匀的分布在一行,项目与项目的距离相等,项目与边缘没有距离 */
  justify-content: space-between;
}
.outer5{
  background-color: rgb(243, 204, 8);
    /* 项目均匀的分布在一行,项目与项目的距离相等,项目与边缘没有距离 */
  justify-content: space-evenly;
}
.inner{
  border: 1px solid black;
  width: 100px;
  height: 100px;
  box-sizing: border-box;
}
  </style>
</head>
<body>
  <div class="outer outer1">
    <div class="inner inner1">flex-direction: row-reverse;</div>
    <div class="inner inner2">inner2</div>
    <div class="inner inner3">inner3</div>
  </div>
  <div class="outer outer2">
    <div class="inner inner1">  justify-content: flex-end;</div>
    <div class="inner inner2">inner2</div>
    <div class="inner inner3">inner3</div>
  </div>
  <div class="outer outer3">
    <div class="inner inner1">   justify-content: space-around;</div>
    <div class="inner inner2">inner2</div>
    <div class="inner inner3">inner3</div>
  </div>
  <div class="outer outer4">
    <div class="inner inner1">  justify-content: space-between;</div>
    <div class="inner inner2">inner2</div>
    <div class="inner inner3">inner3</div>
  </div>
  <div class="outer outer5">
    <div class="inner inner1">    justify-content: space-evenly;</div>
    <div class="inner inner2">inner2</div>
    <div class="inner inner3">inner3</div>
  </div>
</body>
</html>

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

5.6 侧轴对齐

5.6.1侧轴对齐一行

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
.outer{
  width: 1000px;
  height: 600px;
  background-color: gray;
  display: flex;
  /* 侧轴对齐方式,侧轴起始位置对齐
  align-items: flex-start; */
  /* 侧轴对齐方式,侧轴结束位置对齐
  align-items: flex-end; */
  /* 侧轴对齐方式,侧轴中间位置对齐 */
  align-items: center;
  /* 侧轴对齐方式,侧轴基线位置对齐
  align-items: baseline; */
}
.outer1{
  background-color: gray;
      flex-direction: row;
}

.inner{
  border: 1px solid black;
  width: 200px;
  height: 200px;
  box-sizing: border-box;
  background-color: aqua;
}
.inner2{
  height: 300px;
  font-size: 100px;
}
.inner3{
  height: 100px;
}
  </style>
</head>
<body>
  <div class="outer outer1">
    <div class="inner inner1">1x</div>
    <div class="inner inner2">2x</div>
    <div class="inner inner3">3x</div>
  </div>

  </div>
</body>
</html>

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

  /* 默认值,拉伸,条件是所有项目都没有高度 */
  align-items: stretch;

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

5.6.2侧轴对齐多行

 基本代码:

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
.outer{
  width: 1000px;
  height: 900px;
  background-color: gray;
  display: flex;

  flex-wrap: wrap;
  flex-direction: row;


}
.outer1{
  background-color: gray;
      flex-direction: row;
}

.inner{
  border: 1px solid black;
  width: 200px;
height: 200px;
  box-sizing: border-box;
  background-color: aqua;
}
.inner2{
height: 300px;
  font-size: 100px;
}
.inner3{
height: 100px;
}
  </style>
</head>
<body>
  <div class="outer outer1">
    <div class="inner inner1">1</div>
    <div class="inner inner2">2</div>
    <div class="inner inner3">3</div>
    <div class="inner ">3</div>
    <div class="inner ">4</div>
    <div class="inner ">5</div>
    <div class="inner ">6</div>
    <div class="inner ">7</div>
    <div class="inner ">8</div>
    <div class="inner ">9</div>
    <div class="inner ">10</div>
    <div class="inner ">11</div>
  </div>

  </div>
</body>
</html>

基本效果:
【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

.outer{}加入:

/* 侧轴对齐方式,起始位置对齐 */
align-content: flex-start;

 【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

/* 侧轴对齐方式,结束位置对齐 */
align-content: flex-end;

 【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

 取消所有项目的高度:

/* 侧轴对齐方式,中间位置对齐
align-content: center; */
/* 侧轴对齐方式,项目与项目的距离是项目与边缘的距离的两倍
align-content: space-around; */
/* 侧轴对齐方式,项目与项目的距离相等,项目与边缘没有距离
align-content: space-between; */
/* 项目与项目的距离相等,项目与边缘没有距离
align-content: space-evenly; */
/* 拉伸,项目不能有高度,默认 */
align-content: stretch;

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

 5.6.3  垂直居中方法

效果:

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
.outer{
  width: 400px;
  height: 400px;
  background-color: gray;
  display: flex;
  /* 方案一 */ 
  /* 副轴对齐
  align-items: center;
  主轴对齐
  justify-content: center; */
   

}
.inner{
  width: 100px;
  height: 100px;
  background-color: aqua;
  /* 方案二,条件有  display: flex; */
  margin: auto;
}
  </style>
</head>
<body>
<div class="outer">
  <div class="inner"></div>
</div>
</body>
</html>

5.7 基准长度

  /* 设置伸缩项目在主轴的基准长度,主轴是横向则宽失效,主轴是竖向则高失效,默认auto */
  /* 浏览器用flex-basis计算宽高 */
  flex-basis: 300px;

5.8 伸缩性

5.8.1 伸

基本代码:

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
.outer{
  width: 1000px;
  height: 900px;
  background-color: gray;
  display: flex;
  /* 侧轴对齐方式 */
  align-items: flex-start; 
  /* 主轴换行方式 */
  flex-wrap: wrap;
  /* 调整主轴方向 */
  flex-direction: row;
}
.inner{
  border: 1px solid black;
  width: 200px;
  height: 200px;
  box-sizing: border-box;
  background-color: aqua;
}
.inner1{
  /* 所有项目都是1,那么等分剩余空间,如果是1、2、3,那么按照1/6、2/6、3/6划分空间 */
  flex-grow: 1;
}
.inner2{
  width: 300px;
  flex-grow: 2;
}
.inner3{
  flex-grow: 3;
}
  </style>
</head>
<body>
  <div class="outer">
    <div class="inner inner1">1</div>
    <div class="inner inner2">2</div>
    <div class="inner inner3">3</div>
  </div>
  </div>
</body>
</html>

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

5.8.2 缩

  /* 不能有flex-wrap: wrap;宽度在默认情况下不能排开 */
  flex-shrink: 1;

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

5.9 flex复合属性

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css

5.10 排列与单独对齐

<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
  <style>
.outer{
  width: 1000px;
  height: 900px;
  background-color: gray;
  display: flex;
}
.inner{
  border: 1px solid black;
  width: 200px;
  height: 200px;
  box-sizing: border-box;
  background-color: aqua;
}
.inner1{
  /* order定义项目的排列顺序,默认为0,数值越小,排列越靠前 */
order: 0;
}
.inner2{
order: -1;
/* 单独调整项目的对齐方式,只能调整侧轴方向 */
align-self: flex-end;

}
.inner3{
  order: -2;
}
  </style>
</head>
<body>
  <div class="outer">
    <div class="inner inner1">1</div>
    <div class="inner inner2">2</div>
    <div class="inner inner3">3</div>
  </div>
  </div>
</body>
</html>

【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒,HTML+CSS,css3,前端,css文章来源地址https://www.toymoban.com/news/detail-842380.html

到了这里,关于【JAVA】CSS3:3D、过渡、动画、布局、伸缩盒的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS3过渡、过渡练习——进度条案例、2D转换(translate、rotate、scale、转换中心点transform-origin)、动画、3D、案例(两面翻转的盒子、3D导航栏、旋转木马案例)

    目录 一、CSS3过渡(transition)(重点) 二、CSS3过渡练习——进度条案例 三、CSS3 2D转换(translate、rotate、scale、转换中心点transform-origin) 四、CSS3 动画 五、CSS3动画常见属性 五、热点图案例(动画) 六、速度曲线之steps步长(案例——奔跑的熊大) 七、CSS3 3D转换(3D 位移:t

    2024年02月03日
    浏览(49)
  • CSS3 属性: transition过渡 与 transform动画

    CSS3 提供了很多强大的功能,使开发人员可以创建更加吸引人的视觉效果,而不需要依赖于 JavaScript 或 Flash。其中, transition 和 transform 是两个常用的属性,它们分别用于创建平滑的过渡效果和元素的变形效果。下面我们将详细介绍这两个属性的使用方法并给出代码示例。 t

    2024年02月04日
    浏览(48)
  • CSS3 高级- 复杂选择器、内容生成、变形(transform)、过渡(transition)、动画(animation)

    兄弟选择器:选择平级元素的唯一办法 -适用:通过已知元素选择之后的平级兄弟元素时 1、相邻兄弟选择器: 2、通用兄弟选择器: 属性选择器: -通过元素的属性来定位元素 1、通用:基本用不着,太泛了 2、自定义:4种 1、精确条件: 2、模糊条件: 3、模糊条件:很少用,

    2024年04月09日
    浏览(55)
  • 响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例3-1 CSS3过渡

    上述代码中: 第8-16行代码定义.box的样式,设置透明度为1,transition的值为3s; 第18~20行代码定义元素的透明度为0,表示当鼠标指针悬停在.box元素上时元素隐藏,当鼠标离开盒子时元素显示。 在CSS3之前,由于没有过渡属性transition,当修饰CSS样式时,CSS样式属性值就会瞬间变

    2024年01月21日
    浏览(49)
  • CSS3D+动画

    1.css3D 给父元素设置 perspective:景深:近大远小的效果900-1200px这个范围内 transform-style:是否设置3D环境 flat 2D环境 默认值 perserve-3D环境 3D功能函数 1.位移: translateZ() translate3D(x,y,z) 2.3D旋转 属性: rotateX() rotateY() rotateZ() rotate3D(x,y,z,deg) x,y,z:0-1 0不旋转 deg:旋转的角度 3.3D缩放 缩放:

    2024年02月11日
    浏览(36)
  • CSS3制作3D爱心动画

    1、什么是CSS     css,即层叠样式表的简称,是一种标记语言,有浏览器解释执行用来使页面变得更美观。 2、选择器     css3中新增了一些选择器,如下: 3、新样式 边框   css3 新增了三个边框属性,分别是: border-radius :创建圆角边框 box-shadow :为元素添加阴影 border-imag

    2024年02月05日
    浏览(53)
  • 前端 | ( 十三)CSS3简介及基本语法(下)| 伸缩盒模型 | 尚硅谷前端html+css零基础教程2023最新

    学习来源 :尚硅谷前端html+css零基础教程,2023最新前端开发html5+css3视频 系列笔记 : 【HTML4】(一)前端简介 【HTML4】(二)各种各样的常用标签 【HTML4】(三)表单及HTML4收尾 【CSS2】(四)CSS基础及CSS选择器 【CSS2】(五)CSS三大特性及常用属性 【CSS2】(六)CSS盒子模型

    2024年02月16日
    浏览(63)
  • 尚硅谷html5+css3(3)布局

    1.文档流normal flow -网页是一个多层结构 -通过CSS可以分别为每一层设置样式 -用户只能看到最顶层 -最底层:文档流(我们所创建的元素默认都是从文档流中进行排列) 2.盒子模型   1.盒子模型-边框 2.盒子模型-内边距 3.盒子模型-外边距 4.盒子模型-水平方向的布局 5.盒子模型

    2024年04月09日
    浏览(63)
  • 响应式Web开发项目教程(HTML5+CSS3+Bootstrap)第2版 例3-5 CSS3 动画

    上述代码中: 第10行代码定义animation属性实现动画效果; 第10~17行代码定义rotate动画让图片从0%到100%顺时针旋转360度; 第18~20行代码通过animation动画实现当鼠标指针悬停在图片上时让图片不停的旋转。 CSS3 动画 CSS3可以创建动画,它可以取代许多网页动画图像、Flash动画和Ja

    2024年02月02日
    浏览(48)
  • 520要来了,CSS3模拟3D旋转节日表白动画特效

    一年一度的520要来了,做为一名CSS3爱好者,怎么能不为大家的技术型表白做出一点贡献呢,这不,用CSS3模拟3D旋转的表白特效来了,快快拿去表白 目录 实现思路  单层3D可见 HTML源代码 CSS3源代码   实现思路  本文通过添加. scene 类,添加 .banner 类,使其双层3D呈现 transform

    2024年02月05日
    浏览(52)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包