css - 如果内联 block 元素不适合包含另一个绝对元素的容器,则收缩内联 block 元素

标签 css compass-sass

我在父容器中有两个并排放置的内联 block 元素。 为了便于解释,假设第一个包含文件名,第二个包含一些标签。

第一个的内容可能太长而无法放入其中。如果内容比父容器的宽度长或者第二个元素占用太多空间,就会发生这种情况。在这两种情况下,我都希望第一个元素自动收缩。

通常,这很容易完成。诀窍在于:

  • 第二个元素(标签)可能为空(无法固定 宽度)
  • 第二个元素(标签)应右对齐(我现在使用绝对位置)。

有时候使用图片比文字更好,所以这里是: enter image description here

在幕后它只是:

<div class="document-belt">
  <a class="link">some_very_looong_file_name.txt</a>
  <div class="tags">sometag</div>
</div>

.document-belt {     
    width:250px;
    position:relative;

    white-space: nowrap;    
}

.link {
    display: inline-block;        
    text-overflow: ellipsis;
}

.tags {
    display: inline-block;
    position:absolute;
    right: 0px;
}

http://jsfiddle.net/vTm75/

如何让第一个元素(.link)在内容放不下时自动收缩?

最佳答案

如果您切换元素的顺序,使“tags”元素排在第一位:

<div class="document-belt">
    <div class="tags">sometag</div>
    <a class="link">some_very_looong_file_name.txt</a>
</div>

然后以下将起作用:

.document-belt { 
    overflow:hidden; 
    border: 1px solid blue;
    width:250px;
}

.link {
    display: block;        
    margin-left:0px; 
    overflow:hidden; 
    text-overflow: ellipsis;
    white-space: nowrap;
    border: 1px solid red;
}

.tags {
    float:right; 
    border: 1px solid green;
}

http://jsfiddle.net/vTm75/11/

关于css - 如果内联 block 元素不适合包含另一个绝对元素的容器,则收缩内联 block 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22021251/

相关文章:

html - CSS 菜单悬停图像拉伸(stretch)

html - 主体高度100%显示垂直滚动条

css - 并排 float 两个 div 的问题(均不遵循包装宽度)

asp.net - Compass/Sass、ASP.NET/MVC 蓝图

compass-sass - 使用 Octopress 自定义登陆页面

css - 如何直接在 chrome 检查器中创建和附加 CSS3 动画?

java - 滚动 ListView 会破坏 ListCell 样式

jquery css 类Compass修正

css - 将 Google Web 字体与 SASS/Compass 结合使用——怎么样?

ruby - compass gem throw 错误