博客列表 >学习em rem vh vw与响应式布局

学习em rem vh vw与响应式布局

波元的PHP学习
波元的PHP学习原创
2020年12月21日 15:12:29679浏览

目录

  • em原理与应用
  • em用在什么地方?
  • em制作一组响应式的按钮组件
  • em定义字号
  • rem定义字号
  • em实现响应式布局

1、em原理与应用

当前页面中的元素字号的计算的依据em(在html标签处找)
em:浏览器文本的默认字号的相对关键字,通常是16px。
1em=16px

用em值设定字体大小,EM值大小是动态的,当定义或继承FONT-SIZE属性时,1EM等于该元素的字体大小。如果你在网页中任何地方都没有设置文字大小的话,那它将等于浏览器默认文字大小,通常是16px.所以通常1EM=16px. 如果你设置了body元素的字体大小为20px,那1em=20px.那个1就是当前em大小的倍数。

em可以自动适应用户的字体,em是个非常有用的CSS单位。

一个流行的技巧是设置body元素的字体大小为62.5%,等于10px.通过计算基准大小10px的倍数,这样有6px=0.6EM.

  1. body{
  2. font-size:1.6em;/* 1.6em=16px */}

2、em用在什么地方?

+设置响应式的文本字号
font-size是可以被继承的。
当前H2的字号,继承自它的祖先元素body,html
想改变H2的字号大小

  1. html{ font-size:20px; 也可以写成font-size:1.25em;
  2. h2:默认就是1.5em 这里等于30px
  3. }
  4. body div:first-of-type{
  5. font-size:1em;
  6. width:10em;
  7. height:8em;
  8. background-color:lightgreen;
  9. }

因为盒子的大小使用em,所以只需要设置盒子的font-size就可以动态的设置大小了。

3、em制作一组响应式的按钮组件

  1. .btn{background-color:#1e9fff
  2. color:#fff
  3. border:none;
  4. outline:none;
  5. }
  6. <body>
  7. <button class="btn">button</button>
  8. <button class="btn">button</button>
  9. <button class="btn">button</button>
  10. <body>
  11. .btn:hover{
  12. opactiy:0.8; 透明度
  13. cursor:pointer; 鼠标手型
  14. box-shadow0 0 3px #888; 阴影
  15. transiton:0.3s; 延时
  16. 如果 想设置三个大小不同的按钮,只需要为这三个按钮指定不同的字号就可以了。
  17. sytle
  18. .small{font-size:10px; }
  19. .normal{font-size16;}
  20. .larger{font-size:22}
  21. sytle
  22. }

4、em定义字号

  1. <style>
  2. body{font-size:20px;或者
  3. font-size:1.25em;
  4. }
  5. </style>

font-size具有继承性,h2 font-size 1.5em/30px 所以,span的font-size也是30px.
<h2>php.cn<span>php中文</span> </h2>
em:动态性和继承性,但是也有缺点
我们非常的需要一个固定值的em,它不应该它自身和祖先的字号大小而变动。
用rem就可以解决这个问题。rem就是一个固定值的em.

5、rem定义字号

html{此时1em=20px font-size:1.25em }
em的初始值就是用户代理的值,默认就是16px
当前font-size属性出现在了html中
html叫根元素,一个页面中它是唯一的且是最大的包含块
所以,在html中定义的em大小,可看成一个常量(固定值)
html的所有后代元素,如果想引用html中的字号,就不能再用em了。
因为em具有继承性。
此时,我们用一个新的关键字来引用根元素中的字号大小font-size的值
这个关键字就是rem
h2 span{1rem=1*20px font-size:1rem;}

6、em实现响应式布局

  1. html{font-size:0.75em;
  2. }
  3. .panel{font-size:1rem;
  4. padding:1em;
  5. 边框不要用em/rem,一定要用px
  6. border-radius: 0.5em;
  7. background-color:#999;
  8. margin:2em;
  9. }
  10. .panel h2{ 以后的字号,强烈推荐使用rem设置。
  11. font-size:1.2rem;
  12. margin:1em 0;
  13. }
  14. .panel p{1.1rem=13.2px=12*1.1
  15. font-size:1.1rem
  16. 缩进2个字符。
  17. text-indent:2em;
  18. line-height:2;
  19. }
  20. 屏幕宽度>=800px,字号放大到4px
  21. @media screen and(min-width:800){
  22. 14/16=0.875em
  23. html{font-size:0.875em;
  24. .panel{background-color:wheat;
  25. }
  26. }
  27. 屏幕宽度>=1000px,字号放大到16px.
  28. @media screen and(min-width:1000){
  29. 14/16=0.875em
  30. html{font-size:1em;
  31. .panel{background-color:lightcyan;
  32. }
  33. }
  34. 屏幕宽度>=1200px,字号放大到16px.
  35. @media screen and(min-width:1200){
  36. 14/16=0.875em
  37. html{font-size:1.25em;
  38. .panel{background-color:lightskyblue;
  39. }
  40. }
  41. <div class=panel> <h2>内容</h2>
  42. </div>

2、视口单位:vh/vw

除了字号用REM,其它地方都可以用EM.或者希望得到一个可测试的固定值用REM.
视口:可视窗口,浏览器窗口中用于显示文档的可视区域。视口不包括地址栏,工具条,菜单栏,状态栏。

  • vh:视口的”初始包含块”的高度的百分之一(1/100)
  • VW:视口的“初始包含块”的宽度的百分比(1/100)
    这个主要用于移动端布局。

视口单位 :vmin vmax

css可以自定义变量

—color:#0f00;
—a-border:1px solid;

css预处理器,用JS来编译CSS代码,less,sass

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