博客列表 >盒子大小设置内容溢出和元素水平垂直居中

盒子大小设置内容溢出和元素水平垂直居中

Jerry
Jerry原创
2020年12月20日 17:17:151359浏览

盒子大小设置

IE盒子属性 box-sizing:border-box 大小含有边框和内边距的盒子 box-sizing:content-box 原来意义上的盒子 不含边框和内边距

元素的高度:内容超出处理方式

如果盒子高度设置了固定值,内容已经超出了盒子的高度,需要用overflow属性来设置显示,隐藏或者滚动条自动

代码

  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. html {
  9. font-size: 10px;
  10. }
  11. .box {
  12. width: 20em;
  13. /* 高度可以不设置,通过内容将高度撑开,不设置固定值 */
  14. height: 20em;
  15. box-sizing: border-box;
  16. background-color: rgb(170, 240, 200);
  17. border: 1px solid #333;
  18. }
  19. /* 如果高度设置了固定值,此时内容已经超出了盒子的高度 */
  20. .box {
  21. /* 默认值是显示 可以省略不写 */
  22. overflow: visible;
  23. /* 溢出内容隐藏 */
  24. overflow: hidden;
  25. /* 使用滚动条查看被隐藏的内容 */
  26. overflow: scroll;
  27. /* 使用auto表示 溢出时显示滚动条,不溢出时不显示 */
  28. overflow: auto;
  29. }
  30. </style>
  31. </head>
  32. <body>
  33. <div class="box">
  34. 嫦娥五号任务圆满成功,彰显了中国特色制度优势。新型举国体制是突破国家重大技术短板、推进重大项目工程、实现核心关键技术顺利攻关的最大法宝。航天工程规模宏大,系统复杂,要想在相对较短时间取得巨大成就,必须集中有限的力量攻坚克难。千万颗心连着太空,亿万双手托举航天,这次嫦娥五号任务坚持自主创新、协同创新、开放创新,是探索建立新型举国体制的又一生动实践。
  35. 从新中国成立之初的“两弹一星”到新时期的“嫦娥探月工程”,无不闪烁着举国体制的光芒。实践证明,中国航天事业之所以能够不断取得新的突破,靠的就是党的集中统一领导,靠的就是跨部门、跨地区、跨专业的团结协作,靠的就是发挥社会主义制度集中力量办大事的政治优势。
  36. </div>
  37. </body>
  38. </html>

容器最小高度与最大高度

设置最小高度,内容超出后自动撑开,内容不足时按最小高度显示,不塌陷。
设置最大高度,内容超出最大高度时隐藏或加滚动条显示,内容没有超出最大高度时,按内容高度显示。

  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. body div {
  9. border: 1px solid red;
  10. width: 25em;
  11. }
  12. body div:first-of-type {
  13. /* 内容由高度撑开 */
  14. height: auto;
  15. }
  16. body div:nth-of-type(2) {
  17. min-height: 5em;
  18. /* 只设置最小高度,内容超出后自动撑开,内容不足时按最小高度显示,不塌陷 */
  19. }
  20. body div:nth-of-type(3) {
  21. max-height: 10em;
  22. /* 最大高度,内容超出最大高度时隐藏或加滚动条显示,
  23. 内容没有超出最大高度时,按内容高度显示 */
  24. background-color: turquoise;
  25. overflow: auto;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <div>2020年十大房价下跌城市:北京、郑州、青岛上榜</div>
  31. <div>2020年十大房价下跌城市:北京、郑州、青岛上榜<br /></div>
  32. <div>
  33. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  34. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  35. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  36. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  37. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  38. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  39. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  40. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  41. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  42. 2020年十大房价下跌城市:北京、郑州、青岛上榜<br />
  43. </div>
  44. </body>
  45. </html>

元素水平垂直居中

行内元素的水平居中(图片和文字)text-align: center
行内块元素水平居中 使用 margin: 0 auto 使用margin来实现块的水平居中,挤压式的居中

垂直居中(文字)通过设置行高等于盒子高度挤出垂直居中,但是这种方式对图片无效

  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. .box {
  9. width: 20em;
  10. height: 15em;
  11. background-color: violet;
  12. }
  13. .box a {
  14. /* 通过设置行高等于盒子高度挤出垂直居中 */
  15. line-height: 15em;
  16. }
  17. .box img {
  18. /* 这种设置对图片无效 图片属于是块元素 */
  19. line-height: 15em;
  20. }
  21. </style>
  22. </head>
  23. <body>
  24. <div class="box">
  25. <a href="">php.cn</a>
  26. <!-- <img
  27. src="https://img.php.cn/upload/course/000/000/001/5fae261f9c169870.png"
  28. width="150"
  29. alt=""
  30. /> -->
  31. </div>
  32. </body>
  33. </html>

垂直居中(图片和块元素) 盒子不要给高度,这个高度应该由padding挤出来。

  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>垂直居中块元素padding</title>
  7. <style>
  8. .box {
  9. width: 20em;
  10. /* 不要给高度,这个高度应该由padding挤出来 */
  11. /* height: 15em; */
  12. background-color: violet;
  13. }
  14. .box {
  15. /* 垂直居中也是挤出来的 */
  16. padding: 5em 0;
  17. }
  18. .box > div {
  19. width: 5em;
  20. height: 5em;
  21. background-color: yellow;
  22. }
  23. </style>
  24. </head>
  25. <body>
  26. <div class="box">
  27. <!-- 图片当做块元素来对待 -->
  28. <img
  29. src="https://img.php.cn/upload/course/000/000/001/5fae261f9c169870.png"
  30. width="150"
  31. alt=""
  32. />
  33. <!-- <div></div> -->
  34. </div>
  35. </body>
  36. </html>

水平和垂直居中
行内元素水平垂直居中比较简单 text-align: center
通过设置行高等于盒子高度挤出垂直居中 line-height: 15em

行内块元素水平垂直居中 padding和Margin同时挤压
最终效果
水平垂直居中

  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. .box {
  9. width: 20em;
  10. /* 不要给高度,这个高度应该由padding挤出来 */
  11. /* height: 15em; */
  12. background-color: violet;
  13. }
  14. /* 首先水平居中通过padding挤出来 */
  15. .box {
  16. padding: 5em 0;
  17. }
  18. .box > div {
  19. width: 5em;
  20. height: 5em;
  21. background-color: yellow;
  22. }
  23. /* 在垂直居中通过margin挤出来 */
  24. .box > div {
  25. margin: auto;
  26. }
  27. </style>
  28. </head>
  29. <body>
  30. <div class="box">
  31. <div></div>
  32. </div>
  33. </body>
  34. </html>
声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议