博客列表 >盒模型、媒体查询、常用单位em和rem的区别

盒模型、媒体查询、常用单位em和rem的区别

P粉355147598
P粉355147598原创
2022年03月23日 14:26:54508浏览

一、盒模型

块元素:独占一行,一行只能有一个模型

行内元素:一行可以有多个模型

1、盒模型的一些基础属性

  • 盒子的宽高
  • 盒子的背景色
  • 盒子的边框
  1. .box {
  2. width: 200px;
  3. height: 200px;
  4. background: pink;
  5. border: 5px solid black;
  6. }

2、盒模型的其他属性

  • 盒子的内外边距
  • 背景裁切
  • 。。。
  1. .box {
  2. padding: 20px;
  3. margin: 20px;
  4. background-clip: content-box;
  5. }

3、盒子的大小设置

当我们如上定义个宽高为200*200的盒子后,实际加上边框和内外边距得到的是一个宽高为290的盒子(以宽度为例,具体计算如下)。

200(盒子的宽度)+40(左右内边距)+10(左右边框)+40(左右外边距)=290.

那么我们如何正确的计算盒子的大小?

  • 在设置盒子宽高的时候就需要减去内外边距和边框
  1. .box {
  2. width: 150px;
  3. height: 150px;
  4. background: pink;
  5. border: 5px solid black;
  6. padding: 20px;
  7. margin: 20px;
  8. }

这样我们就能得到一个200*200的盒子,但是此种方法计算繁琐,还容易出错。

  • 利用box-sizing属性
  1. .box {
  2. width: 200px;
  3. height: 200px;
  4. background: pink;
  5. border: 5px solid black;
  6. padding: 20px;
  7. margin: 20px;
  8. box-sizing: border-box;
  9. }

加上box-sizing: border-box后我们给出200 200的宽高就能得到实际为200 200宽高的盒子

二、媒体查询

1、什么是媒体查询?

媒体: 显示/输出信息的介质/载体—>屏幕打印机

查询: 根据当前媒体宽度的变化来选择不同的页面或显示效果

2、实例演示媒体查询

1)我们给整个body一个粉色的背景色,设置尺寸为451*209.


2)设置代码

  1. body {
  2. background-color: pink;
  3. }
  4. @media(max-width:450px){
  5. body {
  6. background-color: green;
  7. }
  8. }

3)调整body的宽度至450或以下。

4)此时因为尺寸的变化,body的背景色变为了绿色,这是一个由大到小的匹配过程,实际的情况就是一个pc————>移动的一个转变。

三、常用单位em与rem的区别

1、常用单位

  • px:像素,绝对单位,1in= 96px;
  • em
  • rem
  • vh
  • vw

2、实例演示

  • em
  1. <div><span class="before">Hello</span></div>
  2. <p><span class="after">Hello</span></p>
  1. p {
  2. font-size: 30px;
  3. }
  4. .before {
  5. font-size: 2em;
  6. }
  7. .after {
  8. font-size: 2em;
  9. }

两个盒子大小设置的都是2em为什么大小不同?

  1. 2em=16px,两段文字应该一样大小,但em在下面一个span的父元素p中被重新定义了->1em=30px,从而上面一段文字的大小是16px,而下面一段文字的大小是60px

总结:em总是随着自身或父元素的字号发生变化,在布局时会显得非常的混乱。

  • rem
  1. <div><span class="before">Hello</span></div>
  2. <p><span class="after">Hello</span></p>
  1. html {
  2. font-size: 30px;
  3. }
  4. p {
  5. font-size: 60px;
  6. }
  7. .before {
  8. font-size: 2rem;
  9. }
  10. .after {
  11. font-size: 2rem;
  12. }

总结:在根元素中设置的字号,在其它地方引用是使用rem,并且这个值是不变的

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