Executando verificação de segurança...
2

Como fazer highlight em texto com CSS

Há algum tempo estava quebrando a cabeça para fazer um título com highlight para um blog.

Pode parecer algo bobo, mas o design colocou um padding que deixou a coisa bem complicada, pois quando havia quebra de linha a primeira linha ficava com padding e as demais linhas não, e o título ficava com um parágrafo, conforme a imagem abaixo. :(

hightlight com padding errado

Pesquisei bastante e não achei nada, no desespero fiz uma solução com javascript, que já funcionava perfeitamente. Mas, ainda sem acreditar que não havia nada em CSS do tipo, resolvi pesquisar por break + css e cai num atributo chamado box-decoration-break, que até ontem eu nunca tinha ouvido falar. Essa propriedade especifica como os fragmentos de um elemento devem ser renderizados quando quebrados em várias linhas, colunas ou páginas e o resultado foi simplesmente perfeito.

hightlight com padding errado

Código

Container para área de texto.
<div><span>Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of</span></div>

CSS

div {
width: 300px;
}

span {
  font-family:'Arial';
  font-size: 30px;
  background-color: red;
  background-size: 200%;
  background-position: 100%;
  padding: 5px 15px;
  line-height: 42px;
  color: white;
  -webkit-box-decoration-break: clone;
  box-decoration-break: clone;
}

Pronto, simples assim. :)

Você pode saber mais sobre box-decoration-break aqui

Carregando publicação patrocinada...