我遇到了困难,因为我想居中一个 div,而通常我被告知这样做:
width: 700px;
margin-left: auto;
margin-right: auto;
问题是,这只适用于希望div具有固定宽度的情况。我希望div根据其文本调整大小,并仍然居中。我尝试过:
width: auto;
margin-left: auto;
margin-right: auto;
但是这样做没有效果。当我这样做时,它会拉伸div以填满屏幕。
有人知道在这里该怎么做吗?
我遇到了困难,因为我想居中一个 div,而通常我被告知这样做:
width: 700px;
margin-left: auto;
margin-right: auto;
问题是,这只适用于希望div具有固定宽度的情况。我希望div根据其文本调整大小,并仍然居中。我尝试过:
width: auto;
margin-left: auto;
margin-right: auto;
但是这样做没有效果。当我这样做时,它会拉伸div以填满屏幕。
有人知道在这里该怎么做吗?
对于父级块或整个页面 - text-align:center
;
对于居中块- display:inline-block
;
.center {
display: inline-block;
background: red;
}
body {
text-align: center;
}
<div class="center">
<p contenteditable="true"> write text </p>
</div>
你尝试过这里展示的方法吗?http://www.tightcss.com/centering/center_variable_width.htm
基本上,将您的内容放在一个浮动的div中,再将该浮动的div放在另一个浮动的div中。
在外部div上设置left: 50%,position:relative, 在内部div上设置left:-50%,position:relative。
最后,在一个带有overflow:hidden的嵌套div中包含所有内容。
.outermost-div{
background-color: blue;
overflow:hidden;
}
.inner-div{
float:left;
left:50%;
background-color: yellow;
position: relative;
}
.centerthisdiv {
position:relative;
left: -50%;
background-color: green;
float:right;
width:auto;
}
这是我的jsfiddle演示: http://jsfiddle.net/wbhyX/1/
您可能想尝试使用CSS display:table-cell
或display:table
<div class="container">
<div class="center_div">
</div>
</div>
.container{
float: left;
left: 50%;
position: relative;
}
.center_div{
position: relative;
left: -50%;
float: left;
}
zloctb在2013年8月30日4:14的回答原则上是有效的,但不完整。如果您希望元素的宽度基于其中的内容,并且在其父元素中居中,但其子元素内部的内容左对齐,则执行以下操作(因为这确实是最简单的方法):
.parent {
width: 100%;
text-align: center;
}
.parent div.child {
display: inline-block;
text-align: left;
width: auto;
}
水平居中一个元素可能会有点奇怪,因为这个功能并不是很直观。实际上,你需要使用 text-align:center;
和 margin:auto;
进行一些调整,并且需要知道何时使用哪个。
例如,如果我想要将一个元素(包括按钮和输入框)的内容居中显示,我可以使用 text-align:center
。
.text-center {
text-align:center;
}
<div class="text-center" style="border:1px dashed blue;padding:6px;" >
My contents are centered! That includes my <input placeholder="inputs" /> and my <button>buttons.</button>
</div>
.text-center {
text-align:center;
}
<div class="text-center" style="border:1px dashed blue;padding:6px;" >
My contents are centered! That includes my <input placeholder="inputs" /> and my <button>buttons.</button>
<p style="background-color:orange;width:auto" >Even though my width is explicitly defined as "auto," I still have 100% width! What gives?!</p>
</div>
margin: auto
样式将其居中于父元素中。
<div style="margin:auto;border:1px solid black;width:300px;" >
I am centered!
</div>
.outer-container { position: relative; left: 50%; float: left; clear: both; margin: 10px 0; text-align: left; }
.inner-container { background: red; position: relative; left: -50%; text-align: left; }
编辑:
使用 table
,样式会更容易处理。然后在 tr
中添加 div
。