如何使用CSS将内容集中在div中?

时间:2010-12-07 08:25:37

标签: css

如何将div中的内容水平和垂直居中?

4 个答案:

答案 0 :(得分:20)

要水平对齐,它非常直接:

    <style type="text/css"> 
body  {
    margin: 0; 
    padding: 0;
    text-align: center;
}
.bodyclass #container { 
    width: ???px; /*SET your width here*/
    margin: 0 auto;
    text-align: left;
} 
</style>
<body class="bodyclass ">
<div id="container">type your content here</div>
</body>

对于垂直对齐,这有点棘手: 这是source

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html>
<head>
  <title>Universal vertical center with CSS</title>
  <style>
    .greenBorder {border: 1px solid green;} /* just borders to see it */
  </style>
</head>

<body>
  <div class="greenBorder" style="display: table; height: 400px; #position: relative; overflow: hidden;">
    <div style=" #position: absolute; #top: 50%;display: table-cell; vertical-align: middle;">
      <div class="greenBorder" style=" #position: relative; #top: -50%">
        any text<br>
        any height<br>
        any content, for example generated from DB<br>
        everything is vertically centered
      </div>
    </div>
  </div>
</body>
</html>

答案 1 :(得分:15)

这应该符合您的需求。这是一个CSS-2D过渡技巧。我最近遇到了以下解决方案:

* {
  font-family: Arial;
  font-size: 14px;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

*:after,
*:before {
  content: "";
  display: table;
}

*:after {
  clear: both;
}

.title {
  font-family: Georgia;
  font-size: 36px;
  line-height: 1.25;
  margin-top: 0;
}

.blocks {
  position: relative;
}

.block {
  position: relative;
  display: inline-block;
  float: left;
  width: 200px;
  height: 200px;
  font-weight: bold;
  color: #FFFFFF;
  margin-right: 10px;
  margin-bottom: 10px;
}

.block:first-child {
  background-color: green;
}

.block:nth-child(2) {
  background-color: red;
}

.block:nth-child(3) {
  background-color: blue;
}

.h-center {
  text-align: center;
}

.v-center span {
  position: absolute;
  left: 0;
  right: 0;
  top: 50%;
  transform: translate(0, -50%);
}
<h1 class="title">3 Boxes with different text-align settings.</h1>
<div class="blocks">
  <div class="block h-center">horizontally centered lorem ipsun dolor sit amet</div>
  <div class="block v-center"><span>vertically centered lorem ipsun dolor sit amet lorem ipsun dolor sit amet</span></div>
  <div class="block h-center v-center"><span>horizontally and vertically centered lorem ipsun dolor sit amet</span></div>
</div>

注意:这也适用于:after和:之前的伪元素。

您还可以在此处阅读:css-tricks.com

您可以在此处进行测试:jsfiddle

答案 2 :(得分:0)

所有调整css。 如果可能的话,用桌子包起来 高度和宽度为100%和 td将其设置为垂直对齐到中间,文本对齐到中心

答案 3 :(得分:0)

通过使用transform:就像一个吊饰一样!

<div class="parent">
    <span>center content using transform</span>
    </div>

    //CSS
    .parent {
        position: relative;
        height: 200px;
        border: 1px solid;
    }
    .parent span {
        position: absolute;
        top: 50%;
        left: 50%;
        -webkit-transform: translate(-50%, -50%);
        transform: translate(-50%, -50%);
    }