我有一个div的集合作为行,可以是可变宽度,因为它们在可调整大小的容器中。 div包含我想要悬挂缩进的文本。这样工作正常,但在此示例中,当宽度太低时,第一行被推到红色标签下面。
当.wrapper
为450像素时,一切都会正确显示。当它是250px时,你可以看到事情是如何破裂的。我总是希望longtextthatwraps
范围与红色标签位于同一行。
Here's a live example/fiddle ,来源如下:
HMTL (.prefix
和.part
之间没有空格,但为了便于阅读......):
<div class="wrapper">
<div class="padded excludes">
<div class="parts first">
<span class="prefix">Quisques: </span>
<span class="segment level-0">
<span class="part text">longtextthatwraps incorrectly (<a href="#" class="code">0000</a>-<a href="#" class="code">0000</a>)</span>
</span>
</div>
<div class="parts">
<span class="segment level-0">
<span class="part text">consectetur adipiscing (<a href="#" class="code">0000</a>-<a href="#" class="code">0000</a>)</span>
</span>
</div>
<div class="parts">
<span class="segment level-0">
<span class="part text">quisque non mauris sed:</span>
</span>
</div>
<div class="parts">
<span class="segment level-1">
<span class="part list-item">hendrerit (<a href="#" class="code">0000</a>-<a href="#" class="code">0000</a>)</span>
</span>
</div>
<div class="parts">
<span class="segment level-1">
<span class="part list-item">non mauris sed (<a href="#" class="code">0000</a>-<a href="#" class="code">0000</a>)</span>
</span>
</div>
<div class="parts">
<span class="segment level-1">
<span class="part list-item">lorem ipsum dolor (<a href="#" class="code">0000</a>-<a href="#" class="code">0000</a>)</span>
</span>
</div>
</div>
</div>
CSS:
.wrapper {
width: 250px;
background: #c3dff5;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
}
.padded {
padding-left: 20px;
}
.parts {
padding-left: 80px;
}
.parts.first {
padding-left: 0;
}
.prefix {
color: #D12;
font-weight: bold;
min-width: 80px;
display: inline-block;
}
.level-0,.level-1 {
display: inline-block;
padding-left: 5px;
text-indent: -5px;
outline: 1px dotted #f0f;
}
.level-1 {
padding-left: 20px;
}
帮助表示赞赏
答案 0 :(得分:6)
嗯,我相信我有一个解决你问题的CSS解决方案,不过我确定还有其他方法可以让你找到你正在寻找的行为。
对于.prefix
,我给出了风格:
.prefix {
display: table-cell;
}
然后我又添加了另一个定义:
.parts.first .level-0 {
display:table-cell;
}
我希望这是你正在寻找的东西!这是updated JSFiddle向您展示其结果。如果这不是您的目标,请告诉我,我们将很乐意为您提供进一步的帮助!
答案 1 :(得分:1)
如果您移除first
课程,将span.prefix
移出div.parts
并向其添加position: absolute
该怎么办?
对于仅限css的解决方案,请移除first
类,向position: absolute
提供span.prefix
并指定左侧位置,例如left: 25px
。这似乎也适用于IE7。
答案 2 :(得分:1)
使用position:absolute;
和margin-left
。
.first > .prefix{
position: absolute;
left:10px;
}
.first > .level-0{
margin-left:80px;
}
的第17-24行
答案 3 :(得分:-1)
我创建了一个简化版本,它将浮动每个部分,一个到右边,一个部分到左边,并给它们一个百分比单位。尝试添加缩进级别。
<div class="wrapper">
<div class="left">
<span class="red">Quisques: </span>
</div>
<div class="right">
<span class="level">consectetur adipiscing (<a href="#" class="code">0000</a>-<a href="#" class="code">0000</a>)</span>
<span class="level">quisque non mauris sed:</span>
<span class="level">consectetur adipiscing (0000-0000)</span>
</div>
</div>
.wrapper {
width: 250px;
background: #C3DFF5;
overflow: hidden;
padding: 12px;
}
.red {
color: red;
font-weight: bold;
}
.left {
float: left;
width: 30%;
}
.right {
float: right;
width: 70%;
}
.level {
display: block;
outline: 1px dotted #FF00FF;
}
答案 4 :(得分:-1)
请参阅此Demo
你必须添加像
这样的CSS .wrapper {
width: auto;
background: #c3dff5;
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
font-size: 14px;
min-width:250px;
float:left;
}