Blogger Information
Blog 34
fans 0
comment 0
visits 18320
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
0323作业-CSS盒模型、CSS相对定位和绝对定位及块元素垂直居中
千山暮雪
Original
615 people have browsed it

盒模型

盒模型
CSS盒模型由内容区(content),内边距(padding),边框(border),外边距(margin)组成。width和height设置内容框(content box)的宽度和高度。
总宽度 = 左外边距 + 左边框 + 左内边距 + 内容区宽度 + 右内边距 + 右边框 + 右外边距
总高度 = 上外边距 + 上边框 + 上内边距 + 内容区高度 + 下内边距 + 下边框 + 下外边距
为方便排版,工作中常常使用box-sizing:border-box样式转化为html盒模型,width=content+padding+border(此时,当width、padding、border设定时,那么content会随着实际的宽度进行自动缩放;)
border-box

示例:

width和heigth都为200px,padding为5px,border为1px,在默认情况下,box占用了width+padding+border= 212

1

使用box-sizing:border-box后,width和heigth仍为200px,content压缩成了188.

]

  1. <!doctype html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta name="viewport"
  6. content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0">
  7. <meta http-equiv="X-UA-Compatible" content="ie=edge">
  8. <title>Document</title>
  9. <style>
  10. * {
  11. margin: 0;
  12. padding: 0;
  13. font-size: 10px;
  14. box-sizing: border-box;
  15. }
  16. .box {
  17. border: 1px solid red;
  18. height: 20em;
  19. width: 20em;
  20. padding: 0.5em;
  21. margin: 1em;
  22. background-color: lightgreen;
  23. }
  24. </style>
  25. </head>
  26. <body>
  27. <div class="box"></div>
  28. </body>
  29. </html>

相对定位position: relative;

相对于元素框在文档流中的原始位置进行定位。元素框仍在文档流中。

相对定位

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. .pos_left {
  10. position: relative;
  11. left: -30px;
  12. }
  13. .pos_right {
  14. position: relative;
  15. right: -30px;
  16. }
  17. </style>
  18. </head>
  19. <body>
  20. <h3>这是正常位置</h3>
  21. <h3 class="pos_left">这个位置相对于正常位置向左</h3>
  22. <h3 class="pos_right">这个位置相对于正常位置向右</h3>
  23. </body>
  24. </html>

绝对定位position: absolute;

设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。

示例:

当没有相对定位元素时,从初始html定位。
初始定位
当有相对定位元素时,从相对定位元素定位。
相对元素

代码如下:其它代码相同,区别在是否开启position: relative;关闭效果为上图,开启效果如下图。

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. }
  14. .gf {
  15. height: 40em;
  16. width: 40em;
  17. background-color: darkkhaki;
  18. }
  19. .parent {
  20. /* 父级元素相对定位 */
  21. position: relative;
  22. background-color: lightgreen;
  23. height: 20em;
  24. width: 20em;
  25. top: 5em;
  26. left: 5em;
  27. border: 1px solid #000000;
  28. }
  29. .box {
  30. /* 子级元素绝对定位 */
  31. position: absolute;
  32. height: 10em;
  33. width: 10em;
  34. left: 15em;
  35. top: 15em;
  36. background-color: lightpink;
  37. }
  38. </style>
  39. </head>
  40. <body>
  41. <div class="gf">祖级元素
  42. <div class="parent">
  43. 父级元素
  44. <div class="box">绝对定位</div>
  45. </div>
  46. </div>
  47. </body>
  48. </html>

块元素的垂直居中方法

position: absolute;
left: 0;
top: 0;
bottom: 0;
right: 0;
margin: auto;
垂直居中

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>Document</title>
  8. <style>
  9. * {
  10. margin: 0;
  11. padding: 0;
  12. box-sizing: border-box;
  13. font-size: 10px;
  14. }
  15. .parent {
  16. /* 父级元素相对定位 */
  17. position: relative;
  18. background-color: lightgreen;
  19. height: 20em;
  20. width: 20em;
  21. top: 5em;
  22. left: 5em;
  23. }
  24. .box {
  25. /* 子级元素绝对定位 */
  26. position: absolute;
  27. height: 10em;
  28. width: 10em;
  29. left: 0;
  30. top: 0;
  31. bottom: 0;
  32. right: 0;
  33. margin: auto;
  34. background-color: lightpink;
  35. }
  36. </style>
  37. </head>
  38. <body>
  39. <div class="parent">
  40. 父级元素
  41. <div class="box">绝对定位</div>
  42. </div>
  43. </body>
  44. </html>
Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post