css div上下左右居中

相信大家都会遇到这样的问题,要求一个块上下左右居中,在这里我总结了几个好用的方法

1.已知要居中的块width height

假设  content 要在f里上下左右居中

<div class="f"><div class="content"></div></div>

<style>

.f{

width: 800px;

height: 800px;

  position:relative;

}

.content{

  width:500px;

height:500px;

  position:absolute;

  top:50%;

  left:50%;

  margin-top:-250px;

  margin-left:-250px;

}

</style>

这样子相对于父上下左右居中,,这是常见的一种解决方案原理就是子相对于父绝对定位,先下移左移50%,此时子的左上脚在父的中心,再回移自己的宽高一半,即可居中。

2.已知宽,不知高,(确定高度的也可用)

.f{

width: 800px;

height: 800px;

}

.content{

  width:500px;

height:auto;

  margin:auto auto

}

这种方法明显比第一种简化很多。

但前两种方法都是在已知宽度的情况下才行,,应用场景不够全面。下面说一种 终极方法,我自己也在很多场景下应用到了

3.不知 width height

.toast {

border-radius: 5px;

position: fixed;

top: 50%;

left: 50%;

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

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

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

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

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

z-index: 12;

background: rgba(0,0,0,0.7);

color: #fff;

padding: 5px 10px;

line-height: 20px;

font-size: 16px;

text-align: center;

}

这是我写的toast提示的样式,在未知宽高的情况下相对屏幕上下左右居中。

原理与第一个相似,都是先相对父级移50%;再相对自己移回-50%;

时间: 2024-11-05 18:44:41

css div上下左右居中的相关文章

css:子元素div 上下左右居中方法总结

最近在面试,不停地收到了知识冲击,尤其是对于一些基础的css.html.js问题居多,所以自我也在做反思,今天就css问题,如何让一个子元素div块元素上下左右居中 (以下总结方法,都已得到验证). 情景一:一个浏览器页面中,只有一个div模块,让其上下左右居中 解决方案:  { position:fixed;  left:0; right:0; top:0; bottom:0; margin:auto; } 备注:此处小编使用position:fixed为最佳方案,因为position:fix

元素div 上下左右居中方法总结

情景一:一个浏览器页面中,只有一个div模块,让其上下左右居中 解决方案:  { position:fixed;  left:0; right:0; top:0; bottom:0; margin:auto; } 情景二:一个父元素div,一个已知宽度.高度的子元素div(200*300) 解决方案: 1.position布局 { position:absolute/fixed; top:50%; left:50%; margin-left:-100px; margin-top:-150px;}

关于一个div上下左右居中的css方法

1:通过position:absolute定位,上下左右的值都设为0,margin:auto:需要知道div的宽高 { width: 64px; height: 64px; border: 1px solid red; position: absolute; top: 0; left: 0; bottom: 0; right: 0; margin: auto; } 2:需要知道div的宽高,通过定位移动的页面的宽高一半的位置,再通过margin-top和margin-left的移动该div的宽高

css+div上下左右自适应居中

以前想要把登录表单始终放置在页面的中间,花了不少心思,一直以来用的解决方法都是用js,感觉有点麻烦不是很好,于是在网上查询了一下发现了一种比较的实现方法. 原理就是用position:absolute,然后用left:50%,top:50%,现在登录表单左侧直角是在页面的中间了,但是登录框本身还有宽度和高度,所以我们再用margin-left:-登录框宽度,margin-top:-登录框高度,就可以让登录框显示在页面的正中间了. <!DOCTYPE html> <html> <

原生 js 让div上下左右居中

html 里写出一个div, css给div 定宽高和背景色: <div class="boxes"> </div> <style type="text/css"> .boxes{ width: 200px; height: 200px; background: #CCCCCC; } </style> 上面绘出的是一个宽高给为200的背景色为浅灰色的框框. 现在要让这个div 相对于浏览器居中,通过一段javascri

div上下左右居中

css实现: <style type="text/css"> .middle{   width:300px;     height:200px;     position:absolute;     left:50%;     top:50%;     margin:-100px 0 0 -150px ;   border:1px solid red;    }</style></head> <body>    <div class

CSS div 图片居中

<style>.box { /*非IE的主流浏览器识别的垂直居中的方法*/ display: table-cell; vertical-align:middle; /*设置水平居中*/ text-align:center; /* 针对IE的Hack */ *display: block; *font-size: 175px;/*约为高度的0.873,200*0.873 约为175*/ *font-family:Arial;/*防止非utf-8引起的hack失效问题,如gbk编码*/ width

让一个div 上下左右居中

方法1:.div1{         width:400px;         height:400px;         border:#CCC 1px solid;         background:#99f;         position:absolute;         left:50%;         top:50%;         transform: translate(-50%,-50%);}                        <div class=&quo

jquery设置一个不固定高度的div 上下左右居中

$(window).resize(function(){ $(".mydiv").css({ position: "absolute", left: ($(window).width() - $(".mydiv").outerWidth())/2, top: ($(window).height() - $(".mydiv").outerHeight())/2 }); }); // 然后在页面加载时 $(function(){