300字范文,内容丰富有趣,生活中的好帮手!
300字范文 > HTML 水平居中 垂直居中 垂直水平居中的几种实现方式

HTML 水平居中 垂直居中 垂直水平居中的几种实现方式

时间:2020-05-11 02:47:37

相关推荐

HTML 水平居中 垂直居中 垂直水平居中的几种实现方式

文章目录

水平居中垂直居中 垂直水平居中方式1:绝对定位方式二 定位+负margin方式3:使用translate实现平移方式4:通过设置bottom top left right margin来实现方式5:flex布局方式6:使用tablecell方式7:JS方式

水平居中

方法一:在父容器上定义固定宽度,margin值设成auto

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>helloworld</title></head><style type="text/css">.div1{background-color: blue;width: 200px;margin: auto;}.div2{background-color: orangered;}</style><body><div class="div1"><div class="div2">你好啊!!!!!!!!!</div></div></body></html>

方法2:在子元素中将display设置为inline-block,父元素text-algin设置为center

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>helloworld</title></head><style type="text/css">.div1{background-color: blue;text-align: center;}.div2{display: inline-block;background-color: orangered;}</style><body><div class="div1"><div class="div2">你好啊!!!!!!!!!</div></div></body></html>

垂直居中

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>helloworld</title></head><style type="text/css">.div1{width: 200px;height: 200px;display: table-cell;vertical-align: middle;text-align: center;}.div2{/*display: inline-block;*/background-color: orangered;}</style><body><div class="div1"><div class="div2">你好啊!!!!!!!!!</div></div></body></html>

<!DOCTYPE html><html><head><meta charset="utf-8" /><title>helloworld</title></head><style type="text/css">.div1{width: 200px;height: 200px;display: flex;justify-content:center;align-items:Center;}.div2{/*display: inline-block;*/background-color: orangered;}</style><body><div class="div1"><div class="div2">你好啊!!!!!!!!!</div></div></body></html>

垂直水平居中

方式1:绝对定位

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>居中</title><style>*{padding: 0;margin: 0;}.box{width: 500px;height: 400px;background: red;margin: 100px;//border: 2px;}.child{position: absolute;width: 200px;height: 150px;background: blue;margin: 125px 150px;}</style></head><body><div class="box"><div class="child"></div></div></body></html>

方式二 定位+负margin

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>居中</title><style>.child{position: fixed;width: 200px;height: 150px;background: blue;top:50%;left: 50%;margin-top: -75px;margin-left:-100px ;}</style></head><body><div class="child"></div></body></html>

方式3:使用translate实现平移

下面的transform代码可以更换为transform: translate(-50%,-50%);

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>居中</title><style>.child{position: fixed;width: 200px;height: 150px;background: blue;top:50%;left: 50%;transform: translate(-100px,-75px);}</style></head><body><div class="child"></div></body></html>

效果如上图。

方式4:通过设置bottom top left right margin来实现

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>居中</title><style>.father{width: 500px;height: 500px;background: black;position: relative;}.child{position: absolute;width: 200px;height: 150px;background: blue;top:0;left:0;right: 0;bottom: 0;margin: auto;}</style></head><body><div class="father"><div class="child"></div></div></body></html>

方式5:flex布局

最长使用,设置 display: flex;justify-content: center;align-items: center;三个属性;

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>居中</title><style>.father {display: flex;justify-content: center;align-items: center;width: 500px;height: 500px;background-color: rgb(197, 34, 34); }.child {width: 50px;height: 70px;background-color: rgb(36, 167, 64);} </style></head><body><div class="father"><div class="child"></div></div></body></html>

方式6:使用tablecell

<!DOCTYPE html><html><head><meta charset="UTF-8"><title>居中</title><style>.father {display: table-cell;vertical-align: middle;text-align: center; width: 500px;height: 500px;background-color: rgb(197, 34, 34);}.child {display: inline-block;width: 50px;height: 70px;background-color: rgb(36, 167, 64);} </style></head><body><div class="father"><div class="child"></div></div></body></html>

方式7:JS方式

<!DOCTYPE html><html lang="en"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title></head><style>.father {width: 500px;height: 500px;background-color: rgb(197, 34, 34);}.child {width: 50px;height: 70px;background-color: rgb(28, 150, 123);}</style><body><div class="father"><div class="child"></div></div></body><script>let father=document.getElementsByClassName('father')[0];let child=document.getElementsByClassName('child')[0];fatherH=father.clientHeight;fatherW=father.clientWidth;childW=child.offsetWidth;childH=child.offsetHeight;child.style.position="absolute";child.style.top=(fatherH-childH)/2+'px';child.style.left=(fatherW-childW)/2+'px';</script></html>

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。