3 - CSS+JS
3 - CSS+JS
3 - CSS+JS
espaciado del contenido, mostrar múltiples columnas, añadir animaciones y otras funcionalidades.
Este módulo nos introducirá en el dominio de las reglas básicas de CSS, selectores, propiedades,
reglas de escritura de CSS, aplicación de CSS a HTML, introducción de medidas, color y otras
unidades en CSS, cascadas y herencias; y depuración de CSS.
Cómo funciona CSS
En este módulo comenzaremos con la base teórica, viendo qué es CSS y cómo el navegador transforma HTML en un DOM, y cómo
se aplica el CSS a las partes del DOM, algunos ejemplos muy básicos de sintaxis y el código necesario para incluir nuestro CSS en
nuestra página web.
Sintaxis CSS
A continuación, profundizaremos todavía más en la sintaxis, viendo cómo las propiedades y sus valores forman bloques declarativos, y
cómo los bloques declarativos y los selectores forman reglas CSS completas. Terminaremos señalando otras características de la sintaxis
CSS como los comentarios y los espacios en blanco.
Selectores
Ya han sido mencionados en el anterior artículo, pero ahora los veremos en mucho más detalle, viendo los tipos de selectores
existentes y su funcionamiento.
Cascada y herencia
CSS dispone de dos sistemas relacionados para resolver situaciones con conflictos entre selectores (distintos selectores seleccionando
los mismos elementos; ¿Cuál será el que se aplique finalmente?) y elementos anidados en otros elementos (¿Qué estilos se heredarán
por los hijos y cuáles no?). Este artículo tratará de exponer ambos sistemas con el suficiente detalle para qué resulte útil sin llegar a ser
pesado.
El modelo de cajas
El modelo de cajas es la base del diseño web — cada elemento se representa como una caja rectangular, con su contenido, padding
(espacio interior), borde y margen construidos uno sobre otro como las capas de una cebolla. El navegador, para interpretar el diseño
de una página, procesa los estilos que se aplicarán a cada caja, el tamaño de las capas de la cebolla y la ubicación de unas cajas con
respecto a otras. Antes de comprender cómo crear diseños CSS, debemos entender el modelo de cajas — que es lo que veremos en
este artículo.
Cómo funciona CSS
¿Qué es CSS?
Como ya hemos mencionado, CSS es un lenguaje que se usa para diseñar la forma de
presentar los documentos a los usuarios — su estilo, diseño, etc.
Presentar un documento a un usuario implica convertirlo en algo que este pueda utilizar.
Navegadores (Browsers), como Firefox, Chrome o Internet Explorer, están diseñados para
presentar documentos de forma visual, por ejemplo, en una pantalla de ordenador, un
proyector o una impresora.
¿Cómo afecta CSS a un HTML?
Los navegadores Web, al aplicar las reglas CSS a un documento, modifican la manera en que
este es presentado. Una regla CSS se compone de:
Un selector, que seleccionará los elementos afectados por el nuevo valor de la propiedad.
Por ejemplo, quiero que mi regla CSS afecte a todos los párrafos (p) de mi documento
HTML.
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My CSS experiment</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<h1>Hello World!</h1>
<p>This is my first CSS example</p>
</body>
</html>
h1 {
color: blue;
background-color: yellow;
border: 1px solid black;
}
p {
color: red;
}
¿Cómo funciona CSS en realidad?
El navegador convierte HTML y CSS en un DOM (Objeto Documento Modelo). Este DOM
representa el documento en la memoria del ordenador. Combinando el contenido del
documento con su estilo.
Un DOM tiene una estructura de árbol. Cada elemento, atributo y sección de texto en el
leguaje de marcado se convierte en un nodo DOM node en la estructura del árbol. Los
nodos se definen por su relación con otros nodos DOM. Algunos elementos son padres de
nodos hijos, y los hijos tienen nodos hermanos.
Entender el DOM nos ayudará a la hora de diseñar, depurar y mantener el CSS, ya que
DOM es donde se unen el CSS y el contenido del documento.
<p> P
Let's use: ├─ "Let's use:"
<span>Cascading</ ├─ SPAN
span> | └─ "Cascading"
<span>Style</span> = ├─ SPAN
<span>Sheets</span> | └─ "Style"
</p> └─ SPAN
└─ "Sheets"
Aplicación de CSS al DOM
Imaginemos que hemos añadido algún CSS a nuestro documento para darle estilo. Dado de
nuevo el documento HTML:
<p>
Let's use:
<span>Cascading</span>
<span>Style</span>
<span>Sheets</span>
</p>
span {
border: 1px solid black;
background-color: lime;
}
El navegador analiza el HTML y crea un DOM a partir de él, luego analiza el CSS. Como la
única regla en el CSS contiene un selector de un span, aplicará esa regla a cada uno de los
tres spans.
Cómo aplicar un CSS a nuestro HTML
Hay tres maneras distintas de aplicar CSS a un documento HTML, unas más prácticas que
otras. Veamos cada una de ellas:
Ya hemos visto CSS externos en este artículo, pero no con este nombre. Un CSS externo es
cuando el CSS se encuentra en un archivo separado con una extensión .css, y lo
referenciamos desde HTML con un elemento <link>.
<!DOCTYPE html>
<html>
h1 {
<head>
color: blue;
<meta charset="utf-8">
background-color: yellow;
<title>My CSS experiment</title>
border: 1px solid black;
<link rel="stylesheet" href="style.css">
}
</head>
<body>
p {
<h1>Hello World!</h1>
color: red;
<p>This is my first CSS example</p>
}
</body>
</html>
Documento de estilos interno (CSS interno)
p {
color: red;
}
</style>
</head>
<body>
<h1>Hello World!</h1>
<p>This is my first CSS example</p>
</body>
</html>
Estilos en una línea
Los estilos en una línea son declaraciones CSS que afetan solo a un elemento que está
contenido dentro de un atributo style
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>My CSS experiment</title>
</head>
<body>
<h1 style="color: blue;background-color: yellow;border: 1px solid black;">Hello World!</h1>
<p style="color:red;">This is my first CSS example</p>
</body>
</html>
Sintaxis CSS
Sintaxis CSS
Propiedades: Son identificadores que indican a las personas qué característica de estilo
(ancho, color de fondo, fuente) queremos cambiar.
Valores: A cada propiedad se le da un valor, que indica cómo queremos cambiar esta
característica (por ejemplo qué fuente, qué ancho o qué color usar)
h1 {
color: blue;
background-color: yellow;
border: 1px solid black;
}
p {
color: red;
}
p, li {
text-decoration: underline;
}
Declaraciones CSS
La principal función del lenguaje CSS es asignar valores a las propiedades CSS. El motor CSS
calcula qué declaraciones debe aplicar a cada elemento de una página para mostrarla y darle
estilo de manera adecuada.
Hay más de 300 propiedades diferentes en CSS y casi infinitos valores diferentes.
Hay más de 300 propiedades diferentes en CSS y casi infinitos valores diferentes.
Hacer CSS legible
body {
font: 1em/150% Helvetica, Arial, sans-serif;
padding: 1em;
margin: 0 auto;
max-width: 33em;
}
h1 {
font-size: 1.5em;
}
div p, #id:first-line {
background-color: red;
background-style: none
}
-
body {font: 1em/150% Helvetica, Arial, sans-serif; padding: 1em; margin: 0 auto; max-width: 33em;}
@media (min-width: 70em) { body {font-size: 130%;} }
h1 {font-size: 1.5em;}
En CSS, los selectores se usan para elegir los elementos HTML que queremos estilizar de
nuestra web. Disponemos de gran variedad de selectores CSS, que proporcionan mucha
precisión para seleccionar el elemento deseado.
Tipos de selectores
Selectores simples: Seleccionan los elementos por el nombre del tipo de elemento, class, o su id.
Selectores de atributos: Seleccionan los elementos por los valores de sus atributos.
Pseudo-clases: Seleccionan los elementos por el estado en que se encuentran, cómo haber aparecido al pasar el ratón, o
el tic deshabitado o seleccionado, o por ser el primer hijo de su padre en el árbol DOM.
Pseudo-elementos: Selecciona los elementos por su situación en relación a otro elemento, por ejemplo: la primera
palabra de cada párrafo, o el contenido que se encuentra justo después de un elemento.
Combinaciones: No son en sí mismos selectores, sino formas de combinar dos o más selectores de forma práctica
para una selección especial. Por ejemplo, se pueden seleccionar párrafos que sean descendientes de divs, o párrafos
situados justo después de títulos.
Selectores múltiples: Tampoco son selectores en sí mismos; podemos agrupar múltiples selectores en la misma
regla CSS separados por comas, para aplicarlos a una de las declaraciones o a todos los elementos seleccionados por
estos selectores.
Selectores simples
Son así llamados porque referencian directamente a uno o más elementos de un documento
en función del tipo de elemento(o su class o id).
Selector de elementos (selector de tipos)
Este selector hace referencia directamente a un tipo de elemento HTML. Es la manera más
sencilla para referirse a todos los elementos de un mismo tipo. Veamos el ejemplo:
El selector de clase se forma con un punto, '.', seguido de un nombre de clase. Un nombre
de clase puede ser cualquier valor sin espacios usado dentro de un atributo HTML class.
Podemos elegir el nombre que deseemos para la clase. Es conveniente saber que en un
mismo documento varios elementos pueden compartir el mismo valor de clase y que un
elemento puede tener varios nombres de clases separados por un espacio en blanco.
<ul>
<li class="first done">Create an HTML document</li>
<li class="second done">Create a CSS style sheet</li>
<li class="third">Link them all together</li>
</ul>
El selector ID está formado por una almohadilla (#), seguida del nombre ID de determinado
elemento. Cualquier elemento solo puede tener un único nombre ID fijado con el atributo
id. Podemos usar cualquier nombre para el ID. Es la forma más efectiva de selecionar un solo
elemento.
#polite {
font-family: cursive;
}
#rude {
font-family: monospace;
text-transform: uppercase;
}
Selector Universal
El selector universal (*) es el comodín. Nos permite seleccionar todos los elementos de una
página, se suele usar en combinación con otros selectores (ver Combinators más adelante).
<div>
<p>I think the containing box just needed
a <strong>border</strong> or <em>something</em>,
but this is getting <strong>out of hand</strong>!</p>
</div>
* {
padding: 5px;
border: 1px solid black;
background: rgba(255,0,0,0.25)
}
Combinaciones
En CSS, podemos combinar varios selectores juntos y con ello seleccionar elementos
contenidos en otros elementos, o elementos adyacentes a otros. Disponemos de cuatro
tipos:
El selector descendiente — (espacio) — permite seleccionar un elemento anidado en alguna parte dentro de
otro elemento (no tiene por qué ser un hijo; puede ser un nieto, por ejemplo)
El selector hijo — > — permite seleccionar un elemento que es hijo directo de otro elemento.
El selector hermano — + — permite seleccionar un elemento que es hermano directo de otro elemento (a la
derecha por ejemplo, en el mismo nivel jerárquico).
El selector hermano en general — ~ — permite seleccionar cualquier elemento hermano de otro (por
ejemplo en el mismo nivel jerárquico, pero no necesariamente adyacente a él).
section p {
color: blue;
}
<section>
<h2>Heading 1</h2>
section > p {
<p>Paragraph 1</p>
background-color: yellow;
<p>Paragraph 2</p>
}
<div>
<h2>Heading 2</h2>
h2 + p {
<p>Paragraph 3</p>
text-transform: uppercase;
<p>Paragraph 4</p>
}
</div>
</section>
h2 ~ p {
border: 1px dashed black;
}
Valores y unidades CSS
Hay muchos valores de propiedades CSS, valores numéricos, colores o funciones que
realizan una acción (como mostrar una imagen de fondo o rotar un elemento). Algunos
dependen de las unidades en que se expresen los valores a representar — como la medida
de una caja: ¿30 pixels, 30 cm. o 30 ems? En esta guía veremos valores usuales como longitud,
color y funciones simples, y otros menos comunes como grados o valores numéricos sin
unidades.
Unidades y valores CSS
Tipos
Valores numéricos: Valores de longitud para expresar el ancho de elementos, de bordes, o tamaño de fuentes;
también enteros sin unidades para expresar anchos de línea o veces que se repite una animación.
Porcentajes: Se usan para expresar tamaño o longitud — relativos por ejemplo al ancho y alto del contenedor previo
o al tamaño de fuente predeterminado.
Coordenadas: Para expresar la posición relativa de un elemento desde, por ejemplo, el margen superior izquierdo de
la pantalla.
Funciones: Para expresar imágenes de fondo o el degradado de la imagen de fondo.
Valores numéricos
Veremos los números utilizados en muchos sitios en unidades CSS. Esta sección trata acerca
de los tipos más utilizados de valores numéricos.
Nos referimos a píxeles (px) como unidades absolutas pues siempre tienen el mismo
tamaño independientemente de cualquier otra medida.
p:nth-child(2) {
width: 250px;
font-size: 24px;
}
p:nth-child(3) {
width: 350px;
font-size: 30px;
}
Porcentajes
También podemos usar valores porcentuales para expresar la mayoría de cosas que
requieran de valores numéricos, lo que nos permite crear, por ejemplo, cajas cuya anchura
siempre cambie según el ancho del contenedor padre.
En contraposición a las cajas cuya anchura este definida por un cierto valor (en px o en
ems), que siempre serán de la misma longitud, incluso aunque cambie el ancho de los
contenedores padres.
<div>Fixed width layout with pixels</div>
<div>Liquid layout with percentages</div>
div {
margin: 10px;
font-size: 200%;
color: white;
height: 150px;
border: 2px solid black;
}
div:nth-child(1) {
background-color: red;
width: 650px;
}
div:nth-child(2) {
background-color: blue;
width: 75%;
}
Colores
Hay varias formas de referenciar colores en CSS, algunas más recientes que otras. Los
mismos valores de color pueden utilizarse en todos los sitios en CSS, si nos referimos a color
de texto, de fondo o cualquier otro.
p {
background-color: red;
}
Valores hexadecimales
El siguiente sistema de color universal es el sistema hexadecimal, o códigos hex. Cada valor
hex está compuesto por una almohadilla (#) seguida por seis números hexadecimales, cada
uno de los cuales puede estar comprendido entre el 0 y la f (que representa el 15) —
0123456789abcdef (16 símbolos).
Cada par de valores representa uno de los canales primarios — rojo, verde y azul — y nos
permite referenciar cualquiera de los 256 valores disponibles para cada uno (16 x 16 = 256).
<p>This paragraph has a red background</p>
<p>This paragraph has a blue background</p>
<p>This paragraph has a kind of pinky lilac background</p>
El tercer sistema al que vamos a hacer referencia es RGB. Un valor RGB es una función —
rgb() — a la que pasamos tres parámetros que representas los colores primarios rojo, verde
y azul, parecido al sistema hex. La diferencia radica en que, en lugar de representar cada canal
por un par de números, ahora lo hacemos simplemente por un número decimal entre el 0 y
el 255.
<p>This paragraph has a red background</p>
<p>This paragraph has a blue background</p>
<p>This paragraph has a kind of pinky lilac background</p>
En programación, una function es una sección de código reutilizable que puede ser ejecutada
muchas veces para realizar una tarea repetitiva con el mínimo esfuerzo para el desarrollador
y para el ordenador. Las funciones se asocian normalmente con lenguajes como JavaScript,
Python, o C++, pero también existen en CSS, como valores de propiedad.
background-color: rgba(255,0,0,0.5);
background-color: hsla(240,100%,50%,0.5);
/* calculate the new position of an element after it has been rotated by 45 degress */
transform: rotate(45deg);
/* calculate the new position of an element after it has been moved across 50px and down 60px */
transform: translate(50px, 60px);
/* calculate the computed value of 90% of the current width minus 15px */
width: calc(90%-15px);
/* fetch an image from the network to be used as a background image */
background-image: url('myimage.png');
El modelo de cajas
El modelo de cajas
El modelo de cajas es la base del diseño web — cada elemento se representa como una caja
rectangular, con su contenido, padding (espacio interior), borde y margen construidos uno
sobre otro como las capas de una cebolla. El navegador, para interpretar el diseño de una
página, procesa los estilos que se aplicarán a cada caja, el tamaño de las capas de la cebolla y
la ubicación de unas cajas con respecto a otras. Antes de comprender cómo crear diseños
CSS, debemos entender el modelo de cajas.
Propiedades de las cajas
/* General styles */
body {
margin: 0;
}
#wrapper * {
padding: 20px;
font-size: 20px;
border: 20px solid rgba(0,0,0);
}
/* specific boxes */
#wrapper main {
background-color: yellow;
}
#wrapper header {
#wrapper footer {
}
Cascada y herencia
Cascada y herencia
Podemos encontrar varios selectores de reglas CSS afectando al mismo elemento, en estos
casos, ¿Qué regla será la que finalmente se aplicará al elemento? Esto está regulado por un
mecanismo llamado Cascada; también está relacionado con la Herencia (unos elementos
toman "heredan" valores de las propiedades de sus padres, pero otros no).
La cascada
CSS (Cascading Style Sheets) ya nos indica que cascada es un concepto importante. A su
nivel más básico indica que el orden de las reglas CSS importa, pero es algo más que eso.
Que prevalezcan unos selectores sobre otros en la cascada depende de tres factores (en
orden de importancia — los primeros prevalecen sobre los últimos):
1. Importancia
2. Especificidad
3. Orden del código
Importancia
En CSS, hay un trozo de sintaxis que podemos usar para asegurarnos que una determinada
regla siempre "gane" sobre todas las demás: !important.
#winning {
background-color: red;
border: 1px solid black;
}
.better {
background-color: gray;
border: none !important;
}
p {
background-color: blue;
color: white;
padding: 5px;
}
Veamos qué ha pasado:
Vemos que se han aplicado los valores de color y padding, pero no el de background-color
¿Porqué? En realidad deberían haberse aplicado las tres pues las reglas declaradas más tarde
normalmente prevalecen sobre las anteriores.
Sin embargo, ganan las reglas anteriores, pues los selectores de ID/clase son más específicos
que los selectores de elemento (lo veremos en la siguiente sección).
Ambos elementos pertenecen a la class better, pero el 2do tiene además la id winning. Las
IDs son más específicas que las clases (solo podemos tener un elemento para cada ID en
una página, pero podemos tener varios elementos de la misma clase — los selectores ID son
muy específicos en aquello que seleccionan), el fondo de color rojo y el borde de 1px negro
se deberían aplicar al segundo elemento, y el primer elemento tomará el fondo gris, sin
borde, como indica la clase.
El 2do elemento toma el fondo rojo, pero no el borde. ¿Porqué? La declaración !important
de la segunda regla — declarada después de (border: none) hará que esta declaración
prevalezca sobre el valor del borde de la regla anterior, incluso aunque ID tenga una
especificidad mayor.
Especificidad
Primero, solo nos interesan las primeras siete reglas del ejemplo, y como comprobaremos,
hemos incluido sus valores de especificidad en un comentario antes de cada uno:
Los dos primeros selectores compiten para dar estilo al color de fondo del link — el
segundo gana y hace que el fondo se establezca en color azul porque tiene un selector de ID
más en la cadena: su especificidad es de 201 contra 101.
Los selectores tercero y cuarto compiten para dar estilo al color del texto de los links — el
segundo gana y hace el texto blanco aun teniendo un elemento selector menos, el selector
que falta se ha cambiado por un selector de clase, que vale 10 en lugar de 1. Con todo, gana
la especificidad de 113 frente a 104.
Los selectores del 5–7 compiten para estilizar los marcos de los links cuando pasa el ratón. El
selector 6 pierde contra el 5 con especificidades de 23 contra 24 — tiene un selector de
elementos menos en la cadena. El selector 7 gana al 5 y al 6 — tiene el mismo número de
sub-selectores en la cadena que el 5, pero uno de los elementos se ha cambiado por un
selector de clase. Por lo que la especificidad ganadora es de 33 contra 23 y 24.
Orden del código
p {
color: red;
}
Herencia
La herencia en CSS es la última pieza que necesitamos conocer para tener la información
completa y comprender qué estilo se aplicará a un elemento. La idea es que unos elementos
se heredarán por los elementos hijos, y otros no.
Por ejemplo, tiene sentido que font-family y color sean heredadas, pues nos facilita establecer
un ancho de fuente básico aplicando una familia de fuentes al elemento <html>; después
podemos reemplazar las fuentes de elementos individuales si es necesario. Sería realmente
molesto tener que establecer la fuente base para cada elemento por separado.
unset : Este valor reestablece la propiedad a su valor natural, esto es: si la propiedad se
hereda de forma natural entonces actuará como inherit, sino, actuará como initial.
<ul>
<li>Default <a href="#">link</a> color</li>
<li class="inherit">Inherit the <a href="#">link</a> color</li>
<li class="initial">Reset the <a href="#">link</a> color</li>
<li class="unset">Unset the <a href="#">link</a> color</li>
</ul>
-
body {
color: green;
}
.inherit a {
color: inherit;
}
.initial a {
color: initial
}
.unset a {
color: unset;
}
Veamos que ha pasado aquí:
Como la propiedad color es heredada naturalmente, todos los elementos hijos de body
tendrán color verde. Cabe señalar que los navegadores establecen por defecto los links en
color azul en vez de permitir heredar naturalmente la propiedad color, entonces el primer
link de la lista será azul.
La segunda regla establece que los links dentro de un elemento con la clase inherit hereden
el color de su padre. En este caso, el link hereda el color de su padre <li>, que por defecto,
hereda su color de su padre <ul>, que por último hereda el color del elemento <body>,
cuyo color se estableció a green en la primera regla.
La tercera regla selecciona cualquier link dentro de un elemento con la clase initial y
establece el color a initial. Normalmente, el valor inicial de los navegadores para el color de
texto es el negro, luego este link será negro.
La última regla selecciona todos los links dentro de los elementos con la clase unset y pone
su valor a unset — no establece valor. Al ser la propiedad color una propiedad heredada
naturalmente actúa como si la clase fuera inherit. En consecuencia, este link se pondrá al
mismo color que body — esto es verde.
JavaScript es un lenguaje de programación que provee de interactividad y efectos especiales a las
páginas web. Cada vez que una página web hace algo más que estar ahí y mostrar información
estática que se pueda ver — mostrando actualizaciones de contenido oportunas , o mapas
interactivos, o gráficos animados 2D/3D, o desplazarse por reproductores de video, etc. —
puedes apostar a que JavaScript probablemente esté involucrado.
Primeros pasos con JavaScript
En nuestro primer módulo de JavaScript, primero contestaremos algunas preguntas fundamentales tales como "¿qué es
JavaScript?,"¿Cómo se ve?", y "¿Qué puede hacer?", antes de continuar con su primera experiencia práctica de escribir
JavaScript. Después de eso, discutimos algunas características clave de JavaScript en detalle, tales como las variables,
cadenas, números y matrices.
Arreglos
En el artículo final de este módulo vamos a ver los arreglos, que son una manera ordenada de almacenar una serie de datos bajo el
nombre de una sola variable. Aquí vamos a ver cuál es su utilidad y luego exploraremos la manera de crear uno, acceder, añadir y
eliminar elementos almecanados en un arreglo y otras de sus características.
¿Qué es JavaScript?
Bienvenido al curso de JavaScript para principiantes de MDN. En este primer artículo vamos
a conocer JavaScript desde un nivel muy general, contestando las preguntas ¿Qué es? y ¿Qué
hace?, con el propósito de que te sientas a gusto al usar JavaScript.
Definición General
Es la tercera capa del pastel de los estándares en las tecnologías para la web, dos de las
cuales son (HTML y CSS), hablaremos de ellas más adelante con más detalle en otra parte
de nuestra Área de Aprendizaje.
HTML es un lenguaje de marcado que usa la estructura para dar un sentido al contenido
web, por ejemplo define párrafos, cabeceras, tablas, imágenes y vídeos en la página.
CSS es un lenguaje de reglas en cascada que usamos para aplicar un estilo a nuestro
contenido en HTML, por ejemplo colocando colores de fondo, fuentes y marginando nuestro
contenido en múltiples columnas.
CSS es un lenguaje de reglas en cascada que usamos para aplicar un estilo a nuestro
contenido en HTML, por ejemplo colocando colores de fondo, fuentes y marginando nuestro
contenido en múltiples columnas.
Javascript
para.addEventListener('click', updateName);
function updateName() {
let name = prompt('Ingresa un nuevo nombre');
para.textContent = 'Player 1: ' + name;
}
Entonces, ¿Qué es lo que realmente podemos hacer?
Para hacer funcionar el código en respuesta a algunos eventos que están ocurriendo en la
página web. Usamos un evento en nuestro ejemplo anterior llamado clic para detectar
cuando el botón es cliqueado para luego hacer correr el código que actualice la etiqueta de
texto.
En este apartado, actualmente comenzaremos a ver unas cuantas líneas de código, y mientras
hacemos eso vamos explorando lo que actualmente está pasando cuando haces funcionar tu
código JavaScript en tu página Web.
Hagamos un breve recordatorio del historial de lo que sucede cuando cargas una página
web en tu navegador (primero hablamos acerca de cómo funciona CSS en nuestro artículo).
Cuando cargas una página Web en tu navegador, tu código (HTML, CSS y JavaScript) es leído
dentro de un ambiente de ejecución (pestaña del navegador). Esto es como una fábrica que
coge la materia prima (Las líneas de código) y lo presenta como el producto final (la página
Web).
¿Qué es lo que JavaScript hace en tu página web?
En este apartado, actualmente comenzaremos a ver unas cuantas líneas de código, y mientras
hacemos eso vamos explorando lo que actualmente está pasando cuando haces funcionar tu
código JavaScript en tu página Web.
Hagamos un breve recordatorio del historial de lo que sucede cuando cargas una página
web en tu navegador (primero hablamos acerca de cómo funciona CSS en nuestro artículo).
Cuando cargas una página Web en tu navegador, tu código (HTML, CSS y JavaScript) es leído
dentro de un ambiente de ejecución (pestaña del navegador). Esto es como una fábrica que
coge la materia prima (Las líneas de código) y lo presenta como el producto final (la página
Web).
JavaScript funciona con un orden
para.addEventListener('click', updateName);
function updateName() {
var name = prompt('Enter a new name');
para.textContent = 'Player 1: ' + name;
}
¿Cómo añadir JavaScript a tu página web?
JavaScript es aplicado a tu página en HTML de una manera similar al CSS. Donde el CSS usa
el elemento <link> para aplicar estilos-de-hoja externos y el tag <style> es un elemento
para aplicar estilos-de-hoja interno al HTML, JavaScript solamente necesita de un solo amigo
en el mundo del HTML - que es el elemento <script>.
JavaScript por dentro
function createParagraph() {
var para = document.createElement('p');
para.textContent = 'You clicked the button!';
<script> document.body.appendChild(para);
}
// JavaScript goes here
var buttons = document.querySelectorAll('button');
</script>
for (var i = 0; i < buttons.length ; i++) {
buttons[i].addEventListener('click', createParagraph);
}
JavaScript Externo
Esto trabaja muy bien, pero, ¿qué pasa si queremos poner nuestro JavaScript en un archivo
externo? Entonces exploremos esto ahora.
<script src="script.js"></script>
function createParagraph() {
var para = document.createElement('p');
para.textContent = 'You clicked the button!';
document.body.appendChild(para);
}
A veces puedes notar que te encontraras con algunas líneas de JavaScript dentro de archivos
HTML
<button onclick="createParagraph()">¡Presioname!</button>
function createParagraph() {
var para = document.createElement('p');
para.textContent = '¡Presionaste el Botón!';
document.body.appendChild(para);
}
Comentarios
Así como en HTML y CSS, es posible escribir comentarios dentro de tu código de JavaScript
que serán ignorados por el navegador, simplemente existe para proveer instrucciones a tus
colegas desarrolladores de como el código funciona (y para ti, por si regresas a tu código
después de 6 meses y no recuerdas lo que hiciste). Los comentarios son muy útiles, deberías
usarlos más a menudo, particularmente para grandes aplicaciones.
// Soy un comentario
/*
Yo tambíen
soy un commentario
*/
// Función: crea un nuevo párrafo y lo añade en la parte inferior del cuerpo HTML.
function createParagraph() {
let para = document.createElement('p');
para.textContent = 'You clicked the button!';
document.body.appendChild(para);
}
/*
1. Obtiene referencias de todos los botones de la página y los ordena en una matriz.
2. Recorre todos los botones y añade un clic event listener a cada uno de ellos.