<div id=“outer”> Foo-Foo </div>
-
37 在这些伟大的答案中,我只想强调的是,你必须给“#内部”一个“宽度”,否则它将是“100%”,你无法判断它是否已经居中。 – 乔尼 2017年11月7日8:22 -
1 显示:flex; 是最容易记住的(Chrome在DevTools中为您提供指南),并支持在两个轴上居中。 – 阿克沙伊·K·奈尔 2022年2月10日5:39 -
要使用CSS在另一个div中水平居中,可以在外部div上使用display:flex属性和justify-content:center – 奥马尔·萨阿德 3月8日8:18
132个答案
#内部{ 边框:0.05em纯黑色; } #外部{ 边框:0.05em实心红色; 宽度:100%; 显示:flex; justify-content:中心; }
<div id=“outer”> Foo-Foo </div>
#内部{ 宽度:50%; 边距:0自动; }
#内部{ 显示:表格; 边距:0自动; }
#内部{ 显示:表格; 边距:0自动; 边框:1px纯黑色; } #外部{ 边框:1px纯红色; 宽度:100% }
<div id=“outer”> Foo-Foo </div>
-
25 -
1 -
20 -
2 投票最多,但不是更好的解决方案。 最好的方法是结合使用div和span标记、block-css属性和跨浏览器内联块,文本中心将执行简单的magin 2017年4月20日2:07 -
1
旧的盒子模型(已弃用)
#外部{ 宽度:100%; /*Firefox浏览器*/ 显示:-moz-box; -moz-box-pack:中心; -moz-box-align:中心; /*Safari和Chrome浏览器*/ 显示:-webkit-box; -webkit-box-pack:中心; -webkit-box-align:居中; /*W3C公司*/ 显示:框; 盒子包装:中心; 盒对齐:居中; } #内部{ 宽度:50%; }
<div id=“outer”> Foo-Foo </div>
带有Flexbox的现代盒子模型
#外部{ 显示:flex; 柔性方向:行; 柔性缠绕:缠绕; justify-content:中心; 对齐项目:居中; }
阅读有关居中子元素的更多信息
#外部{ 位置:相对; } /*和*/ #内部{ 边距:自动; 位置:绝对; 左:0; 右:0; 顶部:0; 底部:0; }
<div id=“outer”> Foo-Foo </div>
-
18 +1对于这个方法,我正要用它来回答。注意,你必须在想要水平居中的元素上声明一个宽度(或者如果垂直居中则声明一个高度)。 下面是一个全面的解释: codepen.io/shshaw/full/gEiDt 。一种更通用、支持更广泛的方法,用于将元件垂直和/或水平居中。 – stvn同步 2013年12月16日18:27 -
9
<div class=“box”> <div class=“item1”>A B类 <div class=“item3”>C </div>
.box文件{ 显示:flex; 柔性包裹:包裹;/* 可选。 只有当你想要包裹物品时*/ justify-content:中心;/* 用于水平对齐*/ align-items:居中;/* 用于垂直对齐*/ }
.box文件{ 显示器:柔性; 柔性缠绕:缠绕; /*可选。 只有当你想要包裹物品时*/ justify-content:中心; /*用于水平对齐*/ 对齐项目:居中; /*用于垂直对齐*/ } * { 边距:0; 填充:0; } html, 车身{ 高度:100%; } .box文件{ 高度:200px; 显示:flex; 柔性缠绕:缠绕; justify-content:中心; 对齐项目:居中; 边框:2px实心番茄; } .box目录{ 边距:0 10px; 宽度:100px; } .项目1{ 高度:50px; 背景:粉红色; } .项目2{ 背景:棕色; 高度:100px; } .项目3{ 高度:150px; 背景:橙色; }
<div class=“box”> <div class=“item1”>A B类 <div class=“item3”>C </div>
-
-
9 Flexbox规范经历了三次主要修订。 最新的草案是从2012年9月开始的,该草案正式否决了之前的所有草案。 然而,浏览器支持并不稳定(尤其是旧的Android浏览器): stackoverflow.com/questions/15662578/… 2013年10月1日20:33 -
-
7 @WouterVanherck取决于 弯曲方向 值。 如果是“row”(默认值)-那么 justify-content:中心; 用于水平对齐(如我在答案中提到的)如果是“列”-那么 justify-content:中心; 用于垂直对齐。 – 丹尼尔 2017年3月22日12:29
将未知高度和宽度的div居中
.内容{ 位置:绝对; 左:50%; 顶部:50%; 转换:转换(-50%,-50%); }
<div class=“content”>这适用于任何内容
-
三 -
#外部{ 宽度:100%; 高度:100%; 显示:框; 盒子方向:水平; 盒子包装:中心; 盒对齐:居中; }
<div id=“outer”> Foo-Foo </div>
$(函数(){ $('#inner').show().width($(''#inerTable').widdh()).css('margin','0auto'); });
<script src=“ https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js “></script> <div id=“inner”style=“display:none;”> <form action=“”> <table id=“innerTable”> 姓名: 电子邮件: 电子邮件: </表格> </form> </div>
<div style=“width:100%;”> 文本 </div>
<div style=“width:100%;text-align:center;”> <div style=“width:50%;margin:0px auto;text-align:left;”>文本 </div>
#外部{ 位置:相对; } #内部{ 位置:绝对; 左:50%; 转换:translateX(-50%); }
<div id=“outer”> Foo-Foo </div>
-
5 可能还需要供应商前缀: -webkit-transform:翻译(-50%,0); -moz变换:平移(-50%,0); -ms-transform:翻译(-50%,0); -khtml-transform:转换(-50%,0); -o-变换:平移(-50%,0); 2015年9月2日13:48
div#外部{ 高度:120px; 背景色:红色; } div#内部{ 宽度:50%; 高度:100%; 背景颜色:绿色; 边距:0自动; 文本对齐:居中;/* 用于将文本水平居中对齐*/ 线高:120px;/* 用于将文本垂直居中对齐*/ }
<div id=“outer”style=“width:100%;”> Foo-Foo </div>
<div id=“outer”style=“width:100%;”> <div class=“inner”>Foo文本</div> Foo文本 Foo文本 <div class=“internal”></div> <div class=“internal”></div> <div class=“internal”></div> <div class=“internal”></div> <div class=“inner”></div> Foo文本 </div>
仅水平居中
容器:
应该有 文本对齐:居中;
内容框:
应该有 显示:嵌入式块;
演示:
.容器{ 宽度:100%; 高度:120px; 背景:#CCC; 文本对齐:居中; } .中心内容{ 显示:嵌入式块; 背景:#FFF; 填充:20px; 边框:1px实心#000; }
<div class=“container”> <div class=“centered-content”> 居中! </div> </div>
水平和垂直居中
外部容器:
应该有 显示:表格;
内部容器:
应该有 显示:table-cell; 应该有 垂直对齐:中间; 应该有 文本对齐:居中;
内容框:
应该有的 显示:嵌入式块;
演示:
.外部容器{ 显示:表格; 宽度:100%; 高度:120px; 背景:#CCC; } .内部控制器{ 显示:table-cell; 垂直对齐:中间; 文本对齐:居中; } .中心内容{ 显示:嵌入式块; 背景:#FFF; 填充:20px; 边框:1px实心#000; }
<div class=“outer-container”> <div class=“inner-container”> <div class=“centered-content”> 居中! </div> </div> </div>
#外部{/*div.container*/ 显示:flex; justify-content:中心; /*用于水平对齐*/ 对齐项目:居中; /*用于垂直对齐*/ }
<div id=“outer”> Foo-Foo </div>
柔性接线盒
#内部{ 显示:嵌入式块; } #外部{ 显示:flex; justify-content:中心; }
<div id=“outer”> Foo-Foo </div>
文本对齐:居中
#内部{ 显示:嵌入式块; } #外部{ 文本对齐:居中; }
<div id=“outer”> Foo-Foo </div>
边距:0自动
#内部{ 显示:表格; 边距:0自动; }
<div id=“outer”> Foo-Foo </div>
转换
#内部{ 位置:绝对; 左:50%; 转换:转换(-50%,0%); }
<div id=“outer”> Foo-Foo </div>
<中心>
(已弃用)
#内部{ 显示:嵌入式块; }
<div id=“outer”> <中心> Foo-Foo </中心> </div>
#外部{ 显示:flex; justify-content:中心; }
<div id=“outer”> Foo-Foo </div>
.外部 --全宽度 .内部 --未设置宽度(但可以指定最大宽度)
包裹 .内部 里面 .中心帮助器 制造商 .中心帮助器 内联块; 它的大小与 .内部 使其宽300像素。 推动 .中心帮助器 相对于母公司50%的权利; 这将其左侧设置为外500像素。 推动 .内部 相对于母公司剩余50%; 这将其左侧放置在-150像素wrt.center辅助对象处,这意味着其左侧放置在500-150=350像素wrt.outer处。 将溢出设置为 .外部 隐藏以防止水平滚动条。
车身{ 字体:medium sans-serif; } .外部{ 溢出:隐藏; 背景色:狗仔队; } .中心帮助器{ 显示:嵌入式块; 位置:相对; 左:50%; 背景色:巴利伍德; } .内部{ 显示:嵌入式块; 位置:相对; 左:-50%; 背景色:小麦色; }
<div class=“outer”> <div class=“center-helper”> <div class=“内部”> <h1>没有定义宽度的div</h1> <p>Lorem ipsum悲哀坐在amet,奉献敬爱的精英< br> 杜伊斯调味品sem non-turpis consectetur blandit< br> Donec dictum risus id orci ornare tempor的名言< br> Proin pharetra预言了一个lorem elementum molestie< br> Nunc nec就坐在amet nisi temp viverra就坐在一个ipsum</ p>(第页) </div> </div> </div>
#外部{ 页边距-顶部:100像素; 高度:500像素;/* 你可以设置任何你想要的*/ 边框:1像素实心#ccc; } #内部{ 边框:1像素实心#f00; 位置:相对; 最高:50%; 转换:translateY(-50%); }
#集装箱{ 显示:表格; 高度:/*容器的高度*/; width:/*容器的宽度*/; } #内部{ 显示:table-cell; 边距:0自动; 文本对齐:居中; 垂直对齐:中间; width:/*您的中心div的宽度*/; }
#外部{ 显示:flex; 调整内容:居中; }
#外部{ 显示:flex; justify-content:中心 }
<div id=“outer”> <div id=“inner”>Foo Foo</div> </div>
#外部{ 显示:-webkit-box; 显示:-ms-flexbox; 显示:flex; 宽度:100%; -webkit-box-pack:中心; -ms-flex-pack:中心; justify-content:中心 }
或者其他
#内部{ 位置:绝对; 左:50%; 转换:转换(-50%) }
<div id=“outer”> Foo-Foo </div>
#内部{ 位置:绝对; 左:50%; -webkit-transform:翻译(-50%); -ms-transform:翻译(-50%); 转换:转换(-50%) }
边距:自动0;
文本对齐:居中;
#外部{ 文本对齐:居中; 显示:块;/* 或者内联块-根据您的需要*/ } #内部 { 位置:相对; 边距:0自动;/* 这样很好*/ }
-
-
我测试它,我的问题是将子项设置为中心,必须在您有多个子项时,使用更多倍的边距:0自动字体回答,但是,文本对齐中心,对于父项,请将此子项设置在中心,即使它们是元素而不是文本,也要测试并查看发生了什么 – 肺炎 2013年12月4日8:35 -
-