css完成div水平、竖直垂直居中适配chrome、ie8

2020-10-21 13:51 jianzhan
示例1 chrome33、ie8检测根据:

拷贝编码
编码以下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf⑻" />
<style type="text/css">
/* 固定不动宽高div,在访问器中维持水平、竖直垂直居中 */
#div1 {
width:400px; height:300px;
position:absolute;
left:50%; top:50%;
margin-left:⑵00px; margin-top:⑴50px;
background:#f90;
}
</style>
</head>
<body>
<div id="div1"></div>
</body>
</html>

示例2 chrome33、ie8检测根据:

拷贝编码
编码以下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf⑻" />
<style type="text/css">
/* 固定不动宽高div在固定不动宽高div中维持水平、竖直垂直居中 */
#div1 {
width: 400px;height: 200px;
background-color: #f00;
position: relative;
/* 为div授予模块格特性,使其能够运用align特性 */
display: table-cell;
vertical-align: middle;
}
#div2 {
width: 200px;height: 100px;
background-color: #0f0;
/* 使当今标识在父标识中水平垂直居中,即0 auto 0 auto */
margin: 0 auto;
display: block;
}
</style>
<body>
<div id="div1">
<div id="div2"></div>
</div>
</body>
</html>

示例3 chrome33、ie8检测根据:

拷贝编码
编码以下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf⑻" />
<style type="text/css">
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
#div1 {
width: 400px;height: 200px;
background-color: #f00;
/* 使当今标识在父标识部位固定不动 */
position: absolute;
top: 50%;left: 50%;
margin: ⑴00px 0 0 ⑵00px;
}
#div2 {
width: 200px;height: 100px;
background-color: #0f0;
display: block;
/* 使当今标识在父标识中维持水平、竖直垂直居中 */
top: 50%;left: 50%;
margin: 50px 0 0 100px;
}
</style>
</head>
<body>
<div id="div1">
<div id="div2"></div>
</div>
</body>
</html>

示例4 chrome33检测根据,ie8检测堵塞过,参照http://www.w3school.com.cn/tiy/t.asp?f=css3_box-pack:

拷贝编码
编码以下:

<!DOCTYPE html>
<html>
<head>
<style>
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
/* 应用box-pack款式完成div中子元素垂直居中 */
#div1 {
width:350px;
height:200px;
border:1px solid black;
/* Firefox */
display:-moz-box;
-moz-box-pack:center;
-moz-box-align:center;
/* Safari, Chrome, and Opera */
display:-webkit-box;
-webkit-box-pack:center;
-webkit-box-align:center;
/* W3C */
display:box;
box-pack:center;
box-align:center;
}
#div2 {
width:100px;
height:50px;
background-color: #ff0;
border:1px solid black;
}
</style>
</head>
<body>
<div id="div1">
<div id="div2"></div>
</div>
</body>
</html>

注:对网页页面中全部元素运用box-sizing:border-box款式是以便将padding、margin值都计入width、height中,即为元素特定的任何内边距和边框都将在已设置的宽度和高宽比内开展绘图(http://www.w3school.com.cn/cssref/pr_box-sizing.asp)。在上述编码中运用该款式不经意义,可是在公司级运用中运用该款式能够降低许多页面缺点,如标识未对齐。