移动web day1 | 平面转换、渐变

目录

1 位移

2 位移-绝对定位居中

3 旋转 rotate

4 转换原点

5 多重转换

6 缩放

7 渐变背景

8 补充

8.1  行内元素不能使用转换属性(可在转模式后使用)

8.2  百分比的问题

8.3 相对定位和位移的异同点


目标:使用transform属性实现元素的位移、旋转、缩放等效果

  • 平面转换

Ø 改变盒子在平面内的形态(位移、旋转、缩放)

Ø 2D转换

  • 平面转换属性

Ø transform

1 位移

目标:使用translate实现元素位移效果

  • 语法
选择器 {
     /* 记住小括号里多个值是用英文,分割的 */
    transform: translate(水平移动距离, 垂直移动距离);
}
  • 取值(正负均可)

Ø 像素单位数值

Ø 百分比(参照物为盒子自身尺寸)

注意:X轴正向为右,Y轴正向为下

  • 技巧

Ø translate()如果只给出一个值, 表示x轴方向移动距离

Ø 单独设置某个方向的移动距离:translateX() & translateY()

2 位移-绝对定位居中

目标:使用translate快速实现绝对定位的元素居中效果

先看两种原先做法:

原法一:

            position: absolute;
            top: 50%;
            left: 50%;
            width: 200px;
            height: 200px;
            margin-top: -100px;
            margin-left: -100px;

 原法二:

            position: absolute;
            width: 200px;
            height: 200px;
            top: 0;
            bottom: 0;
            left: 0;
            right: 0;
            margin: auto;

法三 (translate):

        .box {
            position: absolute;
            background-color: yellowgreen;
            top: 50%;
            left: 50%;
            /* 原理相似,记得加- */
            /* 平移数值用百分比时,依据盒子自身大小计算移动距离 */
            transform: translate(-50%, -50%);
        }

优点:

  • 当不设置盒子宽高时也能居中(内容撑开);
  • 不用计算(盒子大小的一半)

3 旋转 rotate

目标:使用rotate实现元素旋转效果

  • 语法

        Ø transform: rotate(角度);

            注意:角度单位是deg

  • 技巧:取值正负均可

        Ø 取值为正, 则顺时针旋转

        Ø 取值为负, 则逆时针旋转

4 转换原点

目标:使用transform-origin属性改变转换原点(默认圆点是盒子中心点)

  • 语法
    {
     transform-origin: 原点水平位置 原点垂直位置;
}
  • 取值
            /* 两值(x轴 y轴) */
            /* 只写一值 另外一值默认center*/
            /* 1 像素值 */
            transform-origin: 5px 600px ;
            /* 2 百分比 (参考盒子自身宽高)*/
            transform-origin: 20% 20%;
            /* 3 方位名词 */
            transform-origin: right bottom;

5 多重转换

1 目标:使用transform复合属性实现多形态转换

 2 语法

   transform: translate(900px) rotate(1080deg);

3 注意

  • 该写法为复合写法,分开写会被重叠
  • 先平移后旋转,否则旋转后影响坐标轴向,影响与平移的呈现效果                          

6 缩放

目标:使用scale改变元素的尺寸

  •  思考: 改变元素的width或height属性能实现吗?
  •  语法
    transform:scale(1.5,0.5)
  • 注意:
    •  一值默认等比例缩放; 二值(x轴,y轴)
    • scale值大于1表示放大, scale值小于1表示缩小

案例:

play图片的透明与缩放

7 渐变背景

1 目标:使用background-image属性实现渐变背景效果

  • 渐变是多个颜色逐渐变化的视觉效果
  • 一般用于设置盒子的背景

2 透明效果:

  background-image: linear-gradient(to right, transparent, rgba(0, 0, 0, .3));

 3 方向设置

/* 方位(加to) */
{background-image: linear-gradient(to right top, green, yellowgreen, blue);
/* 角度 90度意为to right*/
{background-image: linear-gradient(67deg, aquamarine, gray);

8 补充

8.1  行内元素不能使用转换属性(可在转模式后使用)

         行内元素主要用于修饰行内局部文字,使用转换属性背离其初衷.

8.2  百分比的问题

        CSS1\2 的属性都是参考父盒子的值.

width/heightmargin/paddingtop/bottom..

        CSS3的属性参考盒子自身的值.(查阅CSS手册可知)

border-radiusbackground-size
transform系列

8.3 相对定位和位移的异同点

相同点: 位移同样不脱标,因此也可作为绝对定位的父元素使用.

不同点: 移动参考点不同

        相对定位的移动是参考父元素,而位移的移动则是参考其自身.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值