div#thing {
position: absolute;
top: 0px;
z-index: 2;
margin: 0 auto;
}
<div id="thing">
<p>text text text with no fixed size, variable font</p>
</div>
O div está no topo, mas não posso centralizá-lo com <center>
ou margin: 0 auto
;
Seu problema pode ser resolvido se você der div
uma largura fixa, da seguinte forma:
div#thing {
position: absolute;
top: 0px;
z-index: 2;
width:400px;
margin-left:-200px;
left:50%;
}
fonte
Sei que estou atrasado para a festa, mas achei melhor dar uma resposta aqui para pessoas que precisam posicionar horizontalmente um item absoluto, quando você não sabe sua largura exata.
Experimente isto:
A mesma técnica também pode ser aplicada, para quando você precisar de alinhamento vertical, simplesmente ajustando as propriedades como:
fonte
Para centralizá-lo verticalmente e horizontalmente, faça o seguinte:
fonte
Se for necessário que você tenha uma largura relativa (em porcentagem), você pode envolver seu div em um posicionado absoluto:
Lembre-se de que, para posicionar um elemento de forma absoluta, o elemento pai deve ser posicionado de forma relativa.
fonte
Eu estava tendo o mesmo problema e minha limitação era que não posso ter uma largura predefinida. Se o seu elemento não tiver uma largura fixa, tente este
então modifique seu html para ficar assim
fonte
Ou você pode usar unidades relativas, por exemplo
fonte
fonte
Sim:
fonte