Se você quer dizer algo como isto:
Edit: aqui está uma maneira que requer apenas um elemento HTML e, portanto, não será estranho quando lida por clientes que não usam CSS, como mecanismos de pesquisa, leitores de tela, RSS, aplicativos 'sem estilo' etc. (obrigado a Dominic por sugerir tentar :before
e :after
)
O código importante ( adicione suas cores a isso ):
HTML: <div class="someclass" data-text="Some text">Some text</div>
CSS:
.someclass { /* bottom half */
position: relative;
display: inline-block;
}
.someclass:after { /* top half */
content: attr(data-text);
display: block;
position: absolute;
top: 0px;
height: 50%;
overflow: hidden;
}
O atributo HTML pode ser qualquer coisa - usei data-text
porque é descritivo e evita efeitos colaterais indesejáveis (por exemplo, você pode usar, title
mas criaria mouseovers em alguns navegadores).
Se você deseja display:block;
o .top
elemento main ( ), adicione algo como width: 100%;
o .bottom
elemento inner ( ) para preenchê-lo.
Se você estiver usando jQuery, poderá aplicar esse estilo a qualquer elemento com muita facilidade, evitando digitar manualmente o data-text
bit duplicado:
$('.someElement').each(function(){
$(this).addClass('someclass').attr('data-text',$(this).text());
});