这就是我想要的:
text text text text text text text text text text text
text text text text text text text text text text text
+-----------+
| some text |
+-----------+
text text text text text text text text text text text
text text text text text text text text text text text
...“some text”块是div。我希望div是包含其文本而不包装所需的最小宽度。如果文字太长而不适合没有包装,那么它可以包装。
我不想为div设置明确的宽度。我也不想设置min-width或max-width;就像我说的那样,如果有太多的文字要包含在一行而没有包装,那么如果包装就没关系。
答案 0 :(得分:71)
默认情况下,DIV元素是块级的,这意味着它们自动获得100%的宽度。要更改它,请使用此CSS ...
.centerBox {
display:inline-block;
text-align:center;
}
<div class="centerBox">
Some text
</div>
编辑:已更新为使用CSS类而不是内联属性,并将“block”更改为“inline-block”
答案 1 :(得分:6)
<style type="text/css">
/* online this CSS property is needed */
p.block {
text-align: center;
}
/* this is optional */
p.block cite {
border: solid 1px Red;
padding: 5px;
}
</style>
<p>Some text above</p>
<p class="block"><cite>some text</cite></p>
<p>Some text below</p>
提示:不要将DIV用于文本块(用于SEO和更好的语义用途)
答案 2 :(得分:6)
我不知道,这里的解决方案似乎部分正确,但后来却没有真正奏效。根据Josh Stodola的回答,这是一个跨浏览器的解决方案,在Firefox,Safari,Chrome和IE 7,8和8中进行了测试。 9
CSS:
body {
text-align: center;
}
#centered-div {
text-align: left;
background: #eee;
display: inline-block;
/* IE7 bs - enables inline-block for div-elements*/
*display: inline;
zoom: 1;
}
标记:
<div id="centered-div">
Cum sociis natoque penatibus et magnis dis<br />
parturient montes, nascetur ridiculus mus.
</div>
要添加IE6支持(叹气),请将_height: [yourvalue]
添加到div。是的,带下划线。
在JSFiddle上自己测试:http://jsfiddle.net/atp4B/2/
答案 3 :(得分:5)
向Josh Stodola道具,尽管他并不完全正确。所需的财产是:
display: inline-block;
这解决了我的问题。耶!
答案 4 :(得分:2)
以下是我正在寻找的一个例子:
(jsFiddled here:http://jsfiddle.net/yohphomu/)
警告:
我是一名CSS狂热分子!!!
如果我正确理解你的问题,就不需要设置高度或宽度,因为它们的默认设置是auto(可以说你可以使用auto),但唯一的问题是如果你想改变它背景或放置一个边框,它将使它超过所需的字段。为什么会这样,我们如何解决它,请继续阅读。
或者只是复制并研究这个例子。
任何有这个问题的人都没有意识到事情(假设你有这个问题而且正在使用div)div标签之间的任何东西都被认为是(为了理解目的)一套完整的集合,这意味着在那个div中是你所有的东西希望它代表(计算机做他们被告知的事情,而不是你想要他们做什么)所以(例如)为了将text-align设置为center它需要整行空间和(最终)如果它有一个边界,它将与它使用的所有空间接壤。如果您理解了这一点,那么如果不好就无法帮助您。
现在我们了解会发生什么,我们该如何解决?好吧,我们需要一个部件来使它居中,另一个需要为它着色。在我的例子中,我使用div来居中并跨越颜色。我需要div吗?我很肯定我没有。我可以通过使用p来居中(或者我可以摆脱p并且只使用div)来实现同样的目的。我这样做的原因是为了保持组织。
实际上只是因为直到我想到它才意识到,但不想修复它。
希望这能回答你的问题。你花了4年的时间来回答我的问题,30分钟就能搞清楚了(现在我已经学习了几天CSS)。
示例:
<div class='container'>
<div class="text">
text text text text text text text text text text text
text text text text text text text text text text text text text text text text text
</div>
<div class="holder">
<p><span>text here</span></p>
</div>
<div>
text text text text text text text text text text text
text text text text text text text text text text text text text text text text text
</div>
</div>
然后css看起来像:
.container {
width: 500px;
height: 500px;
}
.text {
font-size: 20px;
}
.holder {
text-align: center;
}
span {
background-color: blue;
border: 1px solid black;
}
注意:我设置了容器的设置宽度和高度,因为我正在同时处理一个项目并模拟带有文本的全屏。
另请注意,我已将其设置为使文本具有带边框的单独背景颜色。我这样做是为了表明它的测量是独立的,并在需要时重新调整。
欢迎你,我想人们也不理解你的问题。希望我做到了。
答案 5 :(得分:2)
我推荐 flexbox !请参阅本网站的solved by flexbox。
它很新,但适用于所有主要的现代浏览器(IE10使用-ms-
前缀,IE11 +,Firefox 31 +,Chrome 31 +,Safari 7 +,...) - 请参阅{{ 3}}
基本上,垂直和水平定心,以及动态尺寸调整,可以用4种语句完成:
parent {
display: flex;
justify-content: center;
align-items: center;
height: 100%;
}
确保此父级实际上是100%高度。您可能还需要将body
和html
设置为100%的高度。
我可以在我自己的个人网站this chart上看到我的实现。
答案 6 :(得分:0)
这样的东西?
<html>
<head>
</head>
<body style="text-align: center;">
<div style="width: 500px; margin: 0 auto;">
<p>text text text text text text text text text text text text text text text text text text text text text text</p>
<div>hello</div>
<p>text text text text text text text text text text text text text text text text text text text text text text</p>
</div>
</body>
答案 7 :(得分:0)
<style>
p.one
{
border-style:solid;
border-width:2px;
border-color:red;
display:inline-block;
}
</style>
<p class="one">some text</p>
答案 8 :(得分:0)
<强> HTML 强>
<div class="outerdiv">
<div class="innerdiv">
++++TEXT+++
</div>
</div>
<强> CSS 强>
.outerdiv{
text-align: center;
}
.innerdiv{
display: inline-block;
}