您的位置:首页 > Web前端 > CSS

CSS实现水平垂直居中方式

2017-09-15 00:00 891 查看
1、定位

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

<head>
<meta charset="UTF-8" />
<title>CSS水平垂直居中实现方式--定位实现</title>
<style type="text/css"> *{ margin: 0; padding: 0;
} .p{
/*父元素为除了static以外的定位方式*/ position: relative;
/*position: absolute;*/
/*position: fixed;*/ width: 500px; height: 500px; border: 1px solid red;
} .c{
/*子元素为绝对定位*/ position: absolute; width: 200px; height: 200px;
/*top、bottom、left和right 均设置为0*/ top: 0; bottom: 0; left: 0; right: 0;
/*margin设置为auto*/ margin:auto; border: 1px solid green;
}
</style>
</head>

<body>
<div class="p">
<div class="c"> 子元素 </div>
</div>

</body>

</html>


效果:



2、table-cell布局

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

<head>
<meta charset="UTF-8" />
<title>CSS水平垂直居中实现方式--定位实现</title>
<style type="text/css"> *{ margin: 0; padding: 0;
} .p{ width: 500px; height: 500px; border: 1px solid red; display: table-cell;
/*vertical-align: middle; 实现垂直居中*/ vertical-align: middle;
} .c{ width: 200px; height: 200px; border: 1px solid green;
/*margin: 0 auto; 实现水平居中*/ margin: 0 auto;
}
</style>
</head>

<body>
<div class="p">
<div class="c"> 子元素 </div>
</div>

</body>

</html>


效果同上。

3、flex布局

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

<head>
<meta charset="UTF-8" />
<title>CSS水平垂直居中实现方式--定位实现</title>
<style type="text/css"> * { margin: 0; padding: 0;
} .p { width: 500px; height: 500px; border: 1px solid red;
/*flex 布局*/ display: flex;
/*实现垂直居中*/ align-items: center;
/*实现水平居中*/ justify-content: center;
} .c { width: 200px; height: 200px; border: 1px solid green;
}
</style>
</head>

<body>
<div class="p">
<div class="c"> 子元素 </div>
</div>

</body>

</html>


效果同上,注意浏览器兼容性问题

4、translate+relative定位

核心代码实现请看示例代码中的注释:

<!DOCTYPE html>
<html lang="zh">

<head>
<meta charset="UTF-8" />
<title>CSS水平垂直居中实现方式--定位实现</title>
<style type="text/css"> * { margin: 0; padding: 0;
} .p { width: 500px; height: 500px; border: 1px solid red;
} .c { width: 200px; height: 200px; border: 1px solid green;
/*relative 定位*/ position: relative;
/*top和left偏移各为50%*/ top: 50%; left: 50%;
/*translate(-50%,-50%) 偏移自身的宽和高的-50%*/ transform: translate(-50%, -50%);
}
</style>
</head>

<body>
<div class="p">
<div class="c"> 子元素 </div>
</div>

</body>

</html>


效果同上,注意浏览器兼容性问题
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: