博客列表 >box-sizing属性-常用的元素居中方式

box-sizing属性-常用的元素居中方式

葡萄枝子
葡萄枝子原创
2020年12月19日 00:36:23820浏览

box-sizing属性-常用的元素居中方式

  1. 实例演示box-sizing属性;
  2. 实例演示常用的元素居中方式

1. 实例演示box-sizing属性

box-sizing 属性定义盒子的尺寸,默认值 content-box 只包含内容区,若盒子设置有 padding 和 border 属性,box-sizing 默认值并不包含它们,可以通过设置 box-sizing 属性为 border-box 将盒子尺寸延展到包含 padding 和 border 的属性值,盒子的内容区被挤压。

  • body 标签中添加一个盒子
  1. <div class="box">content</div>
  • style 标签添加 css 并设置属性
  1. /* 定义 1em = 10px */
  2. :root {
  3. font-size: 10px;
  4. }
  5. /*
  6. 盒子尺寸 box-sizing 默认是 content-box 内容框
  7. 宽度 width 10em = 100px
  8. 高度 height 8em = 80px
  9. */
  10. .box {
  11. width: 10em;
  12. height: 8em;
  13. border: 5px solid gray;
  14. padding: 15px;
  15. margin: 20px;
  16. background-color: lightgreen;
  17. /* 背景默认延展到 padding 区,裁剪到内容区 */
  18. background-clip: content-box;
  19. /* 盒子尺寸默认值,内容框 */
  20. box-sizing: content-box;
  21. }
  • 默认盒子尺寸宽高是 100 x 80 如图

默认盒子尺寸content-box

  • style 标签中,继续添加 css 设置属性 box-sizing: border-box; 属性
  1. /*
  2. 设置 box-sizing 属性为 border-box ,盒子尺寸
  3. 盒子宽 100px 包含 padding 和 border 的值
  4. 盒子高 80 px 包含 padding 和 border 的值
  5. 内容框被挤压成
  6. 内容宽度 = 100px - padding*2 - border*2 = 100 - 15*2 - 5*2 = 60px
  7. 内容高度 = 80px - padding*2 - border*2 = 80 - 15*2 - 5*2 = 40px
  8. */
  9. .box {
  10. box-sizing: border-box;
  11. }
  • 设置 box-sizing: border-box; 后,盒子尺寸 100x80 包含 padding 和 border 内容被挤压成 60x40px

设置盒子尺寸border-box


2. 实例演示常用的元素居中方式

2.1 水平居中

2.1.1 行内或行内块元素水平居中

2.1.1.1 行内元素水平居中
  • body 中盒子 box 设置内元素 a 标签
  1. <div class="box">
  2. <a href="https://php.cn" title="php">php</a>
  3. </div>
  • box 设置 text-align:center; 行内元素水平居中
  1. /* 行内元素水平居中 */
  2. .box {
  3. text-align: center;
  4. }
2.1.1.2 行内块元素水平居中
  • body 中盒子 box 设置行内块 img 标签
  1. <!-- 行内块元素水平居中 -->
  2. <div class="box">
  3. <img src="https://www.php.cn/favicon.ico" alt="php" />
  4. </div>
  • css 样式 box 设置 text-align:center; 行内块图片水平居中
  1. .box {
  2. text-align: center;
  3. }

2.1.2 块元素水平居中

  • 盒子 box 包含块 p 标签元素
  1. <!-- 块元素水平居中 -->
  2. <div class="box">
  3. <p>content</p>
  4. </div>
  • 设置 css 让块元素 p 标签水平居中,设置 margin: auto; 属性
  1. /* 块元素水平居中 */
  2. .box p {
  3. margin: auto;
  4. width: 5em;
  5. height: 4em;
  6. background-color: lightsalmon;
  7. }

2.2 垂直居中

2.2.1 行内元素垂直居中

  • box 中有行内元素标签 a
  1. <!-- 行内元素垂直居中 -->
  2. <div class="box">
  3. <a href="https://php.cn" title="php">php</a>
  4. </div>
  • 行内元素 a 标签的父级 .box 高度为 8em 则设置行内元素 a 的行高 line-height 为父级 .box 的高度,即可让行内元素垂直居中,css 设置如下
  1. /* 行内元素垂直居中 */
  2. .box {
  3. height: 8em;
  4. }
  5. .box a{
  6. line-height: 8em;
  7. }

2.2.2 块元素垂直居中

  • 让块 p 标签在父级 .box 中垂直居中,且父级 .box 没有设置高度情况下
  1. <!-- 块元素垂直居中 -->
  2. <div class="box">
  3. <p>content</p>
  4. </div>
  • .box 设置 padding 挤出高度,并设置 p 的行高 line-height 为 p 的高度,让内容也居中,css 设置如下
  1. /* 块元素垂直居中 */
  2. .box {
  3. /* 去掉父级高度,改为 auto */
  4. height: auto;
  5. /* 由 padding 挤出高度 */
  6. padding: 3em 0;
  7. }
  8. .box p {
  9. width: 5em;
  10. height: 3em;
  11. background-color: lightskyblue;
  12. /* 让 p 标签的内容垂直居中,行高 = p 标签高度 3em */
  13. line-height: 3em;
  14. }
  • 附图如下

块元素垂直居中

2.3 水平且垂直居中

2.3.1 行内元素水平且垂直居中

  • 定义行内元素 a 标签在盒子 .box 内
  1. <!-- 行内元素水平居中且垂直居中 -->
  2. <div class="box">
  3. <a href="https://php.cn" title="php">php</a>
  4. </div>
  • 父级 .box 设置 text-align: center; 让行内元素 a 水平居中,设置 a 的行高与父级高度相同,实现垂直居中
  1. /* 行内元素水平居中且垂直居中 */
  2. .box {
  3. width: 10em;
  4. height: 8em;
  5. padding: 5em;
  6. /* 设置子元素 a 标签水平居中 */
  7. text-align: center;
  8. }
  9. .box a {
  10. /* 设置行高 8em 与父级高度相同,实现垂直居中 */
  11. line-height: 8em;
  12. }
  • 附上示例图

行内元素水平居中且垂直居中

2.3.2 块元素水平且垂直居中

  • 定义行块元素 p 标签在盒子 .box 内
  1. <!-- 块元素水平且垂直居中 -->
  2. <div class="box">
  3. <p>content</p>
  4. </div>
  • .box 设置 padding 挤出高度,并设置 p 的行高 line-height 为 p 的高度,让内容也居中,css 设置如下
  1. /* 块元素水平且垂直居中 */
  2. .box {
  3. /* 去掉父级高度,改为 auto */
  4. height: auto;
  5. /* 由 padding 挤出高度 */
  6. padding: 3em 0;
  7. box-sizing: border-box;
  8. }
  9. .box p {
  10. margin: 2em;
  11. width: 5em;
  12. height: 3em;
  13. background-color: lightskyblue;
  14. /* 让 p 标签的内容垂直居中,行高 = p 标签高度 3em */
  15. line-height: 3em;
  16. }
  • 附上示例图

块元素水平且垂直居中

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