核心提示:1、水平居中:(1)行内元素设置父元素:text-align:centerheadstyle type=text/css#out{width:200px;height:100px;background...
1、水平居中:
(1)行内元素
设置父元素:
text-align:center
<head> <style type="text/css"> #out{ width:200px; height:100px; background-color:red; text-align:center; } </style> </head> <body> <p id="out"> <span>CSS</span> </p> </body>
(2)非行内元素
a、设置子元素:
width
margin:auto
<head> <style type="text/css"> #out{ width:200px; height:100px; background-color:red; } #in{ width:50px; height:25px; background-color:yellow; margin-left:auto; margin-right:auto; } </style> </head> <body> <p id="out"> <p id="in"></p> </p> </body>
b、设置父元素和子元素
设置父元素:
text-align:center
设置子元素:
display:inline-block
<head> <style type="text/css"> #out{ width:200px; height:100px; background-color:red; text-align:center; } #in{ width:50px; height:25px; background-color:yellow; display:inline-block; } </style> </head> <body> <p id="out"> <p id="in"></p> </p> </body>
2、垂直居中
(1)行内元素
设置子元素:
line-height:父元素height
<head> <style type="text/css"> #out{ width:200px; height:100px; background-color:red; } span{ line-height:100px; } } </style> </head> <body> <p id="out"> <span>CSS</span> </p> </body>
(2)非行内元素
设置父元素:
position:relative
设置子元素:
position:absolute
margin-top:(父元素height-子元素height)/2
<head> <style type="text/css"> #out{ position: relative; width: 200px; height: 100px; background: red; } #in{ position: absolute; width: 100px; height: 50px; background: yellow; margin-top: 25px; } </style> </head> <body> <p id="out"> <p id="in"></p> </p> </body>
3、水平和垂直居中
(1)在浏览器窗口中水平和垂直居中
设置:
position:fixed
left:50%
top:50%
margin-top:-height/2
margin-left:-width/2
<head> <style type="text/css"> #out{ position: fixed; width: 800px; height: 400px; background: red; margin: -200px 0 0 -400px; left: 50%; top:50%; } } </style> </head> <body> <p id="out"></p> </body>
(2)子元素在父元素中水平和垂直居中
父元素:
position:fixed
子元素:
position:absolute
left:50%
top:50%
margin-left:-(width+2*padding)/2
margin-top:-(height+2*padding)/2
<head> <style type="text/css"> #out{ position: fixed; width: 400px; height: 200px; background: red; } #in{ width: 100px; height: 50px; background: yellow; padding: 20px; position: absolute; top: 50%; left: 50%; margin-left: -70px; /* (width + padding)/2 */ margin-top: -45px; /* (height + padding)/2 */ } </style> </head> <body> <p id="out"> <p id="in"></p> </p> </body>