父元素text-align:center;子元素:inline-block;
優點:相容性好;
不足:需要同時設定子元素和父元素
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>水平居中1</title> <style> .parent { width: 500px; height: 400px; background: red; text-align: center; } .child { display: inline-block; width: 300px; height: 100px; background: blue; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
#子元素margin:0 auto;
#優點:相容性好
缺點:需要指定寬度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>水平居中1</title> <style> .parent { width: 500px; height: 400px; background: red; } .child { width: 300px; height: 100px; background: blue; margin:0 auto; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
子元素{display:table;margin:0 auto;}
優點:只需要對自己進行設定
不足:IE6,7需要調整結構
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>水平居中1</title> <style> .parent { width: 500px; height: 400px; background: red; } .child { width: 300px; height: 100px; background: blue; margin:0 auto; display:table;margin:0 auto;s } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
父元素:relative;子元素:absolute;left:50%;margin-left:-寬度的一半
##缺點:需要知道子元素的寬度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>水平居中1</title> <style> .parent { width: 500px; height: 400px; background: red; position: relative; top: 0; left: 0; } .child { width: 300px; height: 100px; background: blue; position: absolute; top: 0; left: 50%; margin-left: -150px; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
缺點:不需要知道子元素的寬度
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>水平居中1</title> <style> .parent { width: 500px; height: 400px; background: red; position: relative; top: 0; left: 0; } .child { width: 300px; height: 100px; background: blue; position: absolute; top: 0; left: 50%; transform: translate(-50%,0); } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>水平居中1</title> <style> .parent { width: 500px; height: 400px; background: red; display: flex; justify-content: center; } .child { width: 300px; height: 100px; background: blue; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
#### ##vertical-align:center;#########
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>水平居中1</title> <style> .parent { width: 500px; height: 400px; background: red; display:table-cell; vertical-align:middle; } .child { width: 300px; height: 100px; background: blue; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>垂直居中1</title> <style> .parent { width: 500px; height: 400px; background: red; vertical-align:middle; line-height:450px; } .child { width: 300px; height: 100px; background: blue; display:inline-block; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html> <!-- 这种方法需要知道父元素和子元素的高度,父元素的line-height的值为父元素高度减去子元素高度的一半。-->
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>垂直居中1</title> <style> .parent { width: 500px; height: 400px; background: red; position: relative; top: 0; left: 0; } .child { width: 300px; height: 100px; background: blue; position: absolute; top: 50%; left:0; transform: translate(0,-50%); } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>垂直居中1</title> <style> .parent { width: 500px; height: 400px; background: red; display: flex; align-items: center; } .child { width: 300px; height: 100px; background: blue; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>垂直居中1</title> <style> .parent { width: 500px; height: 400px; background: red; display:table-cell; vertical-align:middle; text-align:center; } .child { width: 300px; height: 100px; background: blue; display: inline-block; } </style> </head> <body> <p class="parent"> <p class="child"></p> </p> </body> </html>
以上是關於CSS佈局技巧的總結分享的詳細內容。更多資訊請關注PHP中文網其他相關文章!