移动web网页开发——2D转换

一、平面转换

1.1 平面转换概念

平面转换

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

平面转换属性

  • transform 

1.2 位移

语法

  • transform:translate(水平移动距离,垂直移动距离 ); 

取值(正负均可)

  • 像素单位数值
  • 百分比(参照物为盒子自身尺寸)

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

移动web网页开发——2D转换_第1张图片移动web网页开发——2D转换_第2张图片

技巧

  • translate()如果只给出一个值,表示x轴方向移动距离
  • 单独设置某个方向的移动距离:translateX() & translateY()

移动web网页开发——2D转换_第3张图片移动web网页开发——2D转换_第4张图片

 移动web网页开发——2D转换_第5张图片移动web网页开发——2D转换_第6张图片

绝对定位的元素垂直居中 (详见CSS定位)

移动web网页开发——2D转换_第7张图片

案例——双开门布局





    
    
    
    Document
    



    

 2.1旋转

语法

  • transform:rotate(角度);

注意:角度的单位是deg 旋转必须要有过渡属性

技巧:取值正负均可 正数:顺时针 负数:逆时针

移动web网页开发——2D转换_第8张图片

 2.1.1 转换原点(改的是转换的中心点,不只是旋转能用)

语法

  • 默认原点是盒子中心点
  • transform-origin: 原点水平位置 原点垂直位置;

取值

  • 方位名词(left、top、right、bottom、center)
  • 像素单位数值
  • 百分比(参照盒子自身尺寸计算) 

移动web网页开发——2D转换_第9张图片

 2.1.2 多重旋转

移动web网页开发——2D转换_第10张图片

 轮胎旋转着从左边到右边

多重旋转技巧

  • transform: translate() rotate();

移动web网页开发——2D转换_第11张图片

 3.1 缩放

思考:改变元素的width或height属性能实现吗? 不能,这样是以左上角为中心进行缩放,希望以图片正中央为中心缩放

语法

  • transform: scale(x轴缩放倍数,y轴缩放倍数);
  • 数字>1表示放大,<1表示缩小,=1表示不变

技巧

  • 一般情况下,只为scale设置一个值,表示x轴和y轴等比例缩放
    • transform: scale(缩放倍数); 

移动web网页开发——2D转换_第12张图片

 3.1.1 播放按钮

移动web网页开发——2D转换_第13张图片

播放按钮

布局

  • ::after

样式

  • 居中 

效果

  • 缩放 
   



    
    
    
    Document
    



    
  • 【和平精英】“初火”音乐概念片:四圣觉醒......

 通过translate实现播放图标居中显示:注意层叠性

4.1 渐变背景

移动web网页开发——2D转换_第14张图片

  •  渐变是多个颜色逐渐变化的视觉效果
  • 一般用于设置盒子的背景
background-image: linear-gradient(
    颜色1,
    颜色2
)


    

移动web网页开发——2D转换_第15张图片  不会这样用,太丑了

移动web网页开发——2D转换_第16张图片

 移动web网页开发——2D转换_第17张图片

 案例-渐变





    
    
    
    产品展示效果
    




    
OceanStor Pacific 海量存储斩获2021 Interop金奖

移动web网页开发——2D转换_第18张图片

案例——华为新闻





    
    
    
    华为新闻
    
    



    


* {
    margin: 0;
    padding: 0;
    box-sizing: border-box;
}

li {
    list-style: none;
}

a {
    text-decoration: none;
}

img {
    width: 100%;
    vertical-align: middle;
}

.box {
    width: 1110px;
    height: 247px;
    margin: 20px auto;
    /* background-color: pink; */
}

.box li {
    position: relative;
    float: left;
    width: 350px;
    height: 247px;
    margin-right: 30px;
    overflow: hidden;
}

.box li:last-child {
    margin-right: 0;
}

.box .txt {
    position: absolute;
    left: 0;
    bottom: -50px;
    width: 350px;
    height: auto;
    padding: 20px 30px;
    z-index: 1;
    color: #fff;
    /* 因为给文本设置的padding会被网页重新渲染,所以只给transform设置 */
    transition: transform .5s;
}

.box .txt h4 {
    font-size: 14px;
    font-weight: 400;
    line-height: 2em;
    color: #fff;
}

.box .txt h5 {
    margin-bottom: 40px;
    font-size: 18px;
    line-height: 1.5em;
    color: #fff;
}

.box .txt p {
    color: #fff;
    font-size: 14px;
}

.box .txt p .iconfont {
    color: #c7000b;
    vertical-align: middle;
    font-size: 20px;
    font-weight: 700;
}

/* ----------1、渐变背景---------- */
.box li .mask {
    position: absolute;
    top: 0;
    left: 0;
    width: 350px;
    height: 247px;
    background-image: linear-gradient(
        transparent,
        rgba(0,0,0,.6)
    );
    opacity: 0;
    transition: all .5s;
}

.box li:hover .mask {
    opacity: 1;
}

/* ------------2、图片放大------ */
.box li img {
    transition: all .5s;
}

.box li:hover img {
    transform: scale(1.1);
}


/* -----------3.文字向上移 */
.box li:hover .txt {
    transform: translateY(-50px);
}

你可能感兴趣的:(html)