CSS,居中的div,缩小到适合?

dir*_*ide 64 css

这就是我想要的:

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
Run Code Online (Sandbox Code Playgroud)

..."some text"块是div.我希望div是包含其文本而不包装所需的最小宽度.如果文字太长而不适合没有包装,那么它可以包装.

我不想为div设置明确的宽度.我也不想设置min-width或max-width; 就像我说的,如果有太多的文字要包含在一行而没有包装,那么如果它包装就没关系.

Jos*_*ola 71

默认情况下,DIV元素是块级的,这意味着它们自动获得100%的宽度.要更改它,请使用此CSS ...

.centerBox {
  display:inline-block;
  text-align:center;
}


<div class="centerBox">
  Some text
</div>
Run Code Online (Sandbox Code Playgroud)

编辑:更新为使用CSS类而不是内联属性并将"块"更改为"内联块"

  • 'width:auto'是多余的,可以省略.显然,您还需要在父级上设置text-align-center.技术上正确的方法虽然可能将div变为内联,但这并不是OP想要的! (3认同)

Kon*_*kus 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>
Run Code Online (Sandbox Code Playgroud)

提示:不要将DIV用于文本块(用于SEO和更好的语义目的)

  • +1 DIV只是错误的元素. (3认同)

Luk*_*kas 6

我不知道,这里的解决方案似乎部分正确,但后来却没有真正起作用.根据Josh Stodola的回答,这是一个在Firefox,Safari,Chrome和IE 7,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;
}
Run Code Online (Sandbox Code Playgroud)

标记:

<div id="centered-div">
    Cum sociis natoque penatibus et magnis dis<br />
    parturient montes, nascetur ridiculus mus.
</div>
Run Code Online (Sandbox Code Playgroud)

要添加IE6支持(叹气),请添加_height: [yourvalue]到div.是的,带有下划线.

在JSFiddle上自己测试一下:http://jsfiddle.net/atp4B/2/


dir*_*ide 5

Josh Stodola的道具,尽管他并不完全正确.所需的财产是:

display: inline-block;
Run Code Online (Sandbox Code Playgroud)

这解决了我的问题.好极了!