我有一个设置为800 像素div
的标签。当浏览器宽度大于800 像素时,不应拉伸,但应将其拉至页面中间。width
div
27 回答
<body>
<div style="width:800px; margin:0 auto;">
centered content
</div>
</body>
position: absolute
然后将top:50%
顶部left:50%
边缘放置在屏幕的垂直中心,将左边缘放置在水平中心,然后添加margin-top
到 div 高度的负数,即 -100 将其向上移动 100 ,对于margin-left
. 这div
恰好位于页面的中心。
#outPopUp {
position: absolute;
width: 300px;
height: 200px;
z-index: 15;
top: 50%;
left: 50%;
margin: -100px 0 0 -150px;
background: red;
}
<div id="outPopUp"></div>
Flexbox解决方案是进入/从 2015 年开始的方式。justify-content: center
用于父元素将内容与其中心对齐。
HTML
<div class="container">
<div class="center">Center</div>
</div>
CSS
.container {
display: flex;
justify-content: center;
}
输出
.container {
display: flex;
justify-content: center;
}
.center {
width: 400px;
padding: 10px;
background: #5F85DB;
color: #fff;
font-weight: bold;
font-family: Tahoma;
}
<div class="container">
<div class="center">Centered div with left aligned text.</div>
</div>
你的意思是要垂直居中还是水平居中?您说您将 指定
height
为 800 像素,并希望 div 在width
大于 800 时不拉伸...要水平居中,您可以使用
margin: auto;
CSS 中的属性。此外,您必须确保body
andhtml
元素没有任何边距或填充:
html, body { margin: 0; padding: 0; }
#centeredDiv { margin-right: auto; margin-left: auto; width: 800px; }
<div></div>
div {
display: table;
margin-right: auto;
margin-left: auto;
}
要使其在 Internet Explorer 6 中也能正常工作,您必须执行以下操作:
HTML
<body>
<div class="centered">
centered content
</div>
</body>
CSS
body {
margin: 0;
padding: 0;
text-align: center; /* !!! */
}
.centered {
margin: 0 auto;
text-align: left;
width: 800px;
}
你也可以像这样使用它:
<div style="width: 60%; margin: 0px auto;">
Your contents here...
</div>
Div 在父级内部垂直和水平居中而不固定内容大小
此页面上的此处是一个很好的概述,其中包含多种解决方案,此处共享的代码太多,但它显示了可能的...
就我个人而言,我最喜欢这个具有著名的转换转换 -50% 技巧的解决方案。它适用于元素的固定(% 或 px)和未定义的高度和宽度。
代码很简单:
HTML:
<div class="center"><div>
CSS:
.center {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
-ms-transform: translate(-50%, -50%); /* for IE 9 */
-webkit-transform: translate(-50%, -50%); /* for Safari */
/* optional size in px or %: */
width: 100px;
height: 100px;
}
这是一个表明它有效的小提琴
只需在center
标签之后使用body
标签,并在结束center
之前body
结束标签:
<body>
<center>
... Your code here ...
</center>
</body>
这对我尝试过的所有浏览器都有效。
这可以通过 flex 容器轻松实现。
.container{
width: 100%;
display: flex;
height: 100vh;
justify-content: center;
}
.item{
align-self: center;
}
将此类添加到要居中的 div 中(应具有设定的宽度):
.marginAutoLR
{
margin-right:auto;
margin-left:auto;
}
或者,将边距内容添加到您的 div 类中,如下所示:
.divClass
{
width:300px;
margin-right:auto;
margin-left:auto;
}
使用CSS flex 属性:http: //jsfiddle.net/cytr/j7SEa/6/show/
body { /* Centered */
display: box;
flex-align: center;
flex-pack: center;
}
来自旧代码的其他一些预先存在的设置将阻止 div 页面居中 L&R 是:
- 隐藏在外部样式表链接中的其他类。
- 其他类嵌入在类似的东西中
img
(比如旧的外部 CSS 打印格式控件)。 - 带有 ID 和/或 CLASSES 的图例代码将与命名
div
类冲突。
如果您有一些常规内容,而不仅仅是一行文本,我知道的唯一可能原因是计算边距。
这是一个例子:
HTML
<div id="supercontainer">
<div id="middlecontainer">
<div class="common" id="first">first</div>
<div id="container">
<div class="common" id="second">second</div>
<div class="common" id="third">third</div>
</div>
</div>
</div>
CSS
body {
margin: 0;
padding: 0;
}
.common {
border: 1px solid black;
}
#supercontainer {
width: 1200px;
background: aqua;
float: left;
}
#middlecontainer {
float: left;
width: 104px;
margin: 0 549px;
}
#container {
float: left;
}
#first {
background: red;
height: 102px;
width: 50px;
float: left;
}
#second {
background: green;
height: 50px;
width: 50px;
}
#third {
background: yellow;
height: 50px;
width: 50px;
}
所以,#supercontainer
是你的"whole page"
和它width
的1200px
。
#middlecontainer
包含您网站的div
内容;它是width
102px
。如果width
已知内容,则需要将页面大小除以 2,然后width
从结果中减去一半内容:1200 / 2 - (102 / 2) = 549;
是的,我也看到这是CSS 的严重失败。
在不指定 div 宽度的情况下居中:
body {
text-align: center;
}
body * {
text-align: initial;
}
body div {
display: inline-block;
}
这类似于<center>
tag 所做的事情,除了:
- 的所有直接内联子元素(例如
<h1>
)<center>
也将定位到中心 display:block
根据浏览器默认值,inline-block 元素可以具有不同的大小(与设置相比)
使用以下代码使 div 框居中:
.box-content{
margin: auto;
top: 0;
right: 0;
bottom: 0;
left: 0;
position: absolute;
width: 800px;
height: 100px;
background-color: green;
}
<div class="box-content">
</div>
parent {
position: relative;
}
child {
position: absolute;
left: 50%;
transform: translateX(-50%);
}
<parent>
<child>
</child>
</parent>
body, html {
display: table;
height: 100%;
width: 100%;
}
.container {
display: table-cell;
vertical-align: middle;
}
.container .box {
width: 100px;
height: 100px;
background: red;
margin: 0 auto;
}
“body”标签的“width:100%”只是一个例子。在实际项目中,您可以删除此属性。
.middle {
margin:0 auto;
text-align: center;
}
/* 将 div 带到中心 */
使用justify-content
andalign-items
水平和垂直对齐div
https://developer.mozilla.org/de/docs/Web/CSS/justify-content https://developer.mozilla.org/en/docs/Web/CSS/align-items
html,
body,
.container {
height: 100%;
width: 100%;
}
.container {
display: flex;
align-items: center;
justify-content: center;
}
.mydiv {
width: 80px;
}
<div class="container">
<div class="mydiv">h & v aligned</div>
</div>
简单的http://jsfiddle.net/8pd4qx5r/
html {
display: table;
height: 100%;
width: 100%;
}
body {
display: table-cell;
vertical-align: middle;
}
.content {
margin: 0 auto;
width: 260px;
text-align: center;
background: pink;
}
这也适用于 Internet Explorer,但自动边距不适用。
.centered {
position: absolute;
display: inline-block;
left: -500px;
width: 1000px;
margin: 0 50%;
}
如果您的中心内容位于其他 div 的深处,那么只有 margin 可以拯救您。没有其他的。当不使用像Bootstrap这样的框架时,我总是面对它。
就我而言,手机屏幕尺寸是未知的,这就是我所做的。
HTML
<div class="loadingImg"></div>
CSS
.loadingImg{
position: fixed;
top: 0px;
left: 0px;
z-index: 9999999;
border: 0;
background: url('../images/loading.gif') no-repeat center;
background-size: 50px 50px;
display: block;
margin: 0 auto;
-webkit-border-radius: 50px;
border-radius: 50px;
}
JavaScript(在您需要显示此 DIV 之前)
$(".loadingImg").css("height",$(document).height());
$(".loadingImg").css("width",$(document).width());
$(".loadingImg").show();
<body>
<div style=" display: table; margin: 250 auto;">
In center
</div>
</body>
如果你想改变垂直位置,改变250的值,你可以根据需要排列内容。不需要给出宽度和其他参数。
出于某种原因,以前的答案都没有真正对我有用。这对我有用,它也适用于浏览器:
.center {
text-align: center;
height: 100%;
/* Safari, Opera, and Chrome */
display: -webkit-box;
-webkit-box-pack: center;
-webkit-box-align: center;
/* Firefox */
display: -moz-box;
-moz-box-pack: center;
-moz-box-align: center;
/* Internet Explorer 10 */
display: -ms-flexbox;
-ms-flex-pack: center;
-ms-flex-align: center;
}
- 获取屏幕的宽度。
- 然后留出25%的边距
- 使保证金正确 25%
这样,您的容器的内容将位于中间。
示例:假设容器宽度 = 800px;
<div class='container' width='device-width' id='updatedContent'>
<p id='myContent'></p>
<contents></contents>
<contents></contents>
</div>
if ($("#myContent").parent === $("updatedContent"))
{
$("#myContent").css({
'left': '-(device-width/0.25)px';
'right': '-(device-width/0.225)px';
});
}