我有一个问题,即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;
}
答案 0 :(得分:0)
究竟想要让div做什么?您是否希望它缩小到内容的大小但不大于900px?
答案 1 :(得分:0)
如果您不希望自己的div大于900px,请尝试width: auto;
但保留max-width
。
答案 2 :(得分:0)
嗯,这里有几个问题。
p
中的内容根本没有空格。换句话说,它将无法在多行上“分割”该单词。你的div实际上有正确的宽度。
除非你真的不想将它分成多行。您可以将div上的overflow
定义为auto
或hidden
。在这种情况下,auto
会添加滚动条,而hidden
只会隐藏经过的内容。
如果overflow
或p
上有div
,您实际上可以在css3中强制自动换行:http://www.w3schools.com/cssref/css3_pr_word-wrap.asp
由于您为div定义了宽度,因此它总是使用该宽度而不是更多。 (不要将溢出的文本计算为大于div)。在计算此布局大小和其他div的位置时,不应考虑溢出的文本。
顺便说一下,如果你确实存在空间时遇到问题,那么这么长的字符串就不是一个很好的“用例”。你应该把它贴在这里而不是那个。
修改强>
你的div不能用长单词“适应”内容,它会扩展到可能的最大宽度,然后当达到最大宽度时,它将换行到另一行。如果单词大于div,它将溢出。
编辑2
如果你真的想这样做,那就有办法了。但这很难看。您必须在每个长字后添加<br />
。如果您在模板引擎中传递文本,您甚至可以使用{c}替换<br />
空格。但说实话,就是不要这样做。