css未知宽高的盒子div居中的多种方法

  不知道盒子大小、宽高时,如何让盒子上下左右居中?

  应用场景:比如上传图片时,并不知道图片的大小,但要求图片显示在某盒子的正中央。

方法1:让4周的拉力均匀-常用

<!--
Author: XiaoWen
Create a file: 2017-01-13 13:46:47
Last modified: 2017-01-13 14:05:04
Start to work:
Finish the work:
Other information:
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      margin:0;
      padding:0;
    }
    #box1{
      width: 100px;
      height: 100px;
      background: #ccc;
      position:relative;
    }
    #box2{
      width: 20px;
      height: 20px;
      background: #f00;
      position:absolute;
      top:0; /* 四周拉力相同 */
      right:0; /* 四周拉力相同 */
      bottom:0; /* 四周拉力相同 */
      left:0; /* 四周拉力相同 */
      margin:auto; /* 再设置 marign 自动 */
    }

  </style>
</head>
<body>
  <div id="box1">
    <div id="box2"></div>
  </div>
</body>
</html>

方法2:c3的属性,移动自己大小的一半

<!--
Author: XiaoWen
Create a file: 2017-01-13 13:46:47
Last modified: 2017-01-13 14:07:09
Start to work:
Finish the work:
Other information:
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      margin:0;
      padding:0;
    }
    #box1{
      width: 100px;
      height: 100px;
      background: #ccc;
      position:relative;
    }
    #box2{
      width: 20px;
      height: 20px;
      background: #f00;
      position:absolute;
      top:50%;
      left:50%;
      transform:translate(-50%,-50%);
    }

  </style>
</head>
<body>
  <div id="box1">
    <div id="box2"></div>
  </div>
</body>
</html>

知道自身高度的情况下,使用负边距,-margin自身高度的一半

<!--
Author: XiaoWen
Create a file: 2017-01-13 13:46:47
Last modified: 2017-01-13 14:02:45
Start to work:
Finish the work:
Other information:
-->
<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style>
    *{
      margin:0;
      padding:0;
    }
    #box1{
      width: 100px;
      height: 100px;
      background: #ccc;
      position:relative;
    }
    #box2{
      width: 20px;
      height: 20px;
      background: #f00;
      position:absolute;
      left:50%;
      top:50%;
      margin-left:-10px; /* 知道自己大小的情况,自身高度的一半 */
      margin-top:-10px; /* 知道自己大小的情况,自身高度的一半 */
    }

  </style>
</head>
<body>
  <div id="box1">
    <div id="box2"></div>
  </div>
</body>
</html>
时间: 2024-12-13 08:36:15

css未知宽高的盒子div居中的多种方法的相关文章

CSS未知宽高元素水平垂直居中

方法一 思路:显示设置父元素为:table,子元素为:cell-table,这样就可以使用vertical-align: center,实现水平居中优点:父元素(parent)可以动态的改变高度(table元素的特性)缺点:IE8以下不支持 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>未知宽高元素水平垂直居中&l

如何实现不确定宽高的盒子上下左右居中

图片素材: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <style> img{ position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin: auto; } </style>

css 宽高自适应的div 元素 如何居中 垂直居中

在我们 编写css 样式的时候经常会遇见一个问题 那就是一个 宽高未知的元素 要让他 垂直居中如何实现这个呢 下面是我常用的两种方法 上代码 下面的是 结构代码 <div class="wrap">//此处为父组件 我们会设置父级的宽高并让其居中 <div class="center">//子组件我们要实现它的垂直居中 不设置他的宽高 宽高 都由下面的img引入的图片撑开 <img width="100px" src

css如何实现未知宽高div中图片垂直水平居中效果

css如何实现未知宽高div中图片垂直水平居中效果:在有时候可能有这样的情况,那就是想让一个图片在div中实现垂直水平居中效果,但是有时候div的尺寸是位置的,下面通过代码实例介绍一下在这种情况下如何实现图片的垂直水平居中效果.代码如下:实例一: <!DOCTYPE html> <html> <head> <meta charset=" utf-8"> <meta name="author" content=&q

div+css实现未知宽高元素垂直水平居中

div+css实现未知宽高元素垂直水平居中.很多同学在面试的时候都会遇到这样的问题:怎么用div+css的方法实现一个未知宽高的弹出框垂直水平居中??如果用JS的话就好办了,但是JS的使用会对页面性能造成影响,而且能用CSS实现的干嘛用JS呢,嘿嘿 <!DOCTYPE html> <html> <head lang="en"> <meta charset="UTF-8"> <title>div+css实现未

css/css3实现未知宽高元素的垂直居中和水平居中

其实在平常的一些布局中也经常有要实现元素的垂直居中和水平居中的的需要,下面来写几种css/css3实现的未知宽高元素的水平和垂直居中的写法 ps:不考虑兼容问题(下次会写js实现元素的水平and垂直居中 ) 第一种 css3的transform .ele{ /*设置元素绝对定位*/ position:absolute; /*top 50%*/ top: 50%; /*left 50%*/ left: 50%; /*css3 transform 实现*/ transform: translate(

未知宽高div水平垂直居中3种方法

<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> </head> <body> <!--方法1:一个未知宽高的弹出框,水平垂直居中--> <div style="position:relative;width:100%;height:600px;border:1px solid #888">方法1 <div

网页元素居中攻略记_(5)未知宽高元素绝对居中

题外话 以前,我们要自适应全局居中,需要借助JS或者JQ来实现,现在有了CSS3就可以省去好多功夫了,为什么这么说!! 请看比较: 传统的绝对居中 #container{ position:abosolute; top:50%; left:50%; margin-left:-包含块宽度的一半(如 -300px ); margin-top: -包含块高度的一半; } 这种是实现了包含块的绝对居中,但是有一个问题,就是宽高度无法自适应(需固定宽高)-比如动态增加数据的时候,用这个就不大合适了-.这时

table-cell实现未知宽高图片,文本水平垂直居中在div

<BODY> <h1>未知宽高的图片水平垂直居中在div</h1> <!--box-outer--> <div class="box-outer"> <div class="box"> <img src="images/01.jpg" /> </div> </div> <!--box-outer--> <h1>多行文