欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

rem+vw布局的原理与rem的设置技巧

程序员文章站 2022-06-01 20:18:12
...

rem+vw布局的原理

vw为响应式单位,为方便计算:

  • 先根据页面总宽度100vw与设计稿的宽度计算出html的font-size为100px,即calc(100vw / 设计稿宽度 / 100)
  • 由于字号会被继承,所以将body的font-size设为默认的16px,即0.16rem;
  • 用媒体查询@media设置小于最小宽度时的html的font-size值 以及 大于最大宽度时的html的font-size值,都用px表示。
  1. <!DOCTYPE html>
  2. <html lang="en">
  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. </head>
  9. <style>
  10. html {
  11. font-size: calc(100vw / 3.75);
  12. }
  13. body {
  14. font-size: 0.16rem;
  15. }
  16. @media (max-width:320px){
  17. html{
  18. font-size: 85px;
  19. }
  20. }
  21. @media (min-width:640px){
  22. html{
  23. font-size: 170px;
  24. }
  25. }
  26. </style>
  27. <body>
  28. <div class="box">PHP中文网</div>
  29. </body>
  30. </html>

grid属性

容器属性

  • 设置容器为grid布局:display:grid;

  • 设置行列数量 (fr为份,自动划分)

设置行 grid-template-rows:repeat(3,1fr)

设置列 grid-template-columns:repeat(3,1fr)

  • 间距 gap

用法:gap:行距 列距

  • 排列方式:行/列优先(即横排竖排)

grid-auto-flow:row/column

设置隐式网格的行高
grid-auto-rows:10em

设置隐式网格的列宽
grid-auto-columns:10em

对齐方式:相对容器
place-content:垂直方向 水平方向
可选值有(start/end/center/space-between/space-around/space-evenly)

对齐方式:项目相对于网格
place-items:垂直方向 水平方向
可选值有(start/end/center)

项目属性


  • 跨区间
    grid-area: 行始/列始/行止/列止

  • 针对单个项目
    place-self:垂直方向/水平方向
    可选值有(start/center/end)

  • 实例:

  1. <!DOCTYPE html>
  2. <html lang="en">
  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. <style>
  9. *{
  10. padding: 0;
  11. margin: 0;
  12. box-sizing: border-box;
  13. }
  14. body{
  15. display: grid;
  16. grid-template-rows: 10em minmax(500px,calc(100vh - 20em - 0.6em - 0.6em)) 10em;
  17. grid-template-columns: 10em minmax(500px,1fr ) 10em;
  18. gap: 0.5em;
  19. }
  20. header,footer{
  21. background-color: chocolate;
  22. color: #fff;
  23. grid-column: span 3;
  24. }
  25. main{
  26. background-color: cyan;
  27. }
  28. footer{
  29. background-color: darkcyan;
  30. color: #fff;
  31. }
  32. aside{
  33. background-color: rgb(105, 155, 247);
  34. color: #fff;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <header>HEADER</header>
  40. <aside class="left">LEFT</aside>
  41. <main>MAIN</main>
  42. <aside class="right">RIGHT</aside>
  43. <footer>FOOTER</footer>
  44. </body>
  45. </html>

rem+vw布局的原理与rem的设置技巧