热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

CSS精简笔记高级技巧

目录一、2d转换2.1基本应用二、3d转换三、动画3.1常用属性3.2动画示例四、适配不同屏幕4.1监控屏幕尺寸4.2适用单位4.3配合使用一、2d转换特点:未指定,则2d变换不脱

目录



  • 一、2d转换



    • 2.1 基本应用



  • 二、3d转换

  • 三、动画



    • 3.1 常用属性

    • 3.2 动画示例



  • 四、适配不同屏幕



    • 4.1 监控屏幕尺寸

    • 4.2 适用单位

    • 4.3 配合使用



一、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盒子内



  • 代码






四、适配不同屏幕

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关联,即间接与显示屏幕联动



  • 代码



    • 常规代码



      /* 以下代码,使单位与1rem绑定,其他属性与浏览器宽度绑定 */



    • index.html中标签中增加代码

      /* 此代码控制1rem大小,与浏览器宽度联动 */




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




上一篇:CSS精简笔记(三)------盒子模型

本文地址:https://blog.csdn.net/chucksun0426/article/details/110957611



推荐阅读
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • iOS超签签名服务器搭建及其优劣势
    本文介绍了搭建iOS超签签名服务器的原因和优势,包括不掉签、用户可以直接安装不需要信任、体验好等。同时也提到了超签的劣势,即一个证书只能安装100个,成本较高。文章还详细介绍了超签的实现原理,包括用户请求服务器安装mobileconfig文件、服务器调用苹果接口添加udid等步骤。最后,还提到了生成mobileconfig文件和导出AppleWorldwideDeveloperRelationsCertificationAuthority证书的方法。 ... [详细]
  • 使用圣杯布局模式实现网站首页的内容布局
    本文介绍了使用圣杯布局模式实现网站首页的内容布局的方法,包括HTML部分代码和实例。同时还提供了公司新闻、最新产品、关于我们、联系我们等页面的布局示例。商品展示区包括了车里子和农家生态土鸡蛋等产品的价格信息。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了在HTML中实现表格的页眉页脚布局的解决方案。通过基本的HTML/CSS技术,避免使用内联样式和固定定位,实现了一个标准的页眉页脚布局。提供了一个替代的解决方案,为读者提供了参考。 ... [详细]
  • Java源代码安全审计(二):使用Fortify-sca工具进行maven项目安全审计
    本文介绍了使用Fortify-sca工具对maven项目进行安全审计的过程。作者通过对Fortify的研究和实践,记录了解决问题的学习过程。文章详细介绍了maven项目的处理流程,包括clean、build、Analyze和Report。在安装mvn后,作者遇到了一些错误,并通过Google和Stack Overflow等资源找到了解决方法。作者分享了将一段代码添加到pom.xml中的经验,并成功进行了mvn install。 ... [详细]
  • Unity3D引擎的体系结构和功能详解
    本文详细介绍了Unity3D引擎的体系结构和功能。Unity3D是一个屡获殊荣的工具,用于创建交互式3D应用程序。它由游戏引擎和编辑器组成,支持C#、Boo和JavaScript脚本编程。该引擎涵盖了声音、图形、物理和网络功能等主题。Unity编辑器具有多语言脚本编辑器和预制装配系统等特点。本文还介绍了Unity的许可证情况。Unity基本功能有限的免费,适用于PC、MAC和Web开发。其他平台或完整的功能集需要购买许可证。 ... [详细]
  • 本文整理了常用的CSS属性及用法,包括背景属性、边框属性、尺寸属性、可伸缩框属性、字体属性和文本属性等,方便开发者查阅和使用。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
author-avatar
朵儿lp_685
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有