Estoy tratando de encontrar la forma más efectiva de alinear el texto con un div. He intentado algunas cosas y ninguna parece funcionar.
.testimonialText {
position: absolute;
left: 15px;
top: 15px;
width: 150px;
height: 309px;
vertical-align: middle;
text-align: center;
font-family: Georgia, "Times New Roman", Times, serif;
font-style: italic;
padding: 1em 0 1em 0;
}
<div class="testimonialText">
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor
in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.
</div>
html
css
vertical-alignment
Shinjuo
fuente
fuente
Respuestas:
Centrado vertical en CSS
http://www.jakpsatweb.cz/css/css-vertical-center-solution.html
Resumen del artículo:
Para un navegador CSS 2, uno puede usar
display:table
/display:table-cell
para centrar el contenido.Una muestra también está disponible en JSFiddle :
Es posible combinar hacks para navegadores antiguos (Internet Explorer 6/7) en estilos usando
#
para ocultar estilos de navegadores más nuevos:fuente
table
pesar de que rutinariamente rompo los corazones de los fanáticos de CSS. La mayoría de ellos solo diseñan blogs simples y sitios estáticos. Algunos de nosotros construimos software empresarial y necesitamos una visualización de datos densa, y nuestros usuarios se preocupan más por la funcionalidad.table
. Las cosas están mejor ahora, pero algunos de nosotros que hacemos aplicaciones web de negocios tenemos que admitir navegadores más antiguos (¡IE6 todavía está en uso en algunos clientes!), Mientras que las personas que hacen blogs pueden vivir en las nubes y pretender que todos en el mundo tienen conexión rápida, computadora nueva y la última versión del navegador X con CSS 3, etc. Caso en cuestión: algunos complementos de Jira usan tablas de una sola fila para el diseño (o lo hicieron de todos modos)line-height
Debe agregar el atributo y ese atributo debe coincidir con la altura dediv
. En tu caso:De hecho, probablemente podría eliminar el
height
atributo por completo.Sin embargo, esto solo funciona para una línea de texto , así que tenga cuidado.
fuente
Aquí hay un gran recurso
De http://howtocenterincss.com/ :
Usando Flexbox
En línea con mantener esta publicación actualizada con la última tecnología, aquí hay una manera mucho más fácil de centrar algo usando Flexbox. Flexbox no es compatible con Internet Explorer 9 y versiones anteriores .
Aquí hay algunos recursos excelentes:
JSFiddle con prefijos de navegador
Otra solución
Esto es de zerosixthree y le permite centrar cualquier cosa con seis líneas de CSS
Este método no es compatible con Internet Explorer 8 y versiones anteriores .
jsfiddle
Respuesta anterior
Un enfoque simple y de navegador cruzado, útil como enlaces en la respuesta marcada, está un poco desactualizado.
Andy Howard - Cómo centrar vertical y horizontalmente el texto en una lista desordenada o div
Como no me interesaba mucho Internet Explorer 7/6 para el último proyecto en el que trabajé, utilicé una versión ligeramente simplificada (es decir, eliminé las cosas que lo hicieron funcionar en Internet Explorer 7 y 6). Puede ser útil para alguien más ...
JSFiddle
fuente
height: x; line-height: x;
pero con mayor frecuencia no necesito varias líneas de texto. Por eso me encanta esta solución. Simple, reutilizable, cross-browser, sin js y solo requiere un pequeño margen adicional.height: 100px;
aheight: 100%;
tanto para elli
como para.outerContainer
.Es fácil con
display: flex
. Con el siguiente método, el texto en eldiv
estará centrado verticalmente:Y si quieres, horizontal:
Debe ver la versión del navegador que necesita; En versiones anteriores, el código no funciona.
fuente
text-align: center
también es necesario, porque el ancho de relleno de texto largo se alineará a la izquierdaUtilizo lo siguiente para centrar verticalmente elementos aleatorios fácilmente:
HTML:
CSS:
Esto centra el texto en mi
div
en el centro vertical exacto de un exterior de 200 px de altodiv
. Tenga en cuenta que es posible que necesite usar un prefijo de navegador (como-webkit-
en mi caso) para que esto funcione para su navegador.Esto funciona no solo para el texto, sino también para otros elementos.
fuente
position: absolute;
- ¡Gracias! Nota: es posible que desee incluir-ms-transform
o IE rellenará algo más-web-kit-transform
antestransform
. Quizás agregar-ms-transform
puede resolver el problema de @ ToniMichelCaubet.Puede hacer esto configurando la pantalla en 'table-cell' y aplicando un
vertical-align: middle;
:Sin embargo, esto no es compatible con todas las versiones de Internet Explorer de acuerdo con este extracto que copié de http://www.w3schools.com/cssref/pr_class_display.asp sin permiso.
Nota: Los valores "tabla en línea", "tabla", "título de tabla", "tabla-celda", "tabla-columna", "tabla-columna-grupo", "tabla-fila", "tabla-fila -group "y" heredar "no son compatibles con Internet Explorer 7 y versiones anteriores. Internet Explorer 8 requiere un! DOCTYPE. Internet Explorer 9 admite los valores.
La siguiente tabla muestra los valores de visualización permitidos también en http://www.w3schools.com/cssref/pr_class_display.asp .
fuente
En estos días (ya no necesitamos Internet Explorer 6-7-8), simplemente usaría CSS
display: table
para este problema (odisplay: flex
).Para navegadores antiguos:
Mesa:
Flexionar:
Esta es (en realidad, fue) mi solución favorita para este problema (simple y muy bien compatible con el navegador):
fuente
Pruebe esto, agregue el div padre:
fuente
Aquí hay una solución que funciona mejor para una sola línea de texto.
También puede funcionar para texto de líneas múltiples con algunos ajustes si se conoce el número de líneas.
Aquí hay un JSFiddle .
fuente
fuente
Puede alinear el texto central verticalmente dentro de un div usando Flexbox.
Puede obtener más información al respecto en Una guía completa de Flexbox .
fuente
Comprueba esta solución simple:
HTML
CSS
JSFiddle
fuente
Hay una manera más simple de alinear verticalmente el contenido sin recurrir a table / table-cell:
http://jsfiddle.net/bBW5w/1/
En él he agregado un div invisible (ancho = 0) que asume toda la altura del contenedor.
Parece funcionar en Internet Explorer y Firefox (últimas versiones). No verifiqué con otros navegadores
Y, por supuesto, el CSS:
fuente
Esta es la solución más limpia que he encontrado (Internet Explorer 9+) y agrega una solución para el problema de "apagado por .5 píxeles" al usar
transform-style
que otras respuestas habían omitido.Fuente: Alinear verticalmente cualquier cosa con solo 3 líneas de CSS
fuente
Una solución simple a un elemento de no conocer valores:
HTML
CSS
fuente
Según la respuesta de Adam Tomat, se preparó un ejemplo de JSFiddle para alinear el texto en div :
usando display: flex en CSS:
con otro ejemplo y algunas explicaciones en una publicación de blog .
fuente
Margen automático en un elemento de cuadrícula.
De manera similar a Flexbox, la aplicación de margen automático en un elemento de cuadrícula lo centra en ambos ejes:
fuente
Flexbox funcionó perfectamente para mí, centrando múltiples elementos dentro del div padre horizontal y verticalmente.
Código HTML:
Código CSS: el
siguiente código apila todos los elementos dentro de parent-div en una columna, centrando los elementos horizontal y verticalmente. Usé el child-div para mantener los dos elementos Anchor en la misma línea (fila). Sin child-div, los tres elementos (Anchor, Anchor & Paragraph) se apilan dentro de la columna parent-div uno encima del otro. Aquí solo child-div se apila dentro de la columna parent-div.
fuente
Utilizar:
Con este truco, puede alinear cualquier cosa si no desea que esté en el centro, agregue "left: 0" para alinear a la izquierda.
fuente
HTML
CSS
fuente
Usando flex, tenga cuidado con las diferencias en la representación de los navegadores.
Esto funciona bien tanto para Chrome como para Internet Explorer:
Compare con este que solo funciona con Chrome:
fuente
Esta es otra variación de
div
undiv
patrón usandocalc()
CSS.Esto funciona porque:
position:absolute
para la colocación precisa dediv
dentro de undiv
div
, porque lo ponemos a20px
.calc(50% - 10px)
para 50% - la mitad de la altura para centrar el interiordiv
fuente
Esto funciona bien:
HTML
Hablar con descaro a
Sin y con la etiqueta de imagen
<mat-icon>
(que es una fuente).fuente
Hmm, obviamente hay muchas formas de resolver esto.
Pero tengo un
<div>
posicionamiento absolutoheight:100%
(en realidad,top:0;bottom:0
y ancho fijo) ydisplay:table-cell
simplemente no funcionó para centrar el texto verticalmente. Mi solución requería un elemento interno, pero veo que muchas de las otras soluciones también lo hacen, así que también podría agregarlo:Mi contenedor es a
.label
y quiero el número centrado verticalmente en él. Lo hice posicionándome absolutamentetop:50%
y estableciendoline-height:0
Y el CSS es el siguiente:
Véalo en acción: http://jsfiddle.net/jcward/7gMLx/
fuente
Puedes usar css
flexbox
.fuente
Usar CSS grid lo hizo por mí:
fuente
Intenta incrustar un elemento de tabla.
fuente
Hay varios trucos para mostrar contenido o una imagen en el centro de un div. Algunas de las respuestas son realmente agradables y estoy totalmente de acuerdo con ellas también.
Centrado absoluto horizontal y vertical en CSS
http://www.css-jquery-design.com/2013/12/css-techniques-absolute-horizontal-and-vertical-centering-in-css/
Hay más de 10 técnicas con ejemplos . Ahora depende de usted cuál prefiere.
Sin duda,
display:table; display:table-Cell
es un mejor truco.Algunos buenos trucos son los siguientes:
Truco 1 - Al usar
display:table; display:table-cell
HTML
Código CSS
Truco 2 - Al usar
display:inline-block
HTML
Código CSS
Truco 3 - Al usar
position:relative;position:absolute
fuente
CSS:
Agregue esta clase al elemento que contiene las cosas que desea alinear verticalmente
fuente
Si necesita usar con la
min-height
propiedad, debe agregar este CSS en:fuente