博客列表 >框模型的知识

框模型的知识

雪~人胖胖
雪~人胖胖原创
2020年04月15日 12:47:23637浏览

框模型相关知识

在写样式的时候,会生成一个矩形框来显示,称为元素框,目前的 css 技术只支持矩形框。

1 元素框

序号 名称 描述
1 内容区content 必须要有,它的四周区域是可选的
2 内边距padding 内容与边框之间的填充区域
3 边框border 边框可以将内容区与外界进行隔离
4 外边距 margin 多个盒子之间的间隙

图例

1.1 内边距

常规属性

序号 名称 描述
1 padding-top 上内边距
2 padding-right 右内边距
3 padding-bottom 下内边距
4 padding-left 左内边距

属性简写

序号 值数量 举例 描述
1 四值 padding: 5px 10px 15px 20px 上 — 右 — 下 — 左
2 三值 padding: 5px 10px 5px 上 — (左右相等) — 下
3 双值 padding: 5px 10px (上下相等) — (左右相等)
4 单值 padding: 10px 上下左右全相等

1.2 外边距

常规属性

序号 名称 描述
1 margin-top 上外边距
2 margin-right 右外边距
3 margin-bottom 下外边距
4 margin-left 左外边距

属性简写

序号 值数量 举例 描述
1 四值 margin: 5px 10px 15px 20px 上 — 右 — 下 — 左
2 三值 margin: 5px 10px 5px 上 — (左右相等) — 下
3 双值 margin: 5px 10px (上下相等) — (左右相等)
4 单值 margin: 10px 上下左右全相等

1.3 边框

边框border 比较特殊, 除了可以设置宽度, 还可以设置样式和颜色,所以有更多的属性

1.3.1 上边框

序号 名称 描述
1 border-top-width: 1px 上边框宽度
2 border-top-style: solid 上边框样式
3 border-top-color: black 上边框前景色
4 border-top: 1px solid black 上边框属性简写

1.3.2 右边框

序号 名称 描述
1 border-right-width: 1px 右边框宽度
2 border-right-style: solid 右边框样式
3 border-right-color: green 右边框前景色
4 border-right: 1px solid green 右边框属性简写

1.3.3 下边框

序号 名称 描述
1 border-bottom-width: 1px 下边框宽度
2 border-bottom-style: solid 下边框样式
3 border-bottom-color: grey 下边框前景色
4 border-bottom: 1px solid grey 下边框属性简写

1.3.4 左边框

序号 名称 描述
1 border-left-width: 1px 左边框宽度
2 border-left-style: solid 左边框样式
3 border-left-color: skyblue 左边框前景色
4 border-left: 1px solid skyblue 左边框属性简写

1.3.5 所有边框

序号 值数量 举例 描述
1 三值 border: 1px solid red 宽度—样式—前景色
2 双值 border: 1px solid 宽度—样式:默认黑色

例如

  1. <style>
  2. p {
  3. width: 200px;
  4. padding: 15px;
  5. border: 5px solid;
  6. background-color: yellow;
  7. }
  8. </style>
  9. </head>
  10. <body>
  11. <p>Hello,World</p>
  12. </body>


该元素的总宽度为240px。
用户也可以自行设置元素宽度,用box-sizing属性。
例如

  1. <style>
  2. p {
  3. width: 200px;
  4. padding: 15px;
  5. border: 5px solid;
  6. background-color: yellow;
  7. box-sizing: border-box;
  8. }
  9. </style>
  10. </head>
  11. <body>
  12. <p>Hello,World</p>
  13. </body>


内容区进行了缩放,元素总宽度为200px。


2. 横向格式化

涉及七个属性

序号 属性 默认值 描述
1 margin-left auto 左外边距, 正负均可
2 border-left 0 左边框
3 padding-left 0 左内边距
4 width auto 内容区宽度, 必须正值
5 padding-right 0 右内边距
6 border-right 0 右边框
7 margin-right auto 右外边距, 正负均可
  • 这七个属性影响着块级框的横向布局
  • 本个属性相加应该等于父元素容纳块的宽度,而这个宽度就是父元素的 width 值
  • 七个属性中,只有内容区和左右外边距,允许设置auto,其它属性要么 0,要么具体值
    图例:
  1. <style>
  2. * :not(body) {
  3. outline: 1px dashed;
  4. }
  5. div {
  6. width: 600px;
  7. }
  8. p {
  9. border: 1px solid;
  10. width: 200px;
  11. margin-left: auto;
  12. margin-right: 100px;
  13. }
  14. </style>
  15. </head>
  16. <body>
  17. <div><p>Hello,World</p></div>
  18. </body>


右边margin为100px,p标签为200px,另外的300px为左边的margin。


3. 纵向格式化

与横向格式化一样,也涉及七个属性

序号 属性 默认值 描述
1 margin-top auto 上外边距, 正负均可
2 border-top 0 上边框
3 padding-top 0 上内边距
4 height auto 内容区高度, 必须正值
5 padding-bottom 0 下内边距
6 border-bottom 0 下边框
7 margin-bottom auto 下外边距, 正负均可

3.1 纵向外边距二大特征

上下外边距的auto会被解析为0

  • 横向格式化时, 左右外边距值为auto时, 由浏览器根据父元素空间自动计算
  • 纵向格式化时, 上下外边距值为auto时, 浏览器会将它强制设置为0
  • 这也是块元素无法直接设置”垂直居中”的原因(水平居中可以轻易实现)

纵向外边距会出现折叠现象

  • 当多个元素框垂直方向排列时, 会出现纵向外边距折叠现象
  • 此时, 二个元素框的上下外边距为 PK, 最终大者胜出
  1. <style>
  2. div:first-of-type {
  3. width: 100px;
  4. height: 100px;
  5. border: 1px solid;
  6. background-color: yellow;
  7. margin-bottom: 20px;
  8. }
  9. div:last-of-type {
  10. width: 100px;
  11. height: 100px;
  12. border: 1px solid;
  13. background-color: gray;
  14. margin-top: 10px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div></div>
  20. <div></div>


margin取得是20px。


总结

主要学习了框模型中的内外边距和边框的知识。
margin中auto的用法,横向纵向设置的区别。
非置换元素和置换元素的概念。
概念有点多,一下子记不住,需要多看看视频加深学习。

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