当前位置:  开发笔记 > 编程语言 > 正文

如何使用CSS轻松地水平居中<div>?

如何解决《如何使用CSS轻松地水平居中<div>?》经验,为你挑选了12个好方法。

我正在尝试将一个

块元素水平居中在页面上并将其设置为最小宽度.最简单的方法是什么?我希望
元素与我的页面的其余部分内联.我将尝试绘制一个例子:

page text page text page text page text
page text page text page text page text
               -------
               | div |
               -------
page text page text page text page text
page text page text page text page text

Tivie.. 779

非固定宽度 div 的情况下(即你不知道div将占用多少空间).

#wrapper {
  background-color: green; /* for visualization purposes */
  text-align: center;
}
#yourdiv {
  background-color: red; /* for visualization purposes */
  display: inline-block;
}
Your text

请记住,宽度#yourdiv是动态的 - >它会增长和缩小以容纳其中的文本.

您可以检查Caniuse上的浏览器兼容性



1> Tivie..:

非固定宽度 div 的情况下(即你不知道div将占用多少空间).

#wrapper {
  background-color: green; /* for visualization purposes */
  text-align: center;
}
#yourdiv {
  background-color: red; /* for visualization purposes */
  display: inline-block;
}
Your text


2> Antony Scott..:

在大多数浏览器中,这将工作:

div.centre {
  width: 200px;
  display: block;
  background-color: #eee;
  margin-left: auto;
  margin-right: auto;
}
Some Text


3> Russ Cam..:
margin: 0 auto;

正如ck所说,所有浏览器都不支持min-width



4> Manoj Kumar..:

问题的标题和内容实际上是不同的,所以我将发布两个解决方案Flexbox.

我想Flexbox在IE8和IE9被彻底销毁的时候将替换/添加到当前的标准解决方案;)

检查flexbox的当前浏览器兼容性表

单个元素

.container {
  display: flex;
  justify-content: center;
}


5> wh1t3cat1k..:

如果旧浏览器不是问题,请使用HTML5/CSS3.如果是,请应用polyfill并仍然使用HTML5/CSS3.我假设你的div在这里没有边距或填充,但它们相对容易解释.代码如下.

.centered {
    position: relative;
    left: 50%;
    transform: translateX(-50%);
}

这样做是:

    定位div相对于其容器的相对位置;

    div左边界定位在其容器宽度的 50%水平位置;

    由50%的转换回水平div自身宽度.

很容易想象这个过程确认div最终将水平居中.作为奖励,您可以垂直居中,无需额外费用:

.centered-vertically {
    position: relative;
    top: 50%;
    transform: translateY(-50%);
}

这种方法的优点是你不必做任何违反直觉的事情,例如考虑你的div文本,将它包装在一个(通常在语义上无用的)附加容器中,或者给它一个固定的宽度,这不是永远可能.

transform如果需要,请不要忘记供应商前缀.



6> sjh..:

CSS,HTML:

div.mydiv {width: 200px; margin: 0 auto}
I am in the middle


7> cjk..:
.center {
   margin-left: auto;
   margin-right: auto;
}

最小宽度不是全局支持的,但可以使用

.divclass {
   min-width: 200px;
}

然后你可以设置你的div

stuff in here



8> Joshua Peker..:

您应该在父元素上使用position: relativeand text-align: center,然后display: inline-block在要居中的子元素上使用.这是一个简单的CSS设计模式,适用于所有主流浏览器.下面是一个示例或查看CodePen示例.

p {
  text-align: left;
}
.container {
  position: relative;
  display: block;
  text-align: center;
}
/* Style your object */

.object {
  padding: 10px;
  color: #ffffff;
  background-color: #556270;
}
.centerthis {
  display: inline-block;
}

Aeroplanigera Mi Psychopathologia Subdistinctio Chirographum Intuor Sons Superbiloquentia Os Sors Sesquiseptimus Municipatio Archipresbyteratus O Conclusio Compedagogius An Maius Septentrionarius Plas Inproportionabilit Constantinopolis Particularisticus.

Something Centered

Aeroplanigera Mi Psychopathologia Subdistinctio Chirographum Intuor Sons Superbiloquentia Os Sors Sesquiseptimus Municipatio Archipresbyteratus O Conclusio Compedagogius.



9> 小智..:

请使用以下代码,您的div将位于中心.

.class-name {
    display:block;
    margin:0 auto;
}



10> 小智..:

你可以margin: 0 auto在你的CSS上使用而不是margin-left: auto; margin-right: auto;



11> Orry Vanderm..:

九年后,我认为是时候推出新版本了。这是我的两个(现在是一个)收藏夹。

余量

设置marginauto。你应该知道的方向顺序margin: *top* *right* *bottom* *left*;margin: *top&bottom* *left&right*

aside{
    display: block;
    width: 50px;
    height: 100px;
    background-color: green;
    float: left;
}

article{
    height: 100px;
    margin: 0 0 0 50px; /* 50px aside width */
    background-color: grey;
}

div{
  margin: 0 auto;
  display:block;
  width: 60px;
  height: 60px;
  background-color: blue;
  color: white;
}


    
    
    
        
        
The div


12> P.Petkov..:

如果您知道div的宽度并且是固定的,则可以使用以下CSS:

margin-left: calc(50% - 'half-of-your-div-width');

其中“您的div宽度的一半”应该(显然是)div宽度的一半。

推荐阅读
php
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有