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 :beforee :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-textporque é descritivo e evita efeitos colaterais indesejáveis (por exemplo, você pode usar, titlemas criaria mouseovers em alguns navegadores).
Se você deseja display:block;o .topelemento main ( ), adicione algo como width: 100%;o .bottomelemento inner ( ) para preenchê-lo.
Se você estiver usando jQuery, poderá aplicar esse estilo a qualquer elemento com muita facilidade, evitando digitar manualmente o data-textbit duplicado:
$('.someElement').each(function(){
$(this).addClass('someclass').attr('data-text',$(this).text());
});