3.解决1px问题.html 1.6 KB

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