2016-02-03 32 views
2

是否存在从字符串的开始处截断字符串的css/html方法?显示结束字符?在html表格中截断字符串的另一端

例如:

string = "A0000000982091011328885" 

truncated (show start) = "A000000098..." 
truncated (show end) = "...1011328885" 

我试图改变文本direction但除此之外,我的想法。我完全有能力做到这一点,但它不会很好。

我也在做这个table td,所以如果有一些奇怪的表具体<element>这将是令人满意的。

+0

我认为这是你在找什么:http://codepen.io/kizu/pen/NPrbEQ –

+0

@ArnelleBalane完美!将其作为回答发布:) – brod

回答

2

这里是罗马科马罗夫做出哪些是你想要只使用纯CSS正是一个"reverse ellipsis" pen。它只是需要一个特定的HTML标记才能工作。

<div class="box ellipsis reverse-ellipsis"> 
    <div class="ellipsis__content">Here is some long content that doesn't fit.</div> 
</div> 

它还使用伪元素作为省略号并将它们放置在文本的开头。

.reverse-ellipsis::after { 
    content: "…"; 
    float: left; 
    width: 1em; 
    padding: 0 1px 0 1em; 
    margin: -1.35em -1em; 
    background: #FFF; 
} 
+0

再次感谢pal! – brod

2

var rows = document.getElementById('container').childNodes; 
 
for (var i=0, row; row = rows[i]; i++) { 
 
    trimLeft(row); 
 
} 
 

 
function trimLeft(row){ 
 
    var trimContents = function(row, node){ 
 
     while (row.scrollWidth > row.offsetWidth) { 
 
      
 
      var childNode = node.firstChild; 
 
      
 
      if (!childNode) 
 
       return true; 
 
      
 
      if (childNode.nodeType == document.TEXT_NODE){ 
 
       trimText(row, node, childNode); 
 
      } 
 
      else { 
 
       var empty = trimContents(row, childNode); 
 
       if (empty){ 
 
        node.removeChild(childNode); 
 
       } 
 
      } 
 
     } 
 
    } 
 
    var trimText = function(row, node, textNode){ 
 
     var value = '...' + textNode.nodeValue; 
 
     do { 
 
      value = '...' + value.substr(4); 
 
      textNode.nodeValue = value; 
 
      
 
      if (value == '...'){ 
 
       node.removeChild(textNode); 
 
       return; 
 
      } 
 
     } 
 
     while (row.scrollWidth > row.offsetWidth); 
 
    } 
 

 
    trimContents(row, row);  
 
}
#container { 
 
    width: 200px; 
 
    border: 1px solid blue; 
 
} 
 

 
#container div { 
 
    width: 100%; 
 
    overflow: hidden; 
 
    white-space: nowrap; 
 
}
<div id="container" > 
 
    
 
    <div>A00000009sfsgsdfggdsf1011328885</div> 
 
    
 
</div>

+0

尽管它在开始处视觉上放置了省略号,但它仍然被截断 – brod

+0

我已更新我的答案。请检查并恢复。 –

+0

我明白了,但是我想避免使用javascript - 链接@ArnelleBalane在没有javascript的情况下在视觉和技术上(略带冒险性)提供了链接。不过谢谢你的回答。 – brod