博客列表 >em,rem的原理与应用场景,分析 rem / em /vh/ vw的区别与联系

em,rem的原理与应用场景,分析 rem / em /vh/ vw的区别与联系

扬cium
扬cium原创
2021年03月27日 01:56:461338浏览

em,rem的原理

em与rem
1.em是浏览器文本的默认字号,通常是16px
2.em是个相对长度单位,这个单位表示元素的 font-size 的计算值,继承父级元素的字号大小
设置盒模型响应式属性
3.rem这个单位代表根元素(通常为<html> 元素)的 font-size 大小,相对固定一些,根元素的字号大小不变时,它可以看成一个常量;
4.rem取的html字号;em取得父级字号
5.边框不能用em或者rem,要用px

响应式按钮应用

  1. <!DOCTYPE html>
  2. <html lang="zh-CN">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>em制作一组响应式按钮组件</title>
  7. <style>
  8. .btn {
  9. background-color: deepskyblue;
  10. color: #fff;
  11. /* 去掉边框 */
  12. border: none;
  13. /* 去掉轮廓线 */
  14. outline: none;
  15. padding: 0.5em 1em;
  16. /* 边框圆角 */
  17. border-radius: 0.3em;
  18. }
  19. .btn:hover {
  20. /* 透明度 */
  21. opacity: 0.8;
  22. /* 将鼠标设置为手型 */
  23. cursor: pointer;
  24. /* 阴影效果 */
  25. box-shadow: 0 0 3px #888;
  26. transition: 0.3s;
  27. }
  28. .small {
  29. font-size: 10px;
  30. }
  31. .normal {
  32. font-size: 16px;
  33. }
  34. .larger {
  35. font-size: 22px;
  36. }
  37. </style>
  38. </head>
  39. <body>
  40. <button class="btn small">Button</button>
  41. <button class="btn normal">Button</button>
  42. <button class="btn larger">Button</button>
  43. </body>
  44. </html>

rem应用

因em: 动态性和继承性,但是也有缺点
我们非常的需要一个固定值的em,它不应该随着它自身和祖先元素的字号大小而变动
而用rem就可以解决掉, rem就是一个固定值的em
html在一个页面中它是唯一的且是最大的包含块,也叫根元素
所以,在html中定义的em大小,可看成一个常量(固定的值)
此时,我们用一个新的关键字rem来引用根元素中的字号大小font-size的值
以后的字号,强烈推荐使用rem设置,元素用em设置
注意: 边框不能用em或者rem,要用px

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  6. <title>rem定义</title>
  7. <style>
  8. html{
  9. font-size: 1.25em;
  10. }
  11. h2{
  12. font-size: 1.5rem;
  13. }
  14. h2 span{
  15. font-size: 1rem;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <h2>PHP中文网<span>php.cn</span></h2>
  21. </body>
  22. </html>

vh 与 vw

视口: “可视窗口”,浏览器窗口中用于显示文档的可视区域
vh: 视口的”初始包含块”的高度的百分之一(1/100)
vw: 视口的”初始包含块”的宽度的百分之一(1/100)
初始包含块: 目前 可以简单的理解为”html”
这个主要用于移动端布局
vmin和vmax可以用来指定视口高度 vw 和宽度 vh 两者之间的最小值和最大值。

总结:
em,rem,vh,vw都是相对值,不是绝对值;
em是相对于父元素的字体大小,
rem是相对于根元素的字体大小,
vh是相对于视口高度的百分比,
vw是相对于视口的宽度百分比,
vmax限定元素的视口宽度和高度的最大值,
vmin限定元素的视口宽度和高度的最小值。

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