Me gustaría hacer un position: fixed;
cuadro emergente centrado en la pantalla con un ancho y alto dinámicos. Yo solía margin: 5% auto;
para esto. Sin position: fixed;
ella se centra bien horizontalmente, pero no verticalmente. Después de agregar position: fixed;
, incluso no se centra horizontalmente.
Aquí está el conjunto completo:
.jqbox_innerhtml {
position: fixed;
width: 500px;
height: 200px;
margin: 5% auto;
padding: 10px;
border: 5px solid #ccc;
background-color: #fff;
}
<div class="jqbox_innerhtml">
This should be inside a horizontally
and vertically centered box.
</div>
¿Cómo centro este cuadro en la pantalla con CSS?
fuente
Aquí hay un enfoque moderno para centrar horizontalmente un elemento con un ancho dinámico: funciona en todos los navegadores modernos; El apoyo se puede ver aquí .
Ejemplo actualizado
Para el centrado vertical y horizontal, puede usar lo siguiente:
Ejemplo actualizado
Es posible que también desee agregar más propiedades con prefijo de proveedor (consulte los ejemplos).
fuente
O simplemente agregue
left: 0
yright: 0
a su CSS original, lo que hace que se comporte de manera similar a un elemento regular no fijo y la técnica habitual de margen automático funciona:Tenga en cuenta que necesita usar un HTML (X) válido
DOCTYPE
para que se comporte correctamente en IE (¡lo cual, por supuesto, debería tener de todos modos ...!)fuente
right
propiedad sileft
también está configurado! ( msdn.microsoft.com/en-us/library/… observa esoleft
yright
solo tiene soporte "parcial" en IE7). OK, reconozco que esta solución no es buena si el soporte de IE7 es importante, pero es un gran truco para recordar en el futuro :)Agregue un contenedor como:
Luego ponga su caja en este div hará el trabajo.
fuente
display: inline-block
para que esto funcione. (Algunos otros valores de visualización también podrían funcionar, comotable
.)margin:auto;
y cambiar el anchowidth:50%
aowidth:400px
. entonces el contenido puede ser texto directo, elementos de bloque o elementos en línea.Solo agrega:
fuente
position: fixed
, de eso se trata la pregunta. Si me equivoco, edite su respuesta para incluir un fragmento de código ejecutable.position: fixed
, siempre que establezca elmax-width
owidth
al elemento.En su interior puede haber cualquier elemento con diffenet ancho, alto o sin él. Todos están centrados.
fuente
Esta solución no requiere que defina un ancho y alto para su div emergente.
http://jsfiddle.net/4Ly4B/33/
Y en lugar de calcular el tamaño de la ventana emergente, y menos la mitad de la parte superior, javascript está cambiando el tamaño del Contenedor emergente para llenar toda la pantalla ...
(100% de altura, no funciona cuando se usa display: table-cell; (que se requiere para centrar algo verticalmente)) ...
De todos modos funciona :)
fuente
No funcionaba bajo IE7.
Cambiado a
¡Comenzó a funcionar pero en los demás navegadores dejó de funcionar! Así se usa de esta manera para IE7 a continuación
fuente
Básicamente, puede envolverlo en otro
div
y configurarloposition
enfixed
.fuente
Utilicé
vw
(ancho de ventana) yvh
(altura de ventana). viewport es tu pantalla completa.100vw
es el ancho total de sus pantallas y la100vh
altura total.fuente
Para arreglar la posición usa esto:
fuente
Una posible respuesta :
fuente
Intente usar esto para elementos horizontales que no se centren correctamente.
ancho: calc (ancho: 100% - ancho todo lo demás está centrado )
Por ejemplo, si su barra de navegación lateral es 200px:
fuente
Solo uso algo como esto:
Centra el cuadro de diálogo tanto horizontal como verticalmente para mí, y puedo usar diferentes anchuras y alturas para adaptarse a diferentes resoluciones de pantalla para que responda, con consultas de medios.
No es una opción si aún necesita proporcionar soporte para navegadores donde las propiedades personalizadas de CSS o
calc()
no son compatibles (verifique caniuse).fuente
Este funcionó mejor para mí:
fuente
La única solución infalible es usar table align = center como en:
No puedo creer que la gente de todo el mundo desperdicie esta cantidad copiosa en un tiempo tonto para resolver un problema tan fundamental como centrar un div. La solución css no funciona para todos los navegadores, la solución jquery es una solución computacional de software y no es una opción por otras razones.
He perdido demasiado tiempo repetidamente para evitar usar la mesa, pero la experiencia me dice que deje de luchar contra ella. Use la tabla para centrar div. ¡Funciona todo el tiempo en todos los navegadores! Nunca más te preocupes.
fuente
position:fixed
.