1

再会。

我知道如果你想绝对居中一个 div,你可以这样做:

<div id="parent">
   <div id="child">blahblah</div>
</div>

CSS:

#parent{
   width: 500px;
   height: 500px;
   position: absolute; /*(or relative)*/
   top: 50%;
   left: 50%;
   margin-top: -250px;
   margin-left: -250px;
   text-align: center;
}

如果父 div 是流体 div 怎么办?你怎么绝对居中它的意思:

#parent{
  max-width: 500px;
  max-height: 500px;
  top: 50%; ->is this right?
  left: 50%; -> is this right?
  margin-top: ???;
  margin-left: ???;
  text-align: center;
}
4

3 回答 3

0

由于widthandheight是流动的,您需要使用 javascript 或 jQuery。只需在标签中添加以下代码head。(下面的例子是在 javascript 中

<script>
   window.onresize = function(){
      //To work even on resize
      getToMiddle();
   }
   window.onload = function(){
      getToMiddle();
   }

   function getToMiddle(){
      var box = document.getElementById('parent');
      var height = box.offsetHeight;
      var width = box.offsetWidth;
      box.style.top = -(height/2);
      box.style.left = -(width/2);
   }
</script>

你的CSS会是这样的:

#parent{
   max-width: 500px;
   max-height: 500px;
   background-color:green;
   position:absolute;
   top: 50%;
   left: 50%;
  /* width: 10%;
   height: 10%; */
}

测试,给width: 10%; and height: 10%

工作小提琴

于 2013-03-08T11:42:05.307 回答
0

这可以单独使用 CSS 完成。

#parent {
  position: absolute;
  max-width: 500px;
  max-height: 500px;
  width: 100%;
  height: 100%;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}

见演示https://jsfiddle.net/matharden/8kmvt8qd/

于 2016-09-27T17:33:38.510 回答
0

我将简单地使用flex来实现这一点......

#parent {
  display: flex;
  justify-content: center;
}
<div id="parent">
  <div id="child">blahblah</div>
</div>

于 2016-09-27T17:37:31.890 回答