css3盒模型、过渡、转换介绍

CSS3中盒模型:

前面CSS中学到的盒子模型给padding、border会撑开盒子的大小,实际大小要通过计算才能得到,为了解决这个问题,CSS3推出了box-sizing属性来解决此问题,当box-sizing的属性值为border-box时,无论给多大padding、border都不会撑开盒子的大小,而是内减content的大小,当值为content-box时,此时是前面CSS2中的盒子模型。

	<style>
      div {
        width: 200px;
        height: 200px;
        background-color: lightblue;
        padding: 50px;
        border: 20px solid lightgreen;
        box-sizing:border-box;
      }
    </style>
    
    <body>
      <div>今年</div>
    </body>

transition过渡:

过渡是指从一个状态逐渐过渡到另一个状态,注意:过渡属性是加在需要过渡的元素上面的,关于过渡的相关属性总结如下:
在这里插入图片描述

	<style>
        div {
            width: 200px;
            height: 200px;
            background-color: #999;
            transition: all 1s;
        }
        
        div:hover {
            background-color: #111;
        }
    </style>
    
    <body>
        <div></div>
    </body>

transform转换:

CSS3中给我们提供了2d和3d两种转换。

transform2D转换:

指元素在二维空间进行旋转、缩放、移动、倾斜,转换前后不会影响其他元素的位置,对行内元素无用,其属性值:
在这里插入图片描述
其综合写法:transform:translate(x,y) rotate(45deg) scale(2);先旋转会改变坐标轴方向,一般位移在最后。

	<style>
        .box1 {
            width: 200px;
            height: 200px;
            background-color: #666;
            transform-origin:left top;
            transform: rotate(45deg);
        }
    
       .box2 {
            width: 200px;
            height: 200px;
            background-color: #333;
            transform: translate(100px,50%);
        }
    
       .box3 {
            width: 200px;
            height: 200px;
            background-color: #888;
            transform: scale(0.5,2);
        }
    
      .box4 {
            width: 200px;
            height: 200px;
            background-color: #888;
            transform: skew(45deg,88deg);
        }
    </style>
    
    <body>
        <div class="box1"></div>
    		<div class="box2"></div>
    		<div class="box3"></div>
    		<div class="box4"></div>
    </body>

transform3D转换:

3d有近大远小、物体后面遮挡不可见的特点,属性依旧是transform,和透视搭配才有效果,其属性值:
在这里插入图片描述
perspective透视:

透视(视距),在2D平面产生近大远小立体效果,透视写在被观察元素的父级盒子上,透视越大,成像越小,单位常用px。

transfrom-style 3D呈现:

控制子元素是否开启3d立体空间,默认值flat不开启,preserve-3d子元素开启3d立体空间,3d呈现写在被观察元素的父级盒子上

	<style>
        .box {
            margin: 0 auto;
            width: 100px;
            position: relative;
            perspective: 500px;/*透视(视距)*/
            transform-style: preserve-3d;/*3D呈现为子元素开启3d立体空间*/
        }
        
        .box1,
        .box2 {
            width: 100px;
            height: 100px;
            background: yellow;
            position: absolute;
        }
        
        .box2 {
            background-color: rgb(69, 25, 214);
            transform: rotate3d(1, 0, 0, 90deg);/*1表示需要旋转,0表示不需要旋转*/
        }
        
        .box1 {
            transform: rotate3d(0, 1, 0, 80deg) translate3d(-60px, 20px, 20px);
        }
    </style>
    
    <body>
        <div class="box">
            <div class="box1"></div>
            <div class="box2"></div>
        </div>
    </body>

backface-visibility定义不面向屏幕时隐藏:

由transform翻转后的图形默认是可以看到的,只是方向会改变,当给翻转的元素添加backface-visibility:hidden后,翻转后的元素就会被隐藏不显示:

	<style>
        .box {
            position: relative;
        }
        
        .box img {
            position: absolute;
            top: 0;
            left: 0;
            transition: all 2s;
        }
        
        .box:hover img {
            transform: rotate3d(1, 1, 0, 180deg);
        }
        
        img:last-child {
            backface-visibility: hidden;/*此属性要添加在翻转的元素上面*/
        }
    </style>
    
    <body>
        <div class="box">
            <img src="images/1.jgp" width="200">
            <img src="images/2.jgp" width="220">
        </div> .
    </body>

提示:本文图片等素材来源于网络,若有侵权,请发邮件至邮箱:810665436@qq.com联系笔者 删除。
笔者:苦海

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

苦海123

快乐每一天!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值