首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >单行,带有左固定内容和右固定内容的溢出省略号

单行,带有左固定内容和右固定内容的溢出省略号
EN

Stack Overflow用户
提问于 2017-05-16 17:58:55
回答 2查看 192关注 0票数 2

我有一个带有快捷键复选框的侧边栏。侧边栏的宽度可以改变,不在我的控制之下。我想在一行中有一个复选框,一个描述和结果计数,以节省空间。

计数应该在侧边栏中右对齐,复选框左对齐。描述应该使用overflow:省略号表示可访问性的剩余空间。

该解决方案仅适用于css。如果不可能,也可以使用js。

有关示例代码,请参阅https://jsfiddle.net/z9d8qjsb/7/

html

代码语言:javascript
复制
<div class="sidebar_a">
<div class="row">
    <input id="ckb" type="checkbox" />
    <label for="ckb">
      <span class="text">Description that can be verry long and should use ellipsis</span>
      <span class="count">(xxxx)</span>
    </label>
  </div>
  <div class="row">
    <input id="ckb" type="checkbox" />
    <label for="ckb">
    <span class="text">Short Desc.</span>
      <span class="count">(xxxx)</span>
    </label>
  </div>
</div>
<div class="sidebar_b">
  <div class="row">
    <input id="ckb" type="checkbox" />
    <label for="ckb">
      <span class="text">Description that can be verry long and should use ellipsis</span>
      <span class="count">(xxxx)</span>
    </label>
  </div>
  <div class="row">
    <input id="ckb" type="checkbox" />
    <label for="ckb">
    <span class="text">Short Desc.</span>
      <span class="count">(xxxx)</span>
    </label>
  </div>
</div>

css

代码语言:javascript
复制
.sidebar_a {
  width: 500px; 
  }

  .sidebar_b {
    width: 100px;
  }

  .sidebar_a, .sidebar_b {
    border: 2px solid black; /*only for illustration*/
  }

  .row {
    position: relative;
  }
.text {
  overflow: hidden;
    text-overflow: ellipsis;
    text-align: left;
    width: 70%;
    white-space: nowrap;
    display: inline-block;
    vertical-align: middle;
}

.count {
  position: absolute;
}

更新:为了更好的解释,更新了html。

EN

回答 2

Stack Overflow用户

发布于 2017-05-16 18:10:33

代码语言:javascript
复制
.sidebar {
  // width: 200px; 
  border;
  2px solid black;
  position: relative;
}

.row {
  position: relative;
}

.text {
  overflow: hidden;
  text-overflow: ellipsis;
  text-align: left;
  white-space: nowrap;
  width: 200px;
  display: inline-block;
  vertical-align: middle;
  position: relative;
}

.count {
  right: 5px;
  position: absolute;
}

#ckb {
  float: left;
  width: auto;
  margin-top:6px;
}

label {
  float: left;
  width: auto;
  position: relative;
  width: 300px;
}
代码语言:javascript
复制
<div class="sidebar">
  <div class="row">
    <input id="ckb" type="checkbox" />
    <label for="ckb">
      <span class="text">Description that can be verry long and should use ellipsis</span>
      <span class="count">(xxxx)</span>
    </label>
  </div>
</div>

票数 0
EN

Stack Overflow用户

发布于 2017-05-16 18:22:33

你可以这样做

代码语言:javascript
复制
.count {
  right: -5px;
  position: absolute;
}

我把right属性改成了-,我想这对你是有效的

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43998261

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档