3.如何解决1px问题.html 1.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940
  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>Document</title>
  7. </head>
  8. <body>
  9. <!--
  10. 1. document.write('<meta name="viewport" content="width=device-width,initial-scale='+ 1/window.devicePixelRatio +',user-scalable=no">');
  11. 通过window.devicePixelRatio获取到dpr,若dpr为2,则1px在retina屏上实际上横跨了2个像素,通过将scale设置为1/2,
  12. 2.使用transform中的scale属性 //width和height设为原来的2倍
  13. .box{
  14. width: 200px;
  15. height: 200px;
  16. border: 1px solid black;
  17. transform: scale(0.5);
  18. }
  19. <meta name="viewport"
  20. content="width = device-width,
  21. user-scalable = no,
  22. initial-scale = 1.0,
  23. maximum-scale = 1.0,
  24. minimum-scale = 1.0"
  25. />
  26. 作用:告诉浏览器使用设备的宽度作为视图的宽度
  27. viewport 视图大小
  28. width 页面宽度
  29. device-width 设备的物理宽度(屏幕宽度)
  30. initial-scale 设备也没的初始缩放值 (值>1 放大; 值<1 缩小,最小为0,不能为负)
  31. minimum-scale 允许用户的最小缩放值
  32. maximum-scale 允许用户的最大缩放值
  33. user-scalable 是否允许用户进行缩放,值为no或yes
  34. (能够解决iPad切换横屏之后触摸才能回到具体尺寸的问题
  35. -->
  36. </body>
  37. </html>