960

我有一个div公司标记为宽度设置为800像素。当浏览器宽度大于800像素,它不应该拉伸div公司,但应该放在页面中间。

1
  • 2
    你可以使用柔性接线盒应用显示:flex;对齐项目:居中;justify-content:中心 2021年3月2日16:50

27个答案27

重置为默认值
1251
<body><div style=“width:800px;margin:0 auto;”>居中的内容</div></body>
10
  • 50
    这对于演示来说是正确的,但显然没有在最终标记中使用内联样式
    – 猎蛇人
    2009年6月5日10:36
  • 67
    只需确保将“text-align:center”应用于<body>,否则IE6将不会使div居中。然后添加text-alignt:left;给你的女主角。 2009年6月5日15:08
  • 2
    请务必检查IE6或7的HTML模式。如果您使用除4.01严格你可能有问题。大多数情况下,text-align的工作原理与avdgaag所说的一样。 2011年10月6日10:05
  • 1
    @rybo111那么你不需要了。想法是“left”是默认的水平对齐,如果没有恢复,那么整个div将继承“text-align:center”。 2015年10月8日23:54
  • 6
    为什么使用宽度:800px?这对所有屏幕都有效吗? 2015年10月14日14:25
349

位置:绝对然后顶部:50%左:50%将上边缘放置在屏幕的垂直中心,将左边缘放置在水平中心,然后通过添加边缘顶部到div高度的负值,即-100将其移到100以上,类似地边缘左侧。这将获得div公司正好在页面的中心。

#输出弹出窗口{位置:绝对;宽度:300px;高度:200px;z指数:15;最高:50%;左:50%;边距:-100px 0 0-150px;背景:红色;}
<div id=“outPopUp”>

9
  • 16
    谢谢,你的答案是唯一的跨浏览器解决方案,应该被接受。。。值得一提的是,如果在顶部和底部有其他div,它也可以与“position:relative”一起使用(在本例中,只有“left:50%”和“margin:0px-150px;”是重要的)。
    – 马库斯
    2013年11月22日14:51
  • 4
    位置:fixed对我很有用,可能对添加的div已经位于绝对/相对div树中的任何其他人都最有用。 2014年5月28日14:04
  • 1
    “位置:固定”效果更好 2016年12月1日20:48
  • 7
    使用转换:translateX(-50%)比使用负边距来解释div的宽度更通用。平移Y和高度也适用 2017年12月7日21:39
  • 1
    这个答案并不是非常灵活,如果div的维度是动态的,那么就几乎不可用了。 2022年8月16日1:16
181

柔性接线盒解决方案是进入/从2015年开始的途径。justify-content:中心用于父元素将内容与它的中心对齐。

HTML格式

<div class=“container”>中心</div>

CSS公司

.容器{显示:flex;justify-content:中心;}

输出

.容器{显示:flex;justify-content:中心;}.中心{宽度:400px;填充:10px;背景:#5F85DB;颜色:#fff;font-weight:粗体;font-family:宋体;}
<div class=“container”><div class=“center”>居中div,文本左对齐</div(分频)></div>

2
  • 如您所见,它为css公司 2020年4月17日18:37
  • 2
    仅供参考,以便您设置垂直对齐对齐项目:居中:证明内容的合理性表示X轴和对齐-项目是Y。 2022年10月14日20:15
69
<div>
div公司{显示:表格;边缘-右侧:自动;左边距:自动;}
4
  • 4
    这就是我需要的。谢谢。使用投票结果更高的答案只会有助于定位弹出窗口。这个答案有助于将任何div水平放置在中间。 2017年1月5日12:48
  • 有趣的是,这是最简单的答案,也是唯一正确的答案。应该得到更多的选票。
    – A.卡利
    2019年10月2日17:13
  • 这个CSS必须是最好的方法。您可以在这里设置宽度80%,然后在内直径中设置为100%。这样,它将随着浏览器大小的调整而正确缩放。我很喜欢。非常感谢。
    – 编码EE
    2020年4月27日14:51
  • 你可以使用边距:自动;(它传播) 2023年3月31日4:28
65
  1. 你的意思是你想把它垂直居中还是水平居中?你说你指定了高度设置为800像素,并希望在宽度比那更伟大。。。

  2. 要水平居中,可以使用边距:自动;CSS中的属性。此外,您必须确保身体html格式元素没有任何边距或填充:

html,正文{边距:0;填充:0;}#centeredDiv{margin-right:自动;margin-left:自动;宽度:800px;}
0
41

要使其在Internet Explorer 6中也能正常工作,您必须按以下步骤进行:

HTML格式

<body><div class=“centered”>以内容为中心</div></body>

CSS公司

车身{边距:0;填充:0;文本对齐:居中;/**/}.居中{边距:0自动;文本对齐:左;宽度:800px;}
1
  • 或者走出怪癖模式,使用严格模式,当你想使用悬停、自动边缘等功能时,这会有很大帮助。 2011年10月6日10:06
36

Div在父级内部垂直和水平居中,而不固定内容大小

在这一页上这是一个很好的概述,有几个解决方案,太多的代码无法在这里共享,但它展示了什么是可能的。。。

我个人喜欢这个解决方案使用著名的转换转换-50%的技巧最多。它适用于元素的固定(%或px)和未定义高度和宽度。
代码简单如下:

HTML格式:

<div class=“center”><div>

CSS(客服代表):

.中心{位置:绝对;左:50%;最高:50%;-moz变换:平移(-50%,-50%);/*火狐浏览器*/-ms-transform:翻译(-50%,-50%);/*工业工程9*/-webkit-transform:翻译(-50%,-50%);/*Safari和Chrome*/-o转换:转换(-50%,-50%);/*歌剧*/转换:转换(-50%,-50%);/*可选大小(px或%):*/宽度:100px;高度:100px;}

给你一把小提琴这表明它是有效的

4
  • 第二个环节被有效打破(“此网页是免费的…”). 2019年3月24日11:07
  • @PeterMortensen我改进了我的答案,将链接替换为具有类似解决方案的新链接,并在答案中添加代码,以防止将来出现此类问题(仅链接的答案不好)。还删除了第一个解决方案的链接,因为它实际上并不太好。
    – 威尔特
    2019年3月24日16:19
  • 这对我很管用。当你没有在css中指定div的宽度,并且你也决定在css里指定宽度时,它也管用。谢谢您。
    – 约瑟夫
    2019年4月14日16:12
  • 在我看来,这个解决方案无疑是最好的。为什么它的选票这么少?我唯一想更改的是删除浏览器特定的CSS扩展声明:转型这些天都是独自做这项工作。 2022年8月16日1:12
31

您也可以这样使用:

<div style=“width:60%;margin:0px auto;”>您在此处的内容。。。</div>
1
  • 当您不想将宽度设置为800px的固定像素时,这个答案很有用。大小可以是80%,它将覆盖80%的可用屏幕大小,这看起来更加动态。 2017年3月7日23:19
23

只需使用中心标记就在身体标记,并结束中心标签就在前面身体末端:

<body><中心>…此处是您的代码。。。</中心></body>

这对我所有尝试过的浏览器都有效。

5
  • 44
    这个<中心>标记为html4中已弃用
    – 曼斯
    2012年5月11日10:52
  • 11
    它可能已经贬值了,但它仍然是最简单的解决方案,适用于所有浏览器。 2015年8月16日2:41
  • @BillMasters可能现在正在工作,但在未来的某个时候它会过时。 2016年12月15日7:46
  • 4
    @MohammadUsman我认为这个标签比一些花哨的ES6模块npm依赖性狗屎还耐用。
    – 测试
    2017年8月30日9:02
  • 1
    <中心>是我们都需要的救世主。
    – 黎明
    2018年6月10日15:18
20

这可以通过flex容器轻松实现。

.容器{宽度:100%;显示:flex;高度:100vh;justify-content:中心;}.项{对齐-自身:居中;}

预览链接

13

将这个类添加到要居中的div(应该有一个设置的宽度):

边距自动LR{边缘-右侧:自动;边缘左侧:自动;}

或者,将边距添加到div类中,如下所示:

.div类{宽度:300px;边缘-右侧:自动;边缘左侧:自动;}
  • PS,这是边距:0自动; 2015年1月27日23:03
  • @克里斯阿普林这对我来说很好。你是因为这个才投反对票的吗?没有必要。有人无缘无故地否决了这个,这对我来说很好,我到处都用它。 2016年2月26日14:50
  • 1
    .divClass工作时没有宽度:300px;谢谢!!! 2017年3月12日1:06
12

使用CSS flex属性:http://jsfiddle.net/cytr/j7SEa/6/show/

正文{/*居中*/显示:框;flex-align:中心;flex-pack:中心;}
2
  • 1
    这在IE上不起作用吗?
    – 乌迈尔
    2014年4月10日19:53
  • 这是现在不使用/不支持的旧Flex语法。
    – 牙刷
    2018年9月28日15:19
8
.中间{边距:0自动;文本对齐:居中;}

/*它将div带到中心*/

1
  • 这也将文本与div对齐
    – 错了
    2019年7月21日13:44
7

来自旧代码的一些其他预先存在的设置将阻止div页面居中L&R,这些设置包括:

  1. 隐藏在外部样式表链接中的其他类。
  2. 其他类嵌入到类似国际货币基金组织(与旧的外部CSS打印格式控件类似)。
  3. 带有ID和/或CLASSES的图例代码将与命名的div公司类。
6

居中但不指定div宽度:

车身{文本对齐:居中;}主体*{文本对齐:初始;}车身隔板{显示:嵌入式块;}

这有点像<中心>标记可以,但以下情况除外:

  • 所有直接内联子元素(例如。<h1>)第页,共页<中心>也将定位在中心
  • 内联块元素可以有不同的大小(比较显示:块设置)根据浏览器默认值
1
  • 只要<div style=“text-align:center;”>就足够了 2021年2月11日20:13
6

使用以下代码将分频箱居中:

.box内容{边距:自动;顶部:0;右:0;底部:0;左:0;位置:绝对;宽度:800px;高度:100px;背景色:绿色;}
<div class=“框内容”></div>

1
  • 这对我来说效果最好,最简单、最直接的方法是在页面中心对齐div 2021年3月6日8:43
6

如果你有一些常规内容,而不是只有一行文本,我知道的唯一可能的原因是计算边距。

下面是一个示例:

HTML格式

<div id=“超级容器”><div id=“middlecontainer”>第一个<div id=“container”>第三名</div></div></div>

CSS公司

车身{边距:0;填充:0;}.普通{边框:1px纯黑色;}#超级容器{宽度:1200px;背景:浅绿色;浮动:左;}#中间集装箱{浮动:左;宽度:104px;边距:0 549px;}#集装箱{浮动:左;}#第一个{背景:红色;高度:102px;宽度:50px;浮动:左;}#秒{背景:绿色;高度:50px;宽度:50px;}#第三{背景:黄色;高度:50px;宽度:50px;}

所以,#超级容器是你的吗“整页”及其宽度1200像素.

#中间集装箱div公司您的网站内容;它是宽度 102像素。如果宽度如果内容已知,则需要将页面大小除以2,然后减去内容的一半宽度根据结果:1200 / 2 - (102 / 2) = 549;

是的,我也看到这是粗呢呢CSS失败。

6

父母{位置:相对;}孩子{位置:绝对;左:50%;转换:translateX(-50%);}
<父级><儿童></child></父级>

5

使用正当内容对齐-项目水平和垂直对齐div公司

https://developer.mozilla.org/de/docs/Web/CSS/justify-content网站 https://developer.mozilla.org/en/docs/Web/CSS/align-items网站

html中,车身,.容器{高度:100%;宽度:100%;}.容器{显示:flex;对齐项目:居中;justify-content:中心;}.mydiv文件{宽度:80px;}
<div class=“container”><div class=“mydiv”>h&v对齐</div></div>

1
  • 这应该是公认的答案。。。。
    – 用户8967105
    2020年6月8日14:20
5
正文,html{显示:表格;高度:100%;宽度:100%;}.容器{显示:table-cell;垂直对齐:中间;}.容器.box{宽度:100px;高度:100px;背景:红色;边距:0自动;}

http://jsfiddle.net/NPV2E/

“body”标记的“width:100%”只是一个示例。在实际项目中,可以删除此属性。

1
  • 我推荐安德烈的解决方案。在各个方面都能很好地发挥中心作用。 2017年7月14日19:49
4

简单http://jsfiddle.net/8pd4qx5r/

html格式{显示:表格;高度:100%;宽度:100%;}车身{显示:table-cell;垂直对齐:中间;}.内容{边距:0自动;宽度:260px;文本对齐:居中;背景:粉红色;}
4

这在Internet Explorer中也适用,但自动边距不适用。

.居中{位置:绝对;显示:嵌入式块;左:-500px;宽度:1000px;利润率:0 50%;}
1
2

如果你的中心内容深入到其他div中,那么只有边距可以拯救你。没有别的了。当我不使用类似这样的框架时,我总是要面对它引导数据库.

2

在我的情况下,手机屏幕大小未知,下面是我所做的。

HTML格式

<div class=“loadingImg”></div>

CSS公司

.加载Img{位置:固定;顶部:0px;左:0px;z指数:9999999;边框:0;背景:url('../images/loading.gif')无重复中心;背景尺寸:50px 50px;显示:块;边距:0自动;-webkit-border-radius:50px;边距:50px;}

JavaScript脚本(在你需要展示这个DIV之前)

$(“.loadingImg”).css(“高度”,$(文档).height());$(“.loadingImg”).css(“width”,$(document).width());$(“.loadingImg”).show();
1
<body><div style=“display:table;margin:250 auto;”>在中间</div></body>

如果要更改垂直位置,请更改值250,然后可以根据需要安排内容。无需提供宽度和其他参数。

1

出于某种原因,之前的答案对我来说都不起作用。这就是我的工作原理,它也适用于浏览器:

.中心{文本对齐:居中;高度:100%;/*Safari、Opera和Chrome*/显示:-webkit-box;-webkit-box-pack:中心;-webkit-box-align:居中;/*火狐浏览器*/显示:-moz-box;-moz-box-pack:中心;-moz-box-align:中心;/*Internet Explorer 10*/显示:-ms-flexbox;-ms-flex-pack:中心;-ms-flex-align:中心;}
1
  • 获取屏幕的宽度。
  • 然后剩余25%的利润
  • 使利润率右移25%

这样,容器的内容将位于中间。

示例:假设容器宽度=800px;

<div class='container'width='device-width'id='updatedContent'><p id=“我的内容”></p><contents></contents><目录></div>if($(“#myContent”).parent===$(“updatedContent”(更新内容)){$(“#myContent”).css({“左”:“-(设备宽度/0.25)像素”;“右”:“-(设备宽度/0.225)像素”;});}

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.