之前在做手机项目时,用到很多自定义弹窗,然后要求都垂直水平要居中,最开始的时候想用calc来计算,可是css3 的calc兼容性不是很好,于是后来就借助了js来计算,

今天偶然看到别人的一个方法,瞬间感觉自己做了很多无用功~~

translate,translate,translate,translate。。

简单的css代码就可以实现:

.align{width:300px;
height:300px;
border:5px solid #;
position:absolute;
left:%;
top:%;
-webkit-transform:translate(-%,-%) //这是关键
}

而且经过试验,translate 函数当中使用百分比是以该元素的内容区、补白(padding)、边框(border)为标准计算的,这就是说 ,不论我们加何种padding或border都不会影响结果。

同时,在动画方面,translate 来制作的动画比绝对定位的动画更加平滑。

原因在于使用绝对定位的动画效果会受制于利用像素(px)为单位进行位移,而使用 translate 函数的动画则可以不受像素的影响,以更小的单位进行位移。

另外,绝对定位的动画效果完全使用 CPU 进行计算,而使用 translate 函数的动画则是利用 GPU,因此在视觉上使用translate 函数的动画可以有比绝对定位动画有更高的帧数。

最新文章

  1. C# 词法分析器(五)转换 DFA
  2. 几种 Java 序列化方案的性能比较
  3. PHP开发者常犯的MySQL错误
  4. 三、FreeMarker 模版开发指南 第三章 模版
  5. Google Play市场考察报告-2
  6. Vim Gtags插件
  7. 快速搭建Web服务器软件PHP+Apache+MySQL
  8. 解决weblogic与系统时间相差8小时的问题
  9. python时间函数
  10. 相遇Qt5
  11. 【.NET进程通信】初探.NET中进程间通信的简单的实现
  12. OPENSSL简介
  13. JSON的基本结构和数据交换原理
  14. Android 开发笔记___DatePicker__日期选择器
  15. php中const与define的区别
  16. Codeforces1076D. Edge Deletion(最短路树+bfs)
  17. 1900型USB接口扫描枪设置虚拟串口模式提升扫描速度
  18. multi-thread debug
  19. Spring和SpringBoot比较,解惑区别
  20. centos 6 和centos 7 系统下vnc配置

热门文章

  1. windows服务 - C# U盘升级
  2. MVC – 8.Razor 布局
  3. 超好用的plsql设置
  4. jcaptcha组件小小改造解决Invalid ID, could not validate une
  5. Bitmap在Java中的实现和应用
  6. Code Review for SSIS package
  7. JetBrains发布了IntelliJ IDEA 2016.1
  8. hdu 1866 几个矩形面积的和 ***
  9. hdu 5000 dp **
  10. loj 1406(状态压缩)