Pergunta

Eu tenho uma linha de texto que quero atrair fronteiras. No momento, a marcação se parece com o seguinte:

<div id="titleBox"><span id="titleName" class="truncate">Really really long long long title name</span></div>

O estilo se parece com o seguinte:

    #titleBox{
    margin-top: 10px;

}

#titleName{
    margin: 5px;
    height: 1.6em;
    width: auto;
    max-width: 15.385em;    
    padding: 0.369em;
    margin: 0.369em;
    line-height: 1.7;
    color: rgba(0,0,0,0.4); 
    background-color: rgba(204,204,204,0.4); 
    border: 3px solid rgba(255,255,255,0.14);
    font-size: 153.9%;
    -moz-border-radius: 5px; 
    -webkit-border-radius: 5px;     
}

.truncate {
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    -ms-text-overflow: ellipsis;        
    -o-text-overflow: ellipsis;
    -moz-binding: url('../templates/ellipsis.xml#ellipsis');
}

O efeito que eu gostaria é que eu gostaria que a caixa estilizada fosse a largura do texto, a menos que a largura exceda um certo limite. Então eu gostaria que a largura fosse limitada e, em seguida, a classe truncada deveria entrar em ação.

O problema de usar apenas uma div é que a caixa não envolve a largura do texto. O uso de uma extensão ajuda, mas não é exibido como um bloco. Forçá -lo a ser exibido como um bloco exibe o mesmo problema que envolvê -lo em uma div. O uso de uma combinação de div/span também não funciona porque a extensão ignora os limites da div se o texto for muito longo.

Existe uma maneira de limitar a largura do texto, forçando -o a truncar e ter uma caixa estilizada em torno do texto?

Foi útil?

Solução

Conforme meu comentário, display:inline-block deve dar o efeito desejado. Não vai funcionar em

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top