78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
		
		
			
		
	
	
			78 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
|   | --- | ||
|  | id: 587d781e367417b2b2512ac9 | ||
|  | title: Cambia la posición relativa de un elemento | ||
|  | challengeType: 0 | ||
|  | videoUrl: 'https://scrimba.com/c/czVmMtZ' | ||
|  | forumTopicId: 301044 | ||
|  | dashedName: change-an-elements-relative-position | ||
|  | --- | ||
|  | 
 | ||
|  | # --description--
 | ||
|  | 
 | ||
|  | CSS trata cada elemento HTML como su propia caja, esto es a lo que usualmente se refiere como el <dfn>Modelo de Caja de CSS</dfn>. Los elementos bloque automáticamente empiezan en una nueva línea (piensa en las etiquetas título, párrafos y divs) mientras que los elementos en línea se ubican entre el contenido al rededor (como imágenes o spans). El diseño por defecto de los elementos en esta manera se llama el <dfn>flujo normal</dfn> de un documento, pero CSS ofrece la propiedad position para sobreescribirlo. | ||
|  | 
 | ||
|  | Cuando la posición de un elemento se establece a `relative`, te permite especificar como CSS lo moverá *relativo* a su posición actual dentro del flujo normal de la página. Se empareja con las propiedades de desplazamiento CSS de `left` o `right`, y `top` o `bottom`. Estas dicen cuántos pixeles, porcentajes, o ems se debe mover el elemento *lejos* de donde esté normalmente posicionado. El siguiente ejemplo mueve el párrafo 10 pixeles lejos de la parte inferior: | ||
|  | 
 | ||
|  | ```css | ||
|  | p { | ||
|  |   position: relative; | ||
|  |   bottom: 10px; | ||
|  | } | ||
|  | ``` | ||
|  | 
 | ||
|  | Cambiando la posición de un elemento a relative no lo quita del flujo normal; otros elementos a su alrededor aún se comportarán como si dicho elemento estuviera en su posición predeterminada. | ||
|  | 
 | ||
|  | **Nota:** el posicionamiento te da mucha flexibilidad y poder sobre el diseño visual de una página. Es bueno recordar que no importa la posición de los elementos, el lenguaje de marcado HTML subyacente debe organizarse y tener sentido cuando se lee de arriba a abajo. Así es como los usuarios con discapacidades visuales (que dependen de dispositivos de asistencia como lectores de pantalla) acceden a tu contenido. | ||
|  | 
 | ||
|  | # --instructions--
 | ||
|  | 
 | ||
|  | Cambia la propiedad `position` de `h2` a `relative`, y usa CSS desplazamiento para moverlo 15 pixeles lejos de la parte superior `top` donde se ubica dentro del flujo normal. Observa que no hay impacto en las posiciones de los elementos h1 y p que están al rededor. | ||
|  | 
 | ||
|  | # --hints--
 | ||
|  | 
 | ||
|  | El elemento `h2` debe tener una propiedad `position` con valor `relative`. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert($('h2').css('position') == 'relative'); | ||
|  | ``` | ||
|  | 
 | ||
|  | Tu código debe usar un desplazamiento CSS para posicionar relativamente el elemento `h2` a 15px lejos de la parte superior `top` donde se ubica normalmente. | ||
|  | 
 | ||
|  | ```js | ||
|  | assert($('h2').css('top') == '15px'); | ||
|  | ``` | ||
|  | 
 | ||
|  | # --seed--
 | ||
|  | 
 | ||
|  | ## --seed-contents--
 | ||
|  | 
 | ||
|  | ```html | ||
|  | <style> | ||
|  |   h2 { | ||
|  | 
 | ||
|  | 
 | ||
|  |   } | ||
|  | </style> | ||
|  | <body> | ||
|  |   <h1>On Being Well-Positioned</h1> | ||
|  |   <h2>Move me!</h2> | ||
|  |   <p>I still think the h2 is where it normally sits.</p> | ||
|  | </body> | ||
|  | ``` | ||
|  | 
 | ||
|  | # --solutions--
 | ||
|  | 
 | ||
|  | ```html | ||
|  | <style> | ||
|  |   h2 { | ||
|  |     position: relative; | ||
|  |     top: 15px; | ||
|  |   } | ||
|  | </style> | ||
|  | <body> | ||
|  |   <h1>On Being Well-Positioned</h1> | ||
|  |   <h2>Move me!</h2> | ||
|  |   <p>I still think the h2 is where it normally sits.</p> | ||
|  | </body> | ||
|  | ``` |