博客列表 >rem+vw布局的原理与rem的设置技巧

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

蓝魔
蓝魔原创
2022年01月04日 15:56:50621浏览

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>

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