博客列表 >响应式布局em/rem/vh/vw的理解

响应式布局em/rem/vh/vw的理解

东东
东东原创
2020年10月22日 22:45:541183浏览

响应式布局em和#### em的定义

  1. em只继承父级元素
  2. 1em=16px
  3. em是用于设定font-size,padding,margin,border-radius等元素
  4. em在嵌套时,<1em时会逐级变小,>1em时会逐级变大
  5. 边框不要用em,因为如果用em,会根据字体大小变化,效果会很难看

案例

  1. <style>
  2. :root {
  3. font-size: 0.75em;
  4. }
  5. body {
  6. background-color: aquamarine;
  7. }
  8. @media screen and (min-width: 500px) {
  9. body {
  10. background-color: red;
  11. font-size: 2em;
  12. }
  13. }
  14. @media screen and (min-width: 800px) {
  15. body {
  16. background-color:yellow;
  17. font-size: 3em;
  18. }
  19. }
  20. </style>
  21. </head>
  22. <body>
  23. <p>当屏幕宽度大于500px时,屏幕变红,字体变为2em;当屏幕宽度大于800px时,屏幕变黄,字体变为3em</p>
  24. </body>

图样


rem的定义

  1. remroot em的缩写,一般用于设定字号
  2. rem继承的是根元素root的值进行计算
  3. rem一般用于font-size中用于设置字号,但尽可能不用在:root

案例

  1. <style>
  2. :root {
  3. font-size: 0.75em;
  4. }
  5. ul {
  6. font-size: 1.1em;
  7. }
  8. /*当设置为rem时,font-size继承的是根目录的值,因此,他就不会逐级变大*/
  9. ul {
  10. font-size: 2rem;
  11. }
  12. </style>
  13. </head>
  14. <body>
  15. <ul>
  16. <li>
  17. 在这里学习中
  18. <ul>
  19. <li>
  20. 为了学习
  21. <ul>
  22. <li>
  23. 努力学习
  24. <ul>
  25. <li>
  26. 不要放弃
  27. </li>
  28. </ul>
  29. </li>
  30. </ul>
  31. </li>
  32. </ul>
  33. </li>
  34. </ul>
  35. </body>

px

  • 边框类不需要根据自适元素,要用绝对值px,如:border: 1px solid red

视口:vh和vw

  • vh单位是视口高度的1/100
  • vw单位是视口宽度的1/100
  • vmin选择视口宽高较小的值进行适配
  • vmax选择视口宽高较大的值进行适配

案例

  1. <style>
  2. /* vh单位是视口高度的1/100
  3. vw单位是视口宽度的1/100 */
  4. .box {
  5. width: 60vw;
  6. height: 30vh;
  7. background-color: teal;
  8. margin: auto;
  9. margin-bottom;:1em
  10. }
  11. .box1 {
  12. width: 60vw;
  13. height: 40vh;
  14. background-color: tomato;
  15. margin: auto;
  16. margin-top: 1em;
  17. }
  18. /* 设置一个正方形的容器,确保在横屏和竖屏都能完美的显示成一个正方形.`vmin`选择视口宽高较小的值进行适配,- `vmax`选择视口宽高较大的值进行适配 */
  19. .box2 {
  20. width: 60vmax;
  21. height: 60vmax;
  22. background-color:violet;
  23. margin: auto;
  24. margin-top: 1em;
  25. }
  26. </style>
  27. </head>
  28. <body>
  29. <div class="box">第一个布局</div>
  30. <div class="box1">第二个布局</div>
  31. <div class="box2">第三个布局</div>
  32. </body>

图样

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