如何使div内的元素居中

Posted

技术标签:

【中文标题】如何使div内的元素居中【英文标题】:How to center element inside of a div 【发布时间】:2013-07-28 07:07:39 【问题描述】:

我想将.SideBarFirst div的内容居中,但不知道如何实现。

有人可以帮我解决一个不是基于向元素添加 paddingleft/right 值的解决方案吗?

CSS:

body 
    width: 960px;
    margin: 0 auto;
 

.content 
    width:500px; 
    float: left;


.SideBarFirst 
    width:460px; 
    float: right;


.SideBarFirst div 
    width: 40px;
    margin: 0 auto; 

html

<body>
    <div class="content">test</div>
    <div class="SideBarFirst">
        <div>not working for center</div>
    </div>
</body>

我当前的代码:http://jsfiddle.net/mmnaderi/yTCkx/

【问题讨论】:

首先在正文中删除宽度和边距:0 auto 这里有两种简单的方法可以让一个 div 中的元素居中,垂直居中,水平居中或两者兼而有之(纯 CSS):***.com/a/31977476/3597276 是的,显示表格和 flex 对于响应式网站来说不是安全的解决方案!示例:在显示表中显示一个大图像这个 div 比例和超过 100%。 我的问题是为什么有时margin 0 auto inside off margin 0 autoworking但有时不工作??? 【参考方案1】:

删除这个:

body 
    width: 960px;
    margin: 0 auto;
 

使用这个:

HTML

<div class="content">test</div>
<div class="SideBarFirst">
    <div>not working for center</div>
</div>

CSS:

.content width:500px; float : left;

.SideBarFirst width:460px; float : right;

.SideBarFirst div 
    width: 40px;
    margin: 0 auto; 

See This Fiddle

【讨论】:

我看到你刚刚从正文中删除了 css 我已经看过了,我知道你在编写代码时所做的更改 正文宽度和边距自动有什么问题 其实我不知道。这是一种奇怪的行为:| 哈哈,他没有做错任何事,他只是给身体宽度,这就是全部,根据 css 规则,它不是好的做法,请参阅我的评论,我已经在那里提到过 为什么身体宽度有问题?【参考方案2】:

您的问题是您将元素浮动到左侧,以便它始终出现在左侧。如果您想将其居中,请将您的 css 更改为:

.content width:500px; float : left;

.SideBarFirst width:460px; float : right;

.SideBarFirst div 
    width: 40px;
    margin: 0 auto; 

也删除这个:

body 
    width: 960px;
    margin: 0 auto;
 

【讨论】:

【参考方案3】:

你可以使用 %

.SideBarFirst div 
    width: 40px;
    margin: 0 50%; 

或者你可以更粗暴地试试这个:

.SideBarFirst div 
    width: 40px;
    margin-left: 210px; 

弹性布局不适用于第二个代码

或者这个:

<div class="content">test</div>
<div class="SideBarFirst">
    <div align="center">not working for center</div>
</div>

也看这个:How to horizontally center a <div> in another <div>?

【讨论】:

【参考方案4】:

这是浏览器问题,现在已修复。

【讨论】:

以上是关于如何使div内的元素居中的主要内容,如果未能解决你的问题,请参考以下文章

如何让DIV水平和垂直居中

如何在没有绝对定位的情况下将主体元素内的 div 垂直和水平居中? [复制]

当父元素和子元素都具有不同的百分比宽度时如何使子 div 居中

元素居中

如何使孩子处于绝对位置居中

如何让div中的行内元素的文字垂直居中