博客列表 >rem 、em、vh、 vw

rem 、em、vh、 vw

咸鱼老爷
咸鱼老爷原创
2021年02月26日 14:53:50883浏览

em

em的初始值是用户代理的值 默认是16px

1.什么是em

  1. em是浏览器文本的默认字号的相对关键字,通常是16px
  2. 1em=16px
  3. html font-sizeem的基本像素

2.用在哪?

2.1设置响应式的文本字号
font-size属性是允许被继承的 当前h2 的字号继承自他的祖先元素 body html inherited form html
想改变h2的字号 修改html的字号即可=

  1. ```
  2. <h2>pph.cn</h2>
  3. ```

2.2设置盒模型的属性的响应式;

  1. ```
  2. div{
  3. /*1em为16px */
  4. width:100px;
  5. height:100px;
  6. /*响应式不使用px
  7. 10em=10*16*/
  8. width:10em;
  9. height:10em;
  10. }

3.em/rem定义字号

em的初始值是用户代理的值 默认是16px
html {
font-size: 1.25em;
}
/ 此时1em=20px /
/* em动态性和继承性 但是也有缺点
需要固定值的em 不能随着祖先元素的字号大小变化
用rem可以解决 rem就是一个固定值的em

  1. html根元素 一个页面中它是唯一的且是最大的包含块
  2. 所以在html中定义的em大小,可以看作是一个常量 固定值
  3. 因为rm巨有继承性,此时我们用一个新的关键字来引用根元素中的字号大小的值 rem
  4. */
  5. h2 {
  6. font-size: 1.5rem;
  7. }
  8. span {
  9. font-size: 0.5rem;
  10. }

em实现响应式布局

  1. /* 设置根元素字号 */
  2. html {
  3. /* font-size: 12px; */
  4. font-size: 0.75em;
  5. /* 后面可以直接使用rem来引用12px来定义字号 */
  6. }
  7. .panel {
  8. font-size: 1rem;
  9. /* 此时当前元素中的其他属性 如果用到em就是1rem(12px) */
  10. padding: 1rem;
  11. border-radius: .3rem;
  12. /* 边框不能用em/rem 一定要用px */
  13. border: 1px solid #999;
  14. margin: 2rem 0;
  15. background-color: aquamarine;
  16. }
  17. /* rem用在字号中 除了字号都可以用em*/
  18. .panel h2 {
  19. /* 以后的字号强烈推荐使用rem设置 */
  20. font-size: 1.2rem;
  21. }
  22. .panel p {
  23. font-size: 1.1rem;
  24. text-indent: 2em;
  25. line-height: 1.5;
  26. }
  27. /* 响应式 媒体查询 */
  28. @media screen and (min-width:640px) {
  29. html {
  30. font-size: 0.875em;
  31. }
  32. .panel {
  33. background-color: bisque;
  34. }
  35. }
  36. @media screen and (min-width:1000px) {
  37. html {
  38. font-size: 1em;
  39. }
  40. .panel {
  41. border-right-color: cadetblue;
  42. }
  43. }
  44. @media screen and (min-width:1200px) {
  45. html {
  46. font-size: 1.25em;
  47. }
  48. .panel {
  49. background-color: #ccc;
  50. }
  51. }

视口 vh vw

如何得到一个正方形区块

  1. .box{
  2. width:80vmin;
  3. height:80vmin;
  4. background-color:#cccl
  5. margin:auto;
  6. }
  7. <div class='box'></div>
  1. >css扩展
  2. css预处理器 用js来编译css代码 less sass
  3. css原生变量/自定义属性
  4. body{
  5. --color:#f00;
  6. --active-color:#0f0;
  7. --a-border:1px solid
  8. }
  9. a {
  10. color:var(--color);
  11. }
  12. a:hover{
  13. color:var(--active-color);
  14. border:var(--a-border)
  15. }
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议