Blogger Information
Blog 5
fans 0
comment 0
visits 4432
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
em与rem,vw与vh
小狐的博客
Original
739 people have browsed it

八、em/rem 与响应式布局

1、em

em 是浏览器的默认字号,一般是 16px
1em = 16px,h2 标签是 1.5em = 24px
font-size 是可以被继承的,继承自他们的祖先元素(body、html)

(1)em 用在哪

用于响应式布局,动态调整标签大小

  1. <style>
  2. /* 设置响应式的文本字号 */
  3. /* font-size: 是允许被继承的 */
  4. /* 当前h2的字号,继承自它的祖先元素(body , html) */
  5. /* 想改变h2的字号,大小 */
  6. html {
  7. font-size: 20px;
  8. }
  9. body div:first-of-type {
  10. /* 1em = 20px */
  11. font-size: 1em;
  12. /* 从现在起请忘记像素px */
  13. /* width: 100px;
  14. height: 100px;
  15. */
  16. /* 10em : 10 * 20 = 200px */
  17. width: 10em;
  18. /* 8em : 8 * 20 = 160px */
  19. height: 8em;
  20. background-color: lightgreen;
  21. }
  22. /* 因为盒子的大小使用em,所以只需要设置盒子的font-size就可以动态的设置大小了 */
  23. body div {
  24. /* 2倍em就是40px,套用上面的声明,宽度400px,高度320px */
  25. font-size: 2em;
  26. }
  27. </style>
  28. <body>
  29. <!-- 这里的h2字号,就变成 20*1.5 = 30px -->
  30. <!-- 因为font-size会继承祖先元素,因此span的font-size与h2一样 -->
  31. <h2>www.10010.com<span>联通网厅</span></h2>
  32. <div></div>
  33. </body>

(2)em 模仿 layui 按钮

  1. <style>
  2. /* 基本样式 */
  3. .btn {
  4. /* 背景色 */
  5. background-color: #1e9fff;
  6. /* 字体颜色 */
  7. color: #fff;
  8. /* 去掉边框 */
  9. border: none;
  10. /* 去掉轮廓线 */
  11. outline: none;
  12. /* 外边距 */
  13. padding: 0.5em 1em;
  14. /* 设置圆角 */
  15. border-radius: 0.3em;
  16. }
  17. /* 鼠标悬停样式 */
  18. .btn:hover {
  19. /* 透明度 */
  20. opacity: 0.8;
  21. /* 将鼠标设置为手型 */
  22. cursor: pointer;
  23. /* 边框阴影:外发光 */
  24. box-shadow: 0 0 3px #888;
  25. /* 动画延迟(变淡的效果) */
  26. transition: 0.3s;
  27. }
  28. /* 如果想设置三个不同的大小的按钮,只需要为这个三个按钮指定不同的字号就可以 */
  29. /* 较小的 */
  30. .small {
  31. font-size: 10px;
  32. }
  33. /* 正常的 */
  34. .normal {
  35. font-size: 16px;
  36. }
  37. /* 较大的 */
  38. .larger {
  39. font-size: 22px;
  40. }
  41. </style>
  42. <body>
  43. <button class="btn small">Button</button>
  44. <button class="btn normal">Button</button>
  45. <button class="btn larger">Button</button>
  46. </body>

2、rem

rem 的定义

定义

由于 em 具有继承性,因此需要一个引用根元素中字号大小的关键字:rem,他是一个具有固定值的 em
rem 主要用于设置字号,而em则根据字号,动态设置元素大小的属性值

  1. <style>
  2. html {
  3. /* em的初始值就是用户代理的值,默认就是16px */
  4. /* 1em = 20px; */
  5. font-size: 1.25em;
  6. /* 此时1em = 20px */
  7. /* 当前font-size属性出现在了html中 */
  8. /* html叫根元素,一个页面中它是唯一的且是最大的包含块 */
  9. /* 所以,在html中定义的em大小,可看成一个常量(固定的值) */
  10. /* html的所有后代元素,如果想引用html中的字号,就不能再用em了 */
  11. /* */
  12. }
  13. h2 {
  14. /* 1.5rem : 1.5 * 20px = 30px; */
  15. font-size: 1.5rem;
  16. }
  17. h2 span {
  18. /* 1rem = 1 * 20px = 20px */
  19. font-size: 1rem;
  20. }
  21. </style>
  22. <body>
  23. <!-- span = 1rem,不再受到祖先元素的影响 -->
  24. <h2>www.10010.com<span>联通网厅</span></h2>
  25. </body>

九、视口单位(vh/vw)

视口:可视窗口,即浏览器中用于显示文档的可视区域
vh: 视口高度的百分比(50vh = 50%)
vw: 视口宽度的百分比(50vw = 50%)
初始包含块: 目前 可以简单的理解为html

  1. <style>
  2. /* 宽度与高度分别占据可视窗口的 50% */
  3. .box {
  4. width: 50vw;
  5. height: 50vh;
  6. background-color: lightgreen;
  7. margin: auto;
  8. }
  9. /* 如何画出一个正方形 */
  10. /* 宽度与高度,谁小以谁为准 */
  11. .box {
  12. width: 80vmin;
  13. height: 80vmin;
  14. background-color: lightgreen;
  15. margin: auto;
  16. }
  17. /* 宽度与高度,谁大以谁为准 */
  18. .box {
  19. width: 80vmax;
  20. height: 80vmax;
  21. background-color: lightgreen;
  22. margin: auto;
  23. }
  24. </style>
  25. <body>
  26. <div class="box"></div>
  27. </body>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post