html 布局
水平居中&垂直居中指的都是子元素相对于父元素位置,所以页面中需要有两个元素,假设外层元素id为out,内层元素id为in。
1 2 3 4
| <div id="out"> <div id="in"/> </div>
|
水平居中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59
| // 水平居中 1 #in { margin: 0 auto; text-align: center; } // 水平居中 2 #out { display: flex; flex-direction: column; } #in { align-self: center; } // 水平居中 3 #out { display: table-cell; } #in { margin-left: 150px; } // 水平居中 4 #out { position: absolute; } #in { margin-left: 150px; } // 水平居中 5 #in { width: fit-content; margin: 0 auto; text-align: center; } // 水平居中 6 #out { display: inline-block; } #in { margin: 0 auto; text-align: center; } // 水平居中 7 #out { position: relative; } #in { float: left; margin-left: 150px; } // 水平居中 8 #in { height: 50%; width: 50%; text-align: center; position: absolute; left: 50%; transform: translate(-25%, 25%); }
|
垂直居中
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| // 垂直居中 1 #in { display: inline-block; vertical-align: middle; } // 垂直居中 2 #out { display: flex; flex-direction: row; } #in { align-self: center; } // 垂直居中 3 #out { display: table; } #in { display: table-cell; vertical-align: middle; } // 垂直居中 4 #in { position: relative; top: 50%; transform: translateY(-50%); } // 垂直居中 5 #out { position: relative; } #in { position: absolute; top: 50%; transform: tranlateY(-50%); } // 垂直居中 6 (如果子元素为文本) p#in { line-height: 300px; }
|