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"></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>

更多相关文章

  1. Android(安卓)ListView元素间隙线自定义渐变效果
  2. EditText设置更多文字为省略号
  3. android 设置应用退出后不在运行列表中显示
  4. SQLServer设置客户端使用IP地址登录的图文详解
  5. SQL Server误设置max server memory的处理方法
  6. android preferenceActivity用法
  7. android绘图
  8. Android完美解决输入框EditText隐藏密码打勾显示密码问题
  9. 直播代码Android怎么实现定时任务及闹钟?

随机推荐

  1. 【Android】Android 监听apk安装替换卸载
  2. Android TextView实现滚动跑马灯效果Marq
  3. Android百度地图之显示地图
  4. Android开发视频教程大总结―23部视频教
  5. Android 渗透测试学习手册 第二章 准备实
  6. Android百度地图导航的那些坑
  7. [转] How to clear cookies and cache of
  8. 和兄弟们聊内存的事
  9. android 笔记2
  10. Android自带的人脸识别