热门标签 | 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



推荐阅读
  • 精通jQuery:深入解析事件处理机制与应用技巧
    本文详细探讨了jQuery的事件处理机制及其应用技巧,通过具体的代码示例,逐一解析了每个jQuery代码片段与其对应的HTML结构。文章以标记为基准,CSS作为通用样式,确保每段代码都能独立运行。HTML和CSS代码统一放置在文章末尾,方便读者参考和实践。 ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • 本文详细探讨了使用纯JavaScript开发经典贪吃蛇游戏的技术细节和实现方法。通过具体的代码示例,深入解析了游戏逻辑、动画效果及用户交互的实现过程,为开发者提供了宝贵的参考和实践经验。 ... [详细]
  • 每日前端实战:148# 视频教程展示纯 CSS 实现按钮两侧滑入装饰元素的悬停效果
    通过点击页面右侧的“预览”按钮,您可以直接在当前页面查看效果,或点击链接进入全屏预览模式。该视频教程展示了如何使用纯 CSS 实现按钮两侧滑入装饰元素的悬停效果。视频内容具有互动性,观众可以实时调整代码并观察变化。访问以下链接体验完整效果:https://codepen.io/comehope/pen/yRyOZr。 ... [详细]
  • 通过纯CSS技术,可以轻松创建精致的小圆点和三角形图形。本文详细介绍了如何利用CSS的伪元素、边框和背景属性,实现这些图形的高效绘制,并提供了多种应用场景和示例代码,帮助开发者在网页设计中增添更多视觉效果。 ... [详细]
  • 期末Web开发综合实践项目:运用前端技术打造趣味小游戏体验
    期末Web开发综合实践项目中,学生通过运用HTML、CSS和JavaScript等前端技术,设计并实现了一款趣味性十足的小游戏。该项目不仅检验了学生对前端基础知识的掌握情况,还提升了他们的实际操作能力和创意设计水平。视频链接展示了项目的最终成果,直观呈现了游戏的互动性和视觉效果。 ... [详细]
  • 本文介绍了一种简化版的在线购物车系统,重点探讨了用户登录和购物流程的设计与实现。该系统通过优化界面交互和后端逻辑,提升了用户体验和操作便捷性。具体实现了用户注册、登录验证、商品浏览、加入购物车以及订单提交等功能,旨在为用户提供高效、流畅的购物体验。 ... [详细]
  • MySQL:不仅仅是数据库那么简单
    MySQL不仅是一款高效、可靠的数据库管理系统,它还具备丰富的功能和扩展性,支持多种存储引擎,适用于各种应用场景。从简单的网站开发到复杂的企业级应用,MySQL都能提供强大的数据管理和优化能力,满足不同用户的需求。其开源特性也促进了社区的活跃发展,为技术进步提供了持续动力。 ... [详细]
  • 使用React与Ant Design 3.x构建IP地址输入组件
    本文深入探讨了利用React框架结合Ant Design 3.x版本开发IP地址输入组件的方法。通过详细的代码示例,展示了如何高效地创建具备良好用户体验的IP输入框,对于前端开发者而言具有较高的实践指导意义。 ... [详细]
  • CSS3 实现鼠标悬停时滚动菜单的流畅过渡效果 ... [详细]
  • C#实现文件的压缩与解压
    2019独角兽企业重金招聘Python工程师标准一、准备工作1、下载ICSharpCode.SharpZipLib.dll文件2、项目中引用这个dll二、文件压缩与解压共用类 ... [详细]
  • 本文介绍了如何在 Spring 3.0.5 中使用 JdbcTemplate 插入数据并获取 MySQL 表中的自增主键。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 浏览器作为我们日常不可或缺的软件工具,其背后的运作机制却鲜为人知。本文将深入探讨浏览器内核及其版本的演变历程,帮助读者更好地理解这一关键技术组件,揭示其内部运作的奥秘。 ... [详细]
  • TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得
    TypeScript 实战分享:Google 工程师深度解析 TypeScript 开发经验与心得 ... [详细]
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社区 版权所有