以下是我的问题http://codepen.io/anon/pen/aNWEvQ的代码。
HTML:
<div class="dialog-wrapper">
<div class="dialog">
<p>aaaaaaaaaaaaaaaaaaaaaaaaaaaa</p>
</div>
</div>
CSS:
* {
box-sizing: border-box;
}
.dialog-wrapper {
border: 1px solid red;
position: absolute;
}
.dialog {
min-width: 50px;
max-width: 80%;
border: 1px solid green;
margin: auto;
}
p {
border: 1px solid blue;
font-size: 16px;
font-family: Arial;
}
为什么p标签没有扩展到文本的宽度并强制.dialog和.dialog-wrapper也要扩展?
是否有CSS可以按照我的意愿扩展段落?
答案 0 :(得分:0)
更改.dialog {max-width:100%; } 他们都会扩大。
答案 1 :(得分:0)
试试这个:
.dialog-wrapper {
display: table;
// add other properties
}
.dialog {
display: table-cell;
// add other properties
}
p {
display: table-cell;
// add other properties
}
现在,父容器dialog-wrapper
现在将调整为子元素的宽度,即dialog
和p
。
答案 2 :(得分:0)
word-wrap:break-word
。p
p
的固定宽度。你可能也想给你
.dialog-wrapper
固定宽度。答案 3 :(得分:0)
由于.dialog-wrapper
绝对定位且所有left
,right
和width
均为auto
,因此width
将由max-width: 80%
确定{3}}算法。基本上,它将是文本的宽度。
然后,如果您对孩子使用.dialog {
margin: 0 10%;
}
,那将小于文本的宽度。所以文本会溢出,否则会分成多行。
相反,你应该添加一些余量:
* {
box-sizing: border-box;
}
.dialog-wrapper {
border: 1px solid red;
position: absolute;
}
.dialog {
min-width: 50px;
border: 1px solid green;
margin: 0 10%;
}
p {
border: 1px solid blue;
font-size: 16px;
font-family: Arial;
}
.wrapper2 {
top: 100px;
}
.wrapper2 p {
width: 253px;
}
.wrapper3 {
top: 200px;
}
.wrapper3 p {
width: 315px;
}
<div class="dialog-wrapper">
<div class="dialog">
<p>aaaaaaaaaaaaaaaaaaaaaaaaaaaa</p>
</div>
</div>
<div class="dialog-wrapper wrapper2">
<div class="dialog">
<p>aaaaaaaaaaaaaaaaaaaaaaaaaaaa</p>
</div>
</div>
<div class="dialog-wrapper wrapper3">
<div class="dialog">
<p>aaaaaaaaaaaaaaaaaaaaaaaaaaaa</p>
</div>
</div>
&#13;
apply
&#13;