div不适合内容

时间:2012-11-06 22:56:39

标签: css width

我有一个问题,即div在包含长字时不适合内容。它只需要最大宽度。

截图:

http://img687.imageshack.us/img687/3253/photondf.png

我希望div在没有javaScript的情况下使用与内容相同的宽度。

HTML

<div class="div">
    <p>fkjdajfkdjfkdjfkdfjkdfjkdfjdfdjkfkjfdkdfioiewtiovvuiocuvicxvocxvuiocxvucioxbuvbhxjk
    civuiozxviopucvicvuvjcizoxvopcxvpiovxzijpvxzicovpzvjijopcvzxpvjiocvpjzvicvzpjvci.</p>
<div>

CSS

.div {
    float: left;
    background:red;
    max-width: 900px;
}

3 个答案:

答案 0 :(得分:0)

究竟想要让div做什么?您是否希望它缩小到内容的大小但不大于900px?

答案 1 :(得分:0)

如果您不希望自己的div大于900px,请尝试width: auto;但保留max-width

答案 2 :(得分:0)

嗯,这里有几个问题。

  1. p中的内容根本没有空格。换句话说,它将无法在多行上“分割”该单词。你的div实际上有正确的宽度。

  2. 除非你真的不想将它分成多行。您可以将div上的overflow定义为autohidden。在这种情况下,auto会添加滚动条,而hidden只会隐藏经过的内容。

  3. 如果overflowp上有div,您实际上可以在css3中强制自动换行:http://www.w3schools.com/cssref/css3_pr_word-wrap.asp

  4. 由于您为div定义了宽度,因此它总是使用该宽度而不是更多。 (不要将溢出的文本计算为大于div)。在计算此布局大小和其他div的位置时,不应考虑溢出的文本。

  5. 顺便说一下,如果你确实存在空间时遇到问题,那么这么长的字符串就不是一个很好的“用例”。你应该把它贴在这里而不是那个。

    修改

    你的div不能用长单词“适应”内容,它会扩展到可能的最大宽度,然后当达到最大宽度时,它将换行到另一行。如果单词大于div,它将溢出。

    编辑2

    如果你真的想这样做,那就有办法了。但这很难看。您必须在每个长字后添加<br />。如果您在模板引擎中传递文本,您甚至可以使用{c}替换<br />空格。但说实话,就是不要这样做。