文档管理中心

Html5-CSS之元素的五大居中方式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:


Html5-CSS之五大居中方式


你是不是也对元素居中的知识点很是模糊?是不是苦于找不到一个总结的通俗易懂的说明?是不是自己懒得去总结?恭喜你,搜到这篇博客! 这是鄙人在前端的学习与实践中总结出的元素的五大居中方式,黏贴了代码并对代码做了解释,希望对迷茫的有所帮助!


下面的居中示例中,统一使用了同一个div作为父元素和p作为子元素

设置一个div,并且设置了div的宽高边框,div里面设置一个块元素p,设置了它的宽高和背景色


css居中方式1


<!doctype html>

<html>

<head>

<meta charset='utf-8'>

<title>五大居中1</title>

<style>

*{margin:0;}

div{width:200px;height:300px;border:2px solid #000;margin:200px auto;

text-align:center;font-size:0;

}

div p{width:100px;height:100px;background:#666;

display:inline-block;vertical-align:middle;

}

div:after{content:'';display:inline-block;height:100%;vertical-align:middle;}



</style>

</head>

<body>


<div>

<p></p>

</div>


</body>

</html>


这里利用了伪元素让子元素p在div盒子里左右水平居中只需要在它的父元素div里加text-align:center;垂直方向居中需要在父元素后面加了一个伪元素,并使得样式为inline-block;height:100%;就是和父元素一样高,vertical-align:middle;垂直居中,也就是p元素相对与伪元素居中,由于伪元素和div一样高,所以相当于p元素在div里垂直居中。


css居中方式2


<!doctype html>

<html>

<head>

<meta charset='utf-8'>

<title>五大居中2</title>

<style>

*{margin:0;}

div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;}

p{position:absolute;left:0;bottom:0;right:0;top:0;margin:auto;width:100px;height:100px;background:#f99;}

</style>

</head>

<body>


<div>

<p></p>

</div>


</body>

</html>


这里利用了定位居中


子元素p设置position:absolute脱离文档流,默认以html作为父元素,所以我们给父元素div设置position:relative;使得p以div为父元素做位置的变动,left:0;tight:0;top:0;bottom:0;(只有设置了定位的元素才可以使用这种方式来移动),最后margin:auto;就会水平和垂直都居中。


css居中方式3


<!doctype html>

<html>

<head>

<meta charset='utf-8'>

<title>五大居中3</title>

<style>

*{margin:0;}

div{display:flex;justify-content:center;align-items:center;width:300px;height:400px;border:1px solid #000;margin:100px auto;}

p{width:100px;height:100px;background:#f99;}

</style>

</head>

<body>


<div>

<p></p>

</div>


</body>

</html>


这里利用了弹性盒居中

父元素div设置成弹性盒样式,justify-content:center;主轴居中

align-items:center;垂直居中(而且这两个只能设置在父元素上,弹性盒知识)


css居中方式4


<!doctype html>

<html>

<head>

<meta charset='utf-8'>

<title>五大居中4</title>

<style>

*{margin:0;}

div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;}

p{width:100px;height:100px;background:#f99;position:absolute;

left:50%;top:50%;margin:-50px 0 0 -50px;}

</style>

</head>

<body>


<div>

<p></p>

</div>


</body>

</html>


利用定位线左上角居中,然后左移子元素宽度的一半,再上移子元素高度的一半。


css居中方式5


<!doctype html>

<html>

<head>

<meta charset='utf-8'>

<title>五大居中5</title>

<style>

*{margin:0;}

div{position:relative;width:300px;height:400px;border:1px solid #000;margin:100px auto;}

p{position:absolute;width:100px;height:100px;background:#f99;left:50%;top:50%;

transform:translate(-50%,-50%);}

</style>

</head>

<body>


<div>

<p></p>

</div>


</body>

</html>


利用动画移动属性transform


结语

相信看了上面的有关Html5、css的元素五大居中方式,你们就可以解决自己的小问题了,但是也要养成一个总结的好习惯。好记性不如烂笔头!以前留下来的话语总是有他的道理。Come on!

————————————————

版权声明:本文为CSDN博主「我是天之涯」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:






点赞
收藏
回复
分享
举报
浏览407 发布于2019-11-12 08:37未知归属地
全部评论
最多点赞
最新发布
最早发布
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。