Pregunta

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>

El div está en la parte superior, pero no puedo centrarlo. <center> o margin: 0 auto;

¿Fue útil?

Solución

Su problema puede resolverse si le da a su div un ancho fijo, de la siguiente manera:

div#thing {
    position: absolute;
    top: 0px;
    z-index: 2;
    width:400px;
    margin-left:-200px;
    left:50%;
}

Otros consejos

div#thing
{
    position: absolute;
    width:400px;
    right: 0;
    left: 0;
    margin: auto;
}

Sé que llego tarde a la fiesta, pero pensé que proporcionaría una respuesta aquí para las personas que necesitan posicionar horizontalmente un elemento absoluto, cuando no se conoce su ancho exacto.

Prueba esto:

// Horizontal example.
div#thing {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
}

La misma técnica también se puede aplicar, para cuando necesite alineación vertical, simplemente ajustando las propiedades de esta manera:

// Vertical example.
div#thing {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
}

Si es necesario que tenga un ancho relativo (en porcentaje), puede ajustar su div en una posición absoluta:

div#wrapper {
    position: absolute;
    width: 100%;
    text-align: center;
}

Recuerde que para posicionar un elemento absolutamente, el elemento padre debe posicionarse relativamente.

Estaba teniendo el mismo problema y mi limitación era que no puedo tener un ancho predefinido.Si su elemento no tiene un ancho fijo, intente esto

div#thing 
{ 
  position: absolute; 
  top: 0px; 
  z-index: 2; 
  left:0;
  right:0;
 }

div#thing-body
{
  text-align:center;
}

luego modifica tu html para que se vea así

<div id="thing">
 <div id="thing-child">
  <p>text text text with no fixed size, variable font</p>
 </div>
</div>

Sí:

div#thing { text-align:center; }
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top