Foros del Web » Creando para Internet » CSS »

Centrado vertical de texto en Flex

Estas en el tema de Centrado vertical de texto en Flex en el foro de CSS en Foros del Web. Tengo una columna con unos enlaces repartidos verticalmente, me gustaría centrar el contenido de los enlaces horizontal y verticalmente ya sea texto o imágenes y ...
  #1 (permalink)  
Antiguo 30/11/2014, 15:36
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Centrado vertical de texto en Flex

Tengo una columna con unos enlaces repartidos verticalmente, me gustaría centrar el contenido de los enlaces horizontal y verticalmente ya sea texto o imágenes y no me sale, gracias

Código HTML:
 <nav am-nav="row" am-cel="one">
				<a href="">1</a>
				<a href="">2</a>
				<a href="">3</a>
			</nav> 
Código HTML:
nav[am-nav~=row]{
	display: flex;
	//flex-direction: column;
	flex-flow: column wrap;
	justify-content: space-around;
	justify-content: flex-end;
	a{
		background-image: linear-gradient(lime, silver);
		color: #333;
		display: block;
		flex: 1;
		text-align: center;
		vertical-align: middle; /*supongo que solo funciona en tablas*/
	}
}
  #2 (permalink)  
Antiguo 30/11/2014, 16:34
Avatar de pzin
Moderata 😈
 
Fecha de Ingreso: julio-2002
Ubicación: Islas Canarias
Mensajes: 10.488
Antigüedad: 21 años, 8 meses
Puntos: 2114
Respuesta: Centrado vertical de texto en Flex

Prueba con:

Código CSS:
Ver original
  1. align-items: center;

¿Qué se supone que es am-nav y am-cel?
__________________
(:

Última edición por pzin; 30/11/2014 a las 16:39
  #3 (permalink)  
Antiguo 30/11/2014, 16:49
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Centrado vertical de texto en Flex

gracias por responder, con (align-items: center;) pierdo el efecto (width:100%;) quedando centrado con el ancho del contenido, efecto (margin:0 auto;) no deseado

am- AttributeModule, creo que viene siendo un derivado de data- , es una propuesta, aunque aun no he comprobado si la W3C lo permite como si fuese un data-


am-row y am-cel es la grilla

am-nav=row/column es para representar los enlaces en horizontal o vertical

supongo que en buenas practicas serian contenedores diferentes, estoy experimentando

me gustaría que el resultado fuese como table, pero mediante Flex:
Código HTML:
display:table-cell;
text-align:center;
vertical-align:middle;

He encontrado este ejemplo, usan align-self, pero usan tres niveles de etiquetas y yo lo estoy intentando con dos etiquetas, <nav> y <a>
Código HTML:
<div class= "flex-container stretch">
 <div class= "flex-item"><p> 1</p></div>
 <div class= "flex-item"><p> 2</p></div>
 <div class= "flex-item"><p> 3</p></div>
 <div class= "flex-item"><p> 4</p></div>
 <div class= "flex-item"><p> 5</p></div>
 <div class= "flex-item"><p> 6</p></div>
 <div class= "flex-item"><p> 7</p></div>
</div>

<style>
.flex-container {
 width : 250px;
 height : 200px;
 padding : 5px;
 margin : 10px auto;
 background-color : #124678;
 display : -webkit-flex;
 display : -ms-flexbox;
 display : flex;
 -webkit-flex-wrap : wrap;
 -ms-flex-wrap : wrap;
 flex-wrap : wrap;
 }
.flex-item {
 display : inherit;
 width : 50px;
 min-height : 50px;
 background-color : #ccc;
 margin : 5px;
 }
.flex-item p {
 width : 100%;
 text-align : center;
 align-self : center;
 margin : 0;
 }
.flex-container.stretch {
 -webkit-align-content : stretch;
 -ms-flex-line-pack : stretch;
 align-content : stretch;
 }
</style> 

Última edición por quico5; 30/11/2014 a las 17:38
  #4 (permalink)  
Antiguo 30/11/2014, 19:26
 
Fecha de Ingreso: enero-2008
Mensajes: 580
Antigüedad: 16 años, 3 meses
Puntos: 9
Respuesta: Centrado vertical de texto en Flex

Lo he apañado así:

Código HTML:
<!DOCTYPE html>
<html lang="es">
<head>
	<meta charset="UTF-8"/>
	<title>Document</title>
	<link rel="stylesheet" href="style.css"/>
</head>
<body am-panel>

	<header>HEADER</header>
	<section>
	
		<div am-row>
			<div am-cel="one">
			
				<nav am-nav="row">
					<a href=""><span>1</span></a>
					<a href=""><span>2</span></a>
					<a href=""><span>3</span></a>
				</nav>
				
			</div>		
			<div am-cel="five">
				
				body
				
			</div>
			
		</div>

	</section>
	<footer>FOOTER</footer>
	
</body>
</html> 
Código:
 /* style.less */
[am-nav]{
	flex: 1;
	display: flex;
	flex-direction: column;
	a{
		background-image: linear-gradient(lime, silver);
		color: #333;
		display: flex;
		flex: 1;
		span{
			flex: 1;
			align-self: center;
			text-align: center;
		}
	}
}

Etiquetas: background, color, flex, vertical
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:27.