博客列表 >vw+rem+grid布局

vw+rem+grid布局

云中
云中原创
2022年01月03日 19:03:56473浏览

vw+rem+grid布局

  1. <!-- 当前的布局视图,就是当前移动设备浏览器的可视区宽度 -->
  2. <!-- ! 1. 布局视图 = 视觉视图 : width=device-width -->
  3. <!-- initial-scale=1.0: 这种1:1还原视觉视图的布局, 叫: 理想视图 -->
  4. <!-- ! 2. 理想视图 = 视觉视图 : initial-scale=1.0 -->
  5. <!-- ! 目前 主流的 移动端布局方案: rem + vw -->
  6. <style>
  7. * {
  8. padding: 0;
  9. margin: 0;
  10. box-sizing: border-box;
  11. }
  12. html {
  13. /* font-size: 100px; 技巧 */
  14. font-size: calc(100vw / 3.75);
  15. }
  16. body {
  17. /* 将body的font-siz还原为16px */
  18. font-size: 0.16rem;
  19. }
  20. /* 当屏幕宽度小于320px的时候, 字号不要再小了,否则就看不清了 */
  21. @media screen and (max-width: 320px) {
  22. html {
  23. font-size: 85px;
  24. }
  25. }
  26. /* 当屏幕宽度大于640px的时候, 字号不要再放大了 */
  27. @media screen and (min-width: 640px) {
  28. html {
  29. font-size: 170px;
  30. }
  31. }
  32. </style>
  33. <header>
  34. <h3>欢迎访问</h3>
  35. <button>登录</button>
  36. </header>
  37. <aside class="left">
  38. <p>菜单栏</p>
  39. <ol>
  40. <li>菜单1</li>
  41. <li>菜单2</li>
  42. <li>菜单3</li>
  43. <li>菜单4</li>
  44. <li>菜单5</li>
  45. <li>菜单6</li>
  46. <li>菜单7</li>
  47. <li>菜单8</li>
  48. <li>菜单9</li>
  49. </ol>
  50. </aside>
  51. <main>主体</main>
  52. <aside class="right">
  53. <p>广告</p>
  54. <ol>
  55. <li>广告位1</li>
  56. <li>广告位2</li>
  57. <li>广告位3</li>
  58. <li>广告位4</li>
  59. <li>广告位5</li>
  60. <li>广告位6</li>
  61. <li>广告位7</li>
  62. <li>广告位8</li>
  63. <li>广告位9</li>
  64. </ol>
  65. </aside>
  66. <footer>
  67. <p>联系我们</p>
  68. <p>友情链接</p>
  69. <p>备案信息</p>
  70. </footer>
  71. <style>
  72. body {
  73. width: 100vw;
  74. height: 100vh;
  75. /* grid布局 */
  76. display: grid;
  77. /* 设定列个数及列宽 */
  78. grid-template-columns: 1rem minmax(2rem, 1fr) 1rem;
  79. /* 设定行个数及行高 */
  80. grid-template-rows: 0.5rem minmax(calc(100vh - 1rem - 0.2rem), 1fr) 0.5rem;
  81. /* 项目间隙 */
  82. gap: 0.1rem;
  83. }
  84. body * {
  85. border: 1px solid black;
  86. }
  87. header,
  88. footer {
  89. /* 项目横跨3个单元格 */
  90. grid-column: span 3;
  91. }
  92. header {
  93. display: grid;
  94. grid-template-columns: 1rem calc(100vw - 2rem) 1rem;
  95. /* 1. 所有项目在"容器"中的对齐方式 */
  96. /* place-content: 垂直方向 水平方向; */
  97. /* place-content: start start;
  98. place-content: center end;
  99. place-content: center center;
  100. place-content: center; */
  101. /* 2.剩余空间在所在项目之间进行分配 */
  102. /* place-content: space-between space-around;
  103. place-content: space-between space-between;
  104. place-content: space-between; */
  105. place-content: center center;
  106. /* 3. 所有项目在所在的"单元格"中的对齐方式 */
  107. place-items: center;
  108. }
  109. header button {
  110. width: 0.5rem;
  111. /* 指定项目位置,在第3、4条竖线中间,即第3个单元格中 */
  112. grid-column: 3/4;
  113. /* 设置单个项目在单元格中的位置 */
  114. place-self: center start;
  115. }
  116. header h3 {
  117. grid-column: 2/3;
  118. }
  119. .left {
  120. text-align: center;
  121. font-size: 0.1rem;
  122. }
  123. .right {
  124. text-align: center;
  125. font-size: 0.1rem;
  126. }
  127. main {
  128. text-align: center;
  129. }
  130. footer {
  131. display: grid;
  132. /* repeat(3, 1fr) 重复输出 1fr 三次 */
  133. grid-template-columns: repeat(3, 1fr);
  134. /* 所有项目在容器和单元格中全部水平垂直居中了 */
  135. place-content: center center;
  136. place-items: center center;
  137. }
  138. </style>

图示:
图示

声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议