移动布局原理

1. 重要术语

(1) 术语

序号名称描述
1像素图像显示最小单位,PPI(像素分辨率)
2DPR设备像素比 = 设备像素 / CSS 像素
3视口可视窗口 viewport,分布局/视觉/理想三类

2. 三种视口描述

三种视口类型是人为的划分

序号名称描述
1布局视口Layout viewport设备无关, 通常默认980px,显示完整网页
2视觉视口visual viewport设备相关,用户手机屏幕可见部分,通过缩放查看全部
3理想视口idea viewport不必缩放就可查看全部,针对移动端进行布局

3. 解决方案

视口属性:<meta name="viewport" content="width=device-width, initial-scale=1.0" />

序号属性值描述
1width=device-width布局视图 = 视觉视图
2initial-scale=1.0视觉视图 = 理想视图

移动端布局单位很多,经典的百分比,em 等,但目前主流单位是: rem + vw,也称”rem-vw`解决方案

4. 推荐 vscode 插件

  1. 名称: px to rem & rpx,原名为cssrem
  2. 自动将px换算为rem
  3. 须在插件中设置1rem = ...px,默认为16px,通常设置为1rem=100px以方便计算

5. 操作步骤

布局前,必须先确定 1rem = ?, 1vw =?

5.1 1vw = ?

  1. 选择某款手机做为理想视口的基础,如iPhone11: 375px
  2. 100vw = 100% = 375px, 所以 1vw = 3.75px

5.2 1rem = ?

  1. 1rem 默认为游览器字号16px
  2. 推荐: 1rem = 100px
  3. 1rem不要在<html>中写死, 应该通过100vw计算出来

5.3 总结

序号属性值描述
11vw = 3.75pxiPhone6/11屏幕宽度为基准
21rem = 100vw / 3.751rem = 100px, 方便计算

实战手机页面的基本整体架构页眉,页脚,主体

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8" />
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge" />
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0" />
  7. <title>Document</title>
  8. <link rel="stylesheet" href="font_icon/iconfont.css" />
  9. <link rel="stylesheet" href="css/reset.css" />
  10. <link rel="stylesheet" href="css/header.css" />
  11. <link rel="stylesheet" href="css/footer.css" />
  12. <link rel="stylesheet" href="//at.alicdn.com/t/font_3284190_nrlg22mwpjp.css">
  13. </head>
  14. <body>
  15. <!-- 头部 -->
  16. <header>
  17. <!-- 顶部 -->
  18. <div class="top">
  19. <!-- logo -->
  20. <div class="logo iconfont icon-shejiaotubiao-08"></div>
  21. <!-- 搜索框 -->
  22. <div class="search">
  23. <div class="keys">
  24. <span class="iconfont icon-fangdajing"></span>
  25. <span>寻找宝贝店铺</span>
  26. </div>
  27. </div>
  28. </div>
  29. <!-- 轮播图 -->
  30. <div class="slider">
  31. <a href=""><img src="images/banner/banner1.jpg" alt="" /></a>
  32. </div>
  33. <!-- 导航组 -->
  34. <ul class="nav">
  35. <li class="item">
  36. <a href=""><img src="images/nav/nav6.png" alt="" /></a>
  37. <a href="">天猫新品</a>
  38. </li>
  39. <li class="item">
  40. <a href=""><img src="images/nav/nav3.png" alt="" /></a>
  41. <a href="">今日爆款</a>
  42. </li>
  43. <li class="item">
  44. <a href=""><img src="images/nav/nav1.png" alt="" /></a>
  45. <a href="">天猫超市</a>
  46. </li>
  47. <li class="item">
  48. <a href=""><img src="images/nav/nav2.png" alt="" /></a>
  49. <a href="">充值中心</a>
  50. </li>
  51. <li class="item">
  52. <a href=""><img src="images/nav/nav5.png" alt="" /></a>
  53. <a href="">机票酒店</a>
  54. </li>
  55. <li class="item">
  56. <a href=""><img src="images/nav/nav8.png" alt="" /></a>
  57. <a href="">金币庄园</a>
  58. </li>
  59. <li class="item">
  60. <a href=""><img src="images/nav/nav7.png" alt="" /></a>
  61. <a href="">阿里拍卖</a>
  62. </li>
  63. <li class="item">
  64. <a href=""><img src="images/nav/nav4.png" alt="" /></a>
  65. <a href="">分类</a>
  66. </li>
  67. <li class="item">
  68. <a href=""><img src="images/nav/nav7.png" alt="" /></a>
  69. <a href="">阿里拍卖</a>
  70. </li>
  71. <li class="item">
  72. <a href=""><img src="images/nav/nav4.png" alt="" /></a>
  73. <a href="">分类</a>
  74. </li>
  75. </ul>
  76. </header>
  77. <!-- 主体 -->
  78. <main style="height: 1600px" ">
  79. <div class="main-courses"><h3>天猫超市</h3>
  80. <div>
  81. <ul class="main-courses">
  82. <li class="item">
  83. <a href=""><img src="static/images/man/1.webp" alt="" /></a>
  84. <p>商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍</p>
  85. <div class="price">
  86. <div class="iconfont icon-rmb">15838</div>
  87. </div>
  88. </li>
  89. <li class="item">
  90. <a href=""><img src="static/images/man/2.webp" alt="" /></a>
  91. <p>商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介品介绍商品介绍
  92. </p>
  93. <div class="price">
  94. <div class="iconfont icon-rmb">203</div>
  95. </div>
  96. </li>
  97. <li class="item">
  98. <a href=""><img src="static/images/man/3.webp" alt="" /></a>
  99. <p>商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介品介绍商品介绍</p>
  100. <div class="price">
  101. <div class="iconfont icon-rmb">203</div>
  102. </div>
  103. </li>
  104. <li class="item">
  105. <a href=""><img src="static/images/man/4.webp" alt="" /></a>
  106. <p>商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介品介绍商品介绍</p>
  107. <div class="price">
  108. <div class="iconfont icon-rmb">203</div>
  109. </div>
  110. </li>
  111. <li class="item">
  112. <a href=""><img src="static/images/man/5.webp" alt="" /></a>
  113. <p>商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介绍商品介品介绍商品介绍</p>
  114. <div class="price">
  115. <div class="iconfont icon-rmb">203</div>
  116. </div>
  117. </li>
  118. </ul>
  119. </div>
  120. </div>
  121. </main>
  122. <!-- 底部 -->
  123. <footer>
  124. <div class="item active">
  125. <a href="" class="iconfont icon-shejiaotubiao-44"></a>
  126. </div>
  127. <div class="item">
  128. <a href="" class="iconfont icon-gouwuche"></a>
  129. <a href="">购物车</a>
  130. </div>
  131. <div class="item">
  132. <a href="" class="iconfont icon-wodetaobao"></a>
  133. <a href="">我的淘宝</a>
  134. </div>
  135. </footer>
  136. </body>
  137. </html>

更多相关文章

  1. Android介绍
  2. Android硬件抽象层(HAL)概要介绍和学习计划
  3. android WebView加载html5介绍
  4. android开发笔记之2012版辅助开发工具包(ADT)新功能特性介绍及安装
  5. 2012版辅助开发工具包(ADT)新功能特性介绍及安装使用
  6. Android的多媒体框架OpenCore(PacketVideo)介绍
  7. PHP文件操作简单介绍及函数汇总
  8. Android线性LinearLayout布局xml属性介绍
  9. 新建android project和其配置文件的基本介绍

随机推荐

  1. android build (可参考之建立android编译
  2. android 获取短信验证码倒计时
  3. Android通过JNI操作串口《一》
  4. android 数据存取——SharedPreferences
  5. Android NavigationView 侧滑菜单
  6. Gradle:Basic Project
  7. Android获取默认浏览器信息
  8. Android Wear Preview - Get Started Wit
  9. Android 本地推送消息到通知栏 Notificat
  10. Mono登录界面记住密码的控件