CSS精简笔记(五)------高级技巧

一、2d转换

特点:未指定,则2d变换不脱标

2.1 基本应用

  • 移动
    • 单向写法:transform:translateX(100px);,X正方向:向右;Y正方向:向下
    • 简写法:transform: translate(50%, 50px);,50%相对于样式所在盒子的高度
  • 旋转:transform: rotate(30deg);,相对transform-origin旋转坐标系也旋转
  • 缩放:transform: scale(0.5, 2);,相对transform-origin缩放,X向比例0.5,Y向比例2,可只写一个则双方向同
  • 转换中心点:transform-origin: 100% 100px;

二、3d转换

  • 封装子盒子们:transform-style: preserve-3d;需给父盒子设置此属性,子盒子们组合成的立体才会显示正常
  • 视距:perspective: 500px;需给父盒子设置此属性,子盒子有关Z轴的3d才会有效果,原理如下图(视距为d,z轴为z)
    在这里插入图片描述
  • 移动
    • 单向写法:transform:translateZ(100px);,Z正方向:向屏幕外
    • 复合写法:transform:translate3d(100px,100px,100px);,3个参数不可省
  • 旋转
    • 单向旋转:transform: rotateX(180deg);绕X轴正向旋转,左手法则:大拇指指向X轴正向
    • 复合写法:transform: rotate3d(0,0,1,180deg);,前三个为方向矢量,确定旋转所绕的轴,左手法则

三、动画

3.1 常用属性

属性描述可选项
animation-name动画名称用户自定义动画名
animation-duration动画持续时间秒数:3s
animation-iteration-count动画循环次数默认1次,infinite:无限循环
animation-direction动画进行方向默认normal:从结尾立即跳转到开头,alternate:交替往复
animation-fill-mode动画结束帧位默认backwards:停留在0%帧,forwards:停留在100%帧
animation-play-state动画播放状态默认:running,paused:暂停
animation-delay动画延迟秒数默认:0,可写秒数:3s
  • 速度曲线
    • 功能:调节动画运动速度
    • 可选项:ease:低高低,linear:匀速,ease-in-out:钟摆速率,steps(n):从始到终定格播出,n为步数

动画简写:

  • 写法:animation: move 3s infinite alternate forwards 1s;前两个必须选
  • 冲突项:靠后秒数为animation-delay不包含animation-play-state,结束帧位不与循环次数、进行方向同用
  • 多个动画:animation:动画1,动画2;

3.2 动画示例

  • 实现效果:盒子从0,0到1000,1000,往复运动,无限循环

  • 定义关键帧

    @keyframes move {												/* 动画名称为move */
      0% {																/* 动画初始帧 */
        transform: translate(0, 0);										/* 属性初始值 */
      }
      100% {															/* 动画终止帧 */
        transform: translate(1000px, 1000px);							/* 属性结束值 */
      }
    }
    
  • 使用动画

    .movie {
      width: 50px;
      height: 100px;
      background-color: black;
      animation-name: move;										  	    /* 可以简写 */
      animation-duration: 3s;								
      animation-iteration-count: infinite;			 
      animation-direction: alternate;											
    }
    
    .movie:hover {
    	animation-play-state: paused;							 /* 鼠标悬停则动画暂停 */
    }
    

  • 实现效果:伪元素以盒子左下角为轴滑入#head盒子内

  • 代码

    <template>
      <div id="head"></div>
    </template>
    
    <style  scoped>
    	@keyframes move {											/* 定义关键帧 */
    	  0% {
    	  }
    	  100% {
    	    transform: rotate(0deg);
    	  }
    	}
    	
    	#head {
    	  overflow: hidden;
    	  margin: 0 auto;
    	  width: 100px;
    	  height: 100px;
    	  border: black solid 1px;
    	}
    	
    	#head::before {
    	  content: '';
    	  display: block;
    	  width: 100%;
    	  height: 100%;
    	  background-color: black;
    	  transform-origin: left bottom;
    	  transform: rotate(90deg);
    	}
    	
    	#head:hover::before {							/* 鼠标移动到盒子内,触发动画 */
    	  animation-name: move;										   /* 可以简写 */
    	  animation-duration: 1s;			
    	  animation-fill-mode: forwards;							   /* 不可简写 */
    	}
    
    </style>
    

四、适配不同屏幕

4.1 监控屏幕尺寸

  • 写法解析
    • 屏幕监视器:@media screen
    • 屏幕宽度区间:(max-width:800px),表示小于800px的宽度适用以下大括号css
    • 关系词:andnotor,取交集、非集、并集

    注意:后面的监控器会覆盖前面的监控器相同区间

  • 效果:class=‘father’的div在屏幕宽度0~800:黑背景,800~1000:黄背景,1000以上:蓝背景
  • 代码示例
    /* .father 为盒子的样式 */
    @media screen and (max-width:800px){
      .father {
        background-color:black;
      }
    }
    
    @media screen and (min-width: 800px) and (max-width:1000px){
      .father {
        background-color:yellow;
      }
    }
    @media screen and (min-width: 1000px){
      .father {
        background-color:blue;
      }
    }
    

4.2 适用单位

  • em:为父盒子文字尺寸,可调整父盒子div {font-size:15px;}调整1em
  • rem:为浏览器html文字尺寸,root em的缩写,可调整html {font-size:15px;}调整1rem

    若屏幕尺寸确定,通过调整决定rem尺寸的html的font-size,可以调整一行可以放置的文字数量

  • 工具:vs code中的cssrem插件,会自动转换px到rem,默认1rem=16px,适配iPhone6需改为75px

4.3 配合使用

  • 效果:随着屏幕尺寸变化,div盒子中的A大小也会变化

  • 原理:使页面显示屏幕尺寸产生联动缩放,前提:子盒子与父盒子关联,需要确定的像素值的元素用rem代替,则实际与html的font-size关联,即间接与显示屏幕联动

  • 代码

    • 常规代码

      <template>
        <div class="father">
          <div>A</div>
        </div>
      </template>
      	
      /* 以下代码,使单位与1rem绑定,其他属性与浏览器宽度绑定 */
      <style scoped>
      	@media screen {
      	  .father div {
      	    width: 1.88rem; 									/* 盒子宽度100px,小于800px屏幕等比例缩放 */
      	    font-size:0.47rem; 							/* father盒子字高25px,小于800px屏幕等比例缩放*/
      	    color: red;
      	  }
      	}
      	
      	@media screen and (min-width: 800px) {
      	  .father div {
      	    width: 12rem; 								  /* 盒子宽度100px,800~1000px屏幕等比例缩放 */
      	    font-size: 0.38rem; 					   /* father盒子字高25px,小于800px屏幕等比例缩放*/
      	    color: green;
      	  }
      	}
      	@media screen and (min-width: 1000px) {
      	  .father div {
      	    width: 0.78rem;							    /* 盒子宽度100px,1000~1920px屏幕等比例缩放 */
      	    font-size: 0.19rem; 				    /* father盒子字高25px,1000~1920px屏幕等比例缩放*/
      	    color: yellow;
      	  }
      	}
      </style>
      
    • index.html中<head>标签中增加代码

      /* 此代码控制1rem大小,与浏览器宽度联动 */
      <style>
          @media screen {
              /* 此监控器适配800px以下屏幕,后无分号 */
              html {
                  font-size: 53px;
              }
          }
          
          @media screen and (min-width: 800px) {
              /* 此监控器适配1000px以下屏幕 */
              html {
                  font-size: 66px;
              }
          }
          
          @media screen and (min-width: 1000px) {
              /* 此监控器适配1920px以下屏幕 */
              html {
                  font-size: 128px;
              }
          }
      </style>
      

    实现方案二:flexible + rem,有空研究

上一篇:CSS精简笔记(四)------布局
下一篇:Vue学习手册(一)-----脚手架初体验

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
东南亚位于我国倡导推进的“一带一路”海陆交汇地带,作为当今全球发展最为迅速的地区之一,近年来区域内生产总值实现了显著且稳定的增长。根据东盟主要经济体公布的最新数据,印度尼西亚2023年国内生产总值(GDP)增长5.05%;越南2023年经济增长5.05%;马来西亚2023年经济增速为3.7%;泰国2023年经济增长1.9%;新加坡2023年经济增长1.1%;柬埔寨2023年经济增速预计为5.6%。 东盟国家在“一带一路”沿线国家中的总体GDP经济规模、贸易总额与国外直接投资均为最大,因此有着举足轻重的地位和作用。当前,东盟与中国已互相成为双方最大的交易伙伴。中国-东盟贸易总额已从2013年的443亿元增长至 2023年合计超逾6.4万亿元,占中国外贸总值的15.4%。在过去20余年中,东盟国家不断在全球多变的格局里面临挑战并寻求机遇。2023东盟国家主要经济体受到国内消费、国外投资、货币政策、旅游业复苏、和大宗商品出口价企稳等方面的提振,经济显现出稳步增长态势和强韧性的潜能。 本调研报告旨在深度挖掘东南亚市场的增长潜力与发展机会,分析东南亚市场竞争态势、销售模式、客户偏好、整体市场营商环境,为国内企业出海开展业务提供客观参考意见。 本文核心内容: 市场空间:全球行业市场空间、东南亚市场发展空间。 竞争态势:全球份额,东南亚市场企业份额。 销售模式:东南亚市场销售模式、本地代理商 客户情况:东南亚本地客户及偏好分析 营商环境:东南亚营商环境分析 本文纳入的企业包括国外及印尼本土企业,以及相关上下游企业等,部分名单 QYResearch是全球知名的大型咨询公司,行业涵盖各高科技行业产业链细分市场,横跨如半导体产业链(半导体设备及零部件、半导体材料、集成电路、制造、封测、分立器件、传感器、光电器件)、光伏产业链(设备、硅料/硅片、电池片、组件、辅料支架、逆变器、电站终端)、新能源汽车产业链(动力电池及材料、电驱电控、汽车半导体/电子、整车、充电桩)、通信产业链(通信系统设备、终端设备、电子元器件、射频前端、光模块、4G/5G/6G、宽带、IoT、数字经济、AI)、先进材料产业链(金属材料、高分子材料、陶瓷材料、纳米材料等)、机械制造产业链(数控机床、工程机械、电气机械、3C自动化、工业机器人、激光、工控、无人机)、食品药品、医疗器械、农业等。邮箱:market@qyresearch.com

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值