博客列表 >前端盒模型常用属性和元素大小及定位

前端盒模型常用属性和元素大小及定位

emagic
emagic原创
2020年06月18日 17:48:33920浏览

0617作业

一、 熟悉盒模型所有常用属性,并举例说明

盒模型基本构成分为,内容区(长*宽),内边距(padding),边框(bording)、外边距(margin)。

盒模型的基本属性
序号 属性 特征
1 width 内容区宽
2 height 内容区高
3 padding 内边距,即内容到边框的距离
4 border 边框宽度
5 margin 外边距,单独设置意义不大,用于设置盒子与其他盒子之间的间距
  • 属性参数是按照 上 右 下 左的顺时针方向设置
    盒模型构成
  1. .box {
  2. /* 宽,高: 内容区 */
  3. width: 200px;
  4. height: 200px;
  5. padding: 10px;
  6. border: 2px solid #000;
  7. background-color: yellow;
  8. background-clip: content-box;
  9. }
  10. .box.one {
  11. padding: 10px;
  12. border: 2px solid #000;
  13. background-color: lightgreen;
  14. background-clip: content-box;
  15. /* margin: top right bottom left; */
  16. /* margin: 0 0 20px 0; */
  17. margin-bottom: 20px;
  18. }
  19. .box.two {
  20. padding: 10px;
  21. border: 2px solid #000;
  22. background-color: lightcoral;
  23. background-clip: content-box;
  24. /* 当二个盒子在垂直方向上,外边距会产生折叠 */
  25. margin-top: 30px;
  26. }

  • background-color:设置背景色
  • background-clip: content-box;只填充内容区,以显示出来padding区域
  • 块级元素默认垂直排列,块级元素会独占一行

  • 当二个盒子在垂直方向上,外边距会产生折叠(也叫坍塌),以大的margin数为准,而不是两个盒子相加。

二、理解元素大小的重新计算: box-sizing的用法,并举例

一般来说
盒子实际宽度=width + padding+ border
盒子实际高度=height+ padding+ border

  • 如果修改padding等属性时,盒子被撑开,盒子的宽度和高度会发生自动变化,在实际开发中影响布局,常用到一个属性box-sizing来固定盒子高宽,不会自动变化,方便布局设计。
    修改前:尺寸和设置的数值不一样了
    1. .box {
    2. width: 200px;
    3. height: 200px;
    4. border: 3px solid #000;
    5. padding: 10px;
    6. background-color: pink;
    7. background-clip: content-box;
    8. }
  • 从尺寸可以看到,盒子尺寸变大,这样页面布局有难以把控

修改后:将边框包含了内容区的宽和高
边框内的长*宽就是设置多少即多少,不会自动变形

  1. .box {
  2. width: 200px;
  3. height: 200px;
  4. border: 3px solid #000;
  5. padding: 10px;
  6. background-color: pink;
  7. background-clip: content-box;
  8. box-sizing: border-box;
  9. }

-box-sizing: 重新计算盒大小
box-sizing: content-box;默认值,以内容区为准
box-sizing: border-box;以边框为准

三、完全理解定位元素的水平与垂直对齐技术, 重点在垂直居中

1.水平居中对齐:

对于块级元素,text-align不适用,要用margin:auto

margin-left:auto;尽量分配左边空间
margin-right:auto;尽量分配右边空间
两个一起使用即可以设置水平居中对齐。

2.水平垂直居中对齐:

通过绝对定位来实现。因为浏览器的高度是无限的,我们要设置一个容器,让当前元素的上下文充满整个容器,从左上角开始,右下角结束,以实现垂直定位。

  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>元素的垂直居中</title>
  7. <style>
  8. .container {
  9. width: 300px;
  10. height: 300px;
  11. background-color: lightgreen;
  12. /*因为浏览器的高度是无限的,我们要设置一个容器作为,且父容器转为定位元素 */
  13. position: relative;
  14. }
  15. .container .box {
  16. width: 100px;
  17. height: 100px;
  18. background-color: red;
  19. /* 通过绝对定位来实现垂直居中 */
  20. position: absolute;
  21. /* 这里是关键从左上到右下全部填满。让当前元素绝对定位的上下文充满整个父级容器 */
  22. /* 左上角开始 */
  23. top: 0;
  24. left: 0;
  25. /* 右下角结束 */
  26. right: 0;
  27. bottom: 0;
  28. /* 水平垂直居中 当前元素 margin:上下左右全部为0,自动分配空白部分,这里可以合并写成 margin: auto*/
  29. margin: auto;
  30. }
  31. </style>
  32. </head>
  33. <body>
  34. <div class="container">
  35. <div class="box"></div>
  36. </div>
  37. </body>
  38. </html>

元素的定位需要通过position属性来定位

定位属性 功能
position:relative; 相对定位:以自己原来的位置为参照物进行偏移
position: absolute; 绝对定位:相对于最近的且不是static定位的父元素来定位
position:fixed; 固定定位:相对于浏览器窗口(body)来定位,如广告栏,客服电话一直悬停在某个部分就是用这个fixed
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议