Respostas:
Para isso, você pode usar a text-overflow: ellipsis;
propriedade Escreva assim
span {
display: inline-block;
width: 180px;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis;
}
<span>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen book</span>
Se você estiver usando reticências de excesso de texto:, o navegador mostrará o conteúdo o máximo possível dentro desse contêiner. Mas se você quiser especificar o número de letras antes dos pontos ou retirar algum conteúdo e adicionar pontos, poderá usar a função abaixo.
function add3Dots(string, limit)
{
var dots = "...";
if(string.length > limit)
{
// you can also use substr instead of substring
string = string.substring(0,limit) + dots;
}
return string;
}
ligue como
add3Dots("Hello World",9);
saídas
Hello Wor...
Veja em ação aqui
function add3Dots(string, limit)
{
var dots = "...";
if(string.length > limit)
{
// you can also use substr instead of substring
string = string.substring(0,limit) + dots;
}
return string;
}
console.log(add3Dots("Hello, how are you doing today?", 10));
Tente isso,
.truncate {
display:inline-block;
width:180px;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
}
adicione .truncate
classe ao seu elemento.
EDITAR ,
A solução acima não está funcionando em todos os navegadores. você pode tentar seguir o plugin jQuery com suporte a vários navegadores.
(function ($) {
$.fn.ellipsis = function () {
return this.eachAsync({
delay: 100,
bulk: 0,
loop: function (index) {
var el = $(this);
if (el.data("fullText") !== undefined) {
el.html(el.data("fullText"));
} else {
el.data("fullText", el.html());
}
if (el.css("overflow") == "hidden") {
var text = el.html();
var t = $(this.cloneNode(true))
.hide()
.css('position', 'absolute')
.css('overflow', 'visible')
.width('auto')
.height(el.height())
;
el.after(t);
function width() { return t.width() > el.width(); };
var func = width;
while (text.length > 0 && width()) {
text = text.substr(0, text.length - text.length * 25 / 100);
t.html(text + "...");
}
el.html(t.html());
t.remove();
}
}
});
};
})(jQuery);
como ligar,
$("#content_right_head span").ellipsis();
width
propriedade pode ser 100%
. Eu acho que é melhor assim: .truncate { display:inline-block; width:100%; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
Bem, o "overflow de texto: reticências" funcionou para mim, mas apenas se meu limite fosse baseado em 'width', eu precisava de uma solução que pudesse ser aplicada em linhas (na 'altura' em vez da 'largura'), então Eu fiz este script:
function listLimit (elm, line){
var maxHeight = parseInt(elm.css('line-Height'))*line;
while(elm.height() > maxHeight){
var text = elm.text();
elm.text(text.substring(0,text.length-10)).text(elm.text()+'...');
}
}
E quando devo, por exemplo, que meu h3 tenha apenas 2 linhas, eu faço:
$('h3').each(function(){
listLimit ($(this), 2)
})
Não sei se essa era a melhor prática para as necessidades de desempenho, mas funcionou para mim.
Você pode tentar isso:
.classname{
width:250px;
overflow:hidden;
text-overflow:ellipsis;
}
Muito obrigado @sandeep por sua resposta.
Meu problema era que eu queria mostrar / ocultar o texto no intervalo com o clique do mouse. Assim, por padrão, o texto curto com pontos é mostrado e, ao clicar em texto longo, é exibido. Clicar novamente oculta o texto longo e mostra um texto breve novamente.
Uma coisa bem fácil de fazer: basta adicionar / remover classe com reticências de texto em excesso:
HTML:
<span class="spanShortText cursorPointer" onclick="fInventoryShippingReceiving.ShowHideTextOnSpan(this);">Some really long description here</span>
CSS (o mesmo que @sandeep com .cursorPointer adicionado)
.spanShortText {
display: inline-block;
width: 100px;
white-space: nowrap;
overflow: hidden !important;
text-overflow: ellipsis;
}
.cursorPointer {
cursor: pointer;
}
Parte JQuery - basicamente apenas remove / adiciona a classe cSpanShortText.
function ShowHideTextOnSpan(element) {
var cSpanShortText = 'spanShortText';
var $el = $(element);
if ($el.hasClass(cSpanShortText)) {
$el.removeClass(cSpanShortText)
} else {
$el.addClass(cSpanShortText);
}
}