gpt4 book ai didi

html - 使同级元素具有相同的宽度会破坏其中的文本

转载 作者:太空宇宙 更新时间:2023-11-04 14:51:51 25 4
gpt4 key购买 nike

我正在尝试设置 div 的宽度,它的内容为其中 user-title 段落的宽度。这是 HTML 和 CSS:

.panel {
margin-bottom: 20px;
width: auto;
display: inline-flex;
flex-direction: column;
box-shadow: 0 2px 4px 0 #C6C2BF;
padding: 0.5rem 1rem 1rem;
}

.user-title {
display: flex;
}

.panel>div {
display: flex;
flex-direction: column;
}

.panel>div>p {
display: flex;
flex-grow: 1;
width: 0;
}
<div class="panel">
<p class="user-title">Date 08.03.2018 User: Joe Doe</p>
<div>
<p>Some long text in the paragraph that is wider than the title above it</p>
<p>Another shorter text</p>
</div>
</div>

这种设置使元素占据 user-title 元素的宽度,但是,文本分成多行。我怎样才能解决这个问题?这是fiddle .

最佳答案

如果我在这里没有完全弄错的话,使用 CSS 实现跨浏览器的唯一方法是将 display: inline-blockdisplay: table-row/显示:表格标题

堆栈片段

.panel {
margin-bottom: 20px;
display: inline-block;
box-shadow: 0 2px 4px 0 #C6C2BF;
padding: 0.5rem 1rem 1rem;
}

.user-title {
display: table-row;
}

.panel > div {
display: table-caption;
caption-side: bottom;
}
<div class="panel">
<p class="user-title">Date 08.03.2018 User: Joe Doe</p>
<div>
<p>Some long text in the paragraph that is wider than the title above it</p>
<p>Another shorter text</p>
</div>
</div>


如果你不关心 IE,那么使用 width: 0; min-width: 100%;.parent div 上。

请注意,我在 Edge v.16、Firefox v.58 和 Chrome v.64 上测试成功,但我不能说它是否适用于 Safari。

堆栈片段

.panel {
margin-bottom: 20px;
display: inline-flex;
flex-direction: column;
box-shadow: 0 2px 4px 0 #C6C2BF;
padding: 0.5rem 1rem 1rem;
}

.panel > div {
width: 0;
min-width: 100%;
}
<div class="panel">
<p class="user-title">Date 08.03.2018 User: Joe Doe</p>
<div>
<p>Some long text in the paragraph that is wider than the title above it</p>
<p>Another shorter text</p>
</div>
</div>


已更新

经过反复试验,我在 IE11 和 Edge/Firefox/Chrome 上都能正常工作

堆栈片段

.panel {
margin-bottom: 20px;
display: inline-flex;
flex-direction: column;
box-shadow: 0 2px 4px 0 #C6C2BF;
padding: 0.5rem 1rem 1rem;
}

.panel > div {
width: 0;
min-width: 100%;
display: flex; /* for IE11 */
flex-wrap: wrap; /* for IE11 */
}

.panel > div > p {
flex: 100%; /* for IE11 */
}
<div class="panel">
<p class="user-title">Date 08.03.2018 User: Joe Doe</p>
<div>
<p>Some long text in the paragraph that is wider than the title above it</p>
<p>Another shorter text</p>
</div>
</div>

关于html - 使同级元素具有相同的宽度会破坏其中的文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49177062/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com