原文链接:https://blog.csdn.net/qq_43156398/article/details/102785370

PS:此方法需使用到less或者scss的@变量来支持

以设计图 1920 宽度为例:
css中存在一种叫vw的单位,是针对浏览器宽度为基础的百分比单位,与%的区别在于,子元素%是相对于父级元素的宽度来计算的,而vw则是针对浏览器的宽度来计算的。打个比方,浏览器宽度为1920px,父级元素宽度为100px,子元素宽度写50%则是50px;而子元素如果写50vw,则其宽度则为浏览器宽度的50%即960px;

弄清楚这点之后,我们可以计算得出:
100vw = 1920px;
1vw = 19.2px
1px = 1 / 19.2vw;

由此,我们可以设置变量 @1px : 1 / 19.2vw;

如此一来,在写样式的时候就可以使用到@1px进行计算,如图:

这样如果浏览器大小发生变化,对应的vw值也会改变,自然vw计算的px也会发生改变,就达到了我们兼容各种浏览器的目的;
但是,这个方法美中不足的是,当浏览器宽度逐渐变小时,margin padding等值也会越来越小,而字体最小是12px,所以大概在800px左右的时候元素会挤在一块,虽然我们现在不必做800分辨率的PC兼容,一般最小兼容到1200,但是为了严谨,我们还是用媒体查询兼容一下1200以下分辨率的

当然,也不是说按1200设计图的元素属性值重写一遍

重点
1200 / 1920 = 0.625
我们知道了两者的比例,这时候再设置一个变量,也可以叫常量,因为这时候我们要设置一个固定的值

因为按1920设计图来的,所以,我们设置1200下的每1px为1920的0.625px;

@1200-1px : 0.625px

这时候写
@media screen and(max-width:1201){
复制以上css代码,并把@1px全局替换为@1200-1px;
}
如图:

最新文章

  1. Caffe 源碼閱讀(五) Solver.cpp
  2. Oracle第三方ado.net数据提供程序
  3. MVC Model数据验证
  4. WPF listbox UI虚拟化
  5. 反射认识_03_改变成员变量Fields
  6. JavaScript高级程序设计(第三版)第二章 在HTML中使用JavaScript
  7. Makefile中指示符“include”、“-include”和“sinclude”的区别
  8. python学习小结8:I/O
  9. PHP使用DES进行加密解密
  10. mysql的四种隔离级别
  11. c++ virturn function -- 虚函数
  12. No architectures to compile for (ONLY_ACTIVE_ARCH=YES, active arch=arm64, VALID_ARCHS=armv7 armv7s)
  13. Ch2 空间配置器(allocator) ---笔记
  14. 2、hibernate七步走完成增删改查
  15. 反射与jvm
  16. Android 怎样开启与关闭adb 的认证机制(google adb secure) (adb RSA 指纹认证)
  17. 对于nginx配置文件中的fastcgi_param的配置错误
  18. cocos2d JS 艺术字特殊符号的显示
  19. samtools can not find libbz2.so.1.0
  20. PHPsession工作机制以及销毁session

热门文章

  1. JSON解析(序列化和反序列化)
  2. [Go] imap收信非并发
  3. [MySQL] 解决Error 1698: Access denied for user 'root'@'localhost'
  4. windows系统下mount创建的.vhd
  5. 【转】gdb的调试与使用
  6. anaconda换源及创建虚拟环境
  7. web-never give up
  8. [C2W2] Improving Deep Neural Networks : Optimization algorithms
  9. Vue 变异方法sort&reverse对评论进行排序
  10. FileSystemResource 和 ClassPathResource 有何区别