Wilfredo Meneses
Profesor universitario
En 1997 nace HTML4 publicado por el W3C como estándar de diseño web
En 1999 nace XHTML 1.0 que extiende HTML4
En 2001 se publica la nueva versión de XHTML, la 1.1
En 2002 se prepara un borrador para una nueva versión de XHTML
En 2008 nace HTML5 como el sucesor de HTML4 y XHTML 1.1
<!-- HTML 5 -->
<!DOCTYPE html> si es HTML
<!-- XHTML 5 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/
DTD/xhtml11.dtd">
<!‐‐ texto del comentario (una o más líneas) ‐‐>Normalmente se usan para:
<!‐‐ Inicio de las noticias ‐‐>
<div id="noticias"> ... </div>
<!‐‐ Fin de las noticias ‐‐><!‐‐ Esto se puede mejorar ‐‐><!‐‐ Script para identificar las preferencias del usuario ‐‐>Todos los caracteres se pueden especificar con su código precedido del símbolo &
| < | < |
| > | > |
| & | & |
| " | " |
| | (espacio en blanco) |
| ' | ' |
| – | - |
Lista de 256 caracteres especiales en HTML: http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references
Los caracteres <, >, " y & pueden dar problemas con los textos en HTML
Solución
<p>Los caracteres <, >, " y & pueden dar problemas con los textos en HTML</p>
Text
Acento y letras especiales
<!-- URL problemática -->
http://www.ejemplo.com/estaciones/otoño.html
<!-- URL correcta -->
http://www.ejemplo.com/estaciones/oto%F1o.html
<!-- URL problemática -->
http://www.ejemplo.com/ruta/nombre página.html
<!-- URL correcta -->
http://www.ejemplo.com/ruta/nombre%20p%E1gina.htmlDelimita la cabecera del documento
En la cabecera se describe información del documento (título, meta- información, scripts, estilos)
<head>
Indica el título del documento
Es obligatoria y tiene que aparecer una y solo una vez en el documento
El navegador lo visualiza en la barra de título de su ventana
<title>
Enlace a otros archivos (generalmente hojas de estilo)
<link rel="stylesheet" type="text/css" href="/css/formato.css" />
<link />
Metainformación sobre el documento (información procesable automáticamente por programas que analicen la página). Normalmente se usan los atributos name (para definir un tipo de metadato) y content (para definir el valor)
<meta />
<meta name="author" content="Juan Pavón" />
<meta name="robots" content="index, follow" />
<meta name="keywords" content="sistemas web, html" />
<meta name="description" content="Curso sobre diseño web" /><script>
<script type="text/javascript" src="js/aviso.js"></script><style>
<style type="text/css">
p { font-family: Arial; font-size: 10pt; color: rgb(0,0,128);
text-indent: 15px; text-align: justify; margin-left: 10px }
</style>El texto de un documento debe estar contenido por alguna de las etiquetas de una de las tres categorías siguientes:
No necesitan estar contenidas dentro de ninguna etiqueta (salvo <body> y <html>)
Se aplican a una parte de texto dentro de un bloque
Sirven para estructurar el texto y pueden contener en su interior etiquetas de bloque:
Contiene el texto de un párrafo
El texto del párrafo se muestra con el formato por defecto del navegador
El navegador no muestra los espacios en blanco ni los saltos de línea del código fuente
> Entre párrafos se pone una línea en blanco (y solo una)
> Si un párrafo <p> no contiene nada, no se muestra (salvo que la hoja de estilo incluya bordes o márgenes)
<p>Esto es un párrafo</p>
Texto preformateado: igual que <p> pero se tienen en cuenta espacios en blanco y líneas en blanco
<pre>Esto es un párrafo
donde se respetan
los espacios en blanco y
líneas en
blanco</pre>
<h1>Sección 1</h1>
<h2>Sección 1.1</h2>
<p>Texto normal.</p>
<h3>Sección 1.1.1</h3>
<p>Texto normal.</p>Encabezado (de nivel 1 a 6)
Información de contacto del autor de la página
<address>Autor: Juan Pavón (UCM) <br />
Última modificación: 10 de enero de 2013
</address>Salto de línea (sin dejar una en blanco entre medias)
Línea horizontal (horizontal rule)
Se usa cada vez menos ya que con CSS se pueden crear mejor los bordes
Tipo de información
<abbr title="etcétera">etc.</abbr>
<abbr title="Universidad Complutense de Madrid">UCM</abbr>
<p>Como dice el refrán,
<cite>A la tercera va la vencida</cite>.</p>
Tipo de información
Parecido a <pre> (pero <code> es un elemento de línea y <pre> un elemento de bloque)
Fragmento de código de programa (aparecerá en letra monospace)
<code>main() { printf ("Hola, mundo"); }</code><samp>salida producida por un programa</samp><kbd>texto a introducir por el usuario</kbd>Para indicar edición del texto
<p>La nota final es <del>suspenso</del>
<ins datetime="20130625">aprobado</ins>.</p>
La nota final es suspenso aprobado.
División: mecanismo más importante para agrupar diversos elementos de bloque (párrafos, encabezados, listas, tablas, divisiones, etc.)
El formato hay que definirlo en una hoja de estilo
Una división no puede insertarse dentro de una etiqueta en-línea (<strong>,<em>, etc.) o de un bloque de texto (párrafo <p>, encabezado <h1> ... <h6>, dirección <address>, pre-formateado <pre>, lista, etc). Pero sí puede insertarse dentro de una tabla, de un bloque de cita <blockquote> o de otra división <div>
Con CSS se puede luego definir la posición de los distintos elementos
<main>: Define el contenido principal del documento. Solo debe haber un <main> por documento y debe contener el contenido central relevante.
<article>: Representa un contenido independiente y autónomo, como una entrada de blog o una noticia, que puede ser distribuido de forma independiente.
<header>: Define el encabezado de un documento o sección, incluyendo elementos como el título, logotipo y navegación.
<section>: Define una sección temática dentro del documento. Se utiliza para agrupar contenido relacionado bajo un título.
<aside>: Contenido secundario o tangencial, como una barra lateral o una nota, relacionado con el contenido principal pero no parte de él.
<nav>: Define una sección de navegación con enlaces a otras partes del mismo documento o a otras páginas.
<footer>: Define el pie de página del documento o sección, que suele contener información de contacto, derechos de autor y otros detalles importantes.
Hiperenlace o hipervínculo (hyperlink)
<a href="URL">texto asociado al enlace</a> El texto asociado al enlace aparece destacado
Protocolo (http://)
Servidor (www.miweb.es)
Ruta (/info/cursos)
Consulta (?curso=web)
Sección (#segunda)
http://www.miweb.es/ info/cursos?curso=web#segunda
La referencia puede ser:
- A una página de otro sitio web: http://www.miweb.es
- A otra página del mismo sitio web
> Recomendable que sea una ruta relativa al documento actual:
<a href="../img/foto.jpg">Mi foto</a>
> Mejor que una ruta absoluta:
<a href="c:/web/img/foto.jpg">Mi foto</a>
La referencia puede ser:
A un marcador definido en la misma página
• En algún sitio se tiene que haber definido un marcador:
• Con el atributo name en una etiqueta a (anchor): <a name="marcador">Nota</a>
• O con el atributo id:
<h2 id="marcador">Nota</h2>
• Que luego se puede enlazar:
<a href="#marcador">Ir al lugar marcado</a>
<a href="../documento.html#marcador">...</a>
<a href="http://www.abc.es/documento.html#marcador">...</a>
>>Para que el enlace se abra en otra ventana: target="_blank"
Inserta una imagen de mapa de bits (de algún archivo aparte)
src: camino absoluto o relativo a la imagen desde la página web
alt: texto que debe mostrarse si la imagen no está disponible
title: (opcional) texto que se muestra en forma de "tip" (cuadrito amarillo que aparece cuando se sitúa el ratón encima de la imagen)
width y height: (opcionales) anchura y altura de la imagen
Es conveniente usar estos atributos porque permite al navegador reservar espacio para la imagen mientras se carga
<p>
El logo de mi universidad:
<img
src="https://unp.edu.ni/wp-content/uploads/2024/02/logo-FHD@4x-8.png"
alt="Universidad Nacional Politécnica"
title="Universidad Nacional Politécnica"
/>
</p>>>Las listas se pueden anidar
<ol>
<li>Primer elemento </li>
<li>Segundo elemento </li>
<ul>
<li>Elemento de lista desordenada anidada</li>
</ul>
<li>Definiciones: </li>
<dl>
<dt>Término</dt>
<dd>Definición del término 1</dd>
</dl>
</ol>Permiten presentar información tabular, en filas y columnas, con cabeceras
Cada elemento de la tabla puede ser simple o a su vez ser otra agrupación de filas y de columnas, cabeceras y pies de tabla, subdivisiones, cabeceras múltiples y otros elementos complejos
Esto ha dado lugar a que a veces se usan para estructurar la página, lo cual no es en absoluto recomendable
Define una tabla Atributos
border – en píxeles
width – anchura de la tabla en píxeles o en porcentaje del espacio horizontal del elemento padre
cellspacing – espacio entre el borde de la celda y su contenido
cellpadding – espacio entre celdas o entre celda y borde de tabla
summary – aporta información sobre el contenido de la tabla (para dispositivos que no la pueden visualizar, por ejemplo)
<caption>
Leyenda de la tabla: texto opcional que se muestra fuera de la tabla(por defecto, arriba)
Se suele poner a continuación de <table>
No puede incluir párrafos ni otros elementos de bloque, aunque sí etiquetas en línea (<strong>, <em>, etc.)
<table border="1" width="30%">
<caption>Fusión de filas y columnas</caption>
<tr>
<th colspan=3>Números</th>
</tr>
<tr>
<th>Nombre</th>
<th>Valor</th>
<th>Idioma</th>
</tr> <tr>
<td>Uno</td>
<td>1</td>
<td rowspan="2">Español</td>
</tr> <tr>
<td>Dos</td>
<td>2</td>
</tr>
</table>
Tienen al menos un cuerpo <tbody>
<table summary="Análisis de ventas anuales">
<caption>Análisis de ventas anuales</caption>
<thead>
<tr>
<th scope="col">AÑO</th>
<th scope="col">Producto A</th>
<th scope="col">Producto B</th>
<th scope="col">Producto C</th>
<th scope="col">Producto D</th>
</tr>
</thead>
<tbody>
<tr>
<th scope="row">N-3</th><td>-</td><td>-</td><td>-</td><td>-</td>
</tr>
<tr>
<th scope="row">N-2</th><td>3</td><td>5</td><td>8</td><td>4</td>
</tr>
<tr>
<th scope="row">N-1</th><td>4</td><td>4</td><td>7</td><td>3</td>
</tr>
<tr>
<th scope="row">N</th><td>5</td><td>7</td><td>6</td><td>2</td>
</tr>
</tbody>
</table><form>
Generalmente para introducir datos y enviarlos al servidor web
El navegador envía únicamente los datos de los controles contenidos en el formulario
En una misma página puede haber varios formularios que envíen datos al mismo o a diferentes agentes
<form action="http://www.miweb.com/procesaform.php" method="post">
Escribe tu nombre:
<input type="text" name="nombre" value="" />
<br/>
<input type="submit" value="Enviar" /> </form>Dentro de un formulario puede haber:
Párrafos, imágenes, divisiones, listas, tablas, etc.
<input /> <button> <select> <optgroup> <option> <textarea>
<fieldset> <legend>
<label> permite mejorar la accesibilidad de los controles
<datalist>, <keygen>, <output>
Atributos de <form>
action="URL": aplicación del servidor que procesará los datos
remitidos (por ejemplo, un script de PHP)
method: método HTTP para enviar los datos al servidor
• GET: como añadido a la dirección indicada en el atributo action
Limitado a 500 bytes
Los datos enviados se añaden al final de la URL de la página y por tanto se ven en la barra del navegador
Se suele usar cuando se envía información que no modifica el servidor (por ejemplo, términos para una búsqueda)
Si no se especifica, los navegadores suelen hacer GET
<input />
type = "text | password | checkbox | radio | submit | reset | file | hidden | image | button" - Indica el tipo de control que se incluye en el formulario
name = "texto" - Nombre del control (para que el servidor pueda procesar el formulario)
value = "texto" - Valor inicial del control
size - Tamaño inicial del control (en píxeles, salvo para campos de texto y de password que se refiere al número de caracteres)
maxlength = "numero" - Máximo tamaño de texto y de password
checked = "checked" – Opción preseleccionada para los controles checkbox y radiobutton
disabled = "disabled" - El control aparece deshabilitado y su valor no se envía al servidor junto con el resto de datos
readonly = "readonly" - El contenido del control no se puede modificar
src = "url" - Para el control que permite crear botones con imágenes,
indica la URL de la imagen que se emplea como botón de formulario
alt = "texto" - Descripción del control
Cuadro de texto
Nombre <br/>
<input type="text" name="nombre" value="" />Contraseña <br/>
<input type="password" name="contrasena" value="" />Contraseña
Cuadro de texto de varias líneas
Nombre <br/>
<textarea name="nombre" rows="4" cols="50">
Contenido inicial del cuadro de texto
</textarea>Botón de envío de formulario
<input type="submit" name="enviar" value="Enviar" />Botón de reseteo de formulario
<input type="reset" name="borrar" value="Borrar formulario" />Formulario Email
<h3>Envíanos tus sugerencias por e‐mail</h3>
<form action="MAILTO:sugerencias@tehacemoscaso.com" method="post"
enctype="text/plain">
Nombre:<br>
<input type="text" name="name" value="tu nombre"><br>
E‐mail:<br>
<input type="text" name="mail" value="tu email"><br>
Sugerencia:<br>
<input type="text" name="comment" value="Tus sugerencias" size="50"><br>
<br> <input type="submit" value="Enviar">
<input type="reset" value="Borrar">
</form>Botones en general:
<button type="submit">Enviar</button>
<button type="reset">Borrar formulario</button>
<button type="button">Botón</button>Casillas de verificación (checkbox)
Lenguajes de programación: <br/>
<input name="java" type="checkbox" value="on"/> Java
<input name="cplusplus" type="checkbox" value="on"/> C++
<input name="csharp" type="checkbox" value="on"/> C#
<input name="otros" type="checkbox" value="on"/> OtrosSexo <br/>
<input type="radio" name="sexo" value="hombre" checked="checked" /> Hombre
<input type="radio" name="sexo" value="mujer" /> MujerRadiobutton
Listas de selección
Atributos de option:
<form action="">
<select name="lenguajes">
<option value="c">C</option>
<option value="cplusplus">C++</option>
<option value="java" selected>Java</option>
<option value="php">PHP</option>
<option value="python">Python</option>
</select>
</form>Incluir un fichero
<form name="fichero" action="procesa_fichero.php" method="post"
enctype="multipart/form-data">
Fichero: <input type="file" name="archivo" />
<input type="submit" value="Enviar">
</form>Agrupación de elementos
<form action="">
<fieldset>
<legend>Información personal:</legend>
Nombre: <input type="text" size="50"><br>
E‐mail: <input type="text" size="50"><br>
Ciudad: <input type="text" size="20">
</fieldset>
</form>Ejercicios
<object> Atributos:
<object data="pelicula.mpeg" type="application/mpeg" />
Recursos que podemos añadir mediante <object>
Si el navegador no sabe abrir el contenido, solicitará al usuario que descargue un plugin para ejecutar.
<object title="Película interesante" classid="http://www.miweb.com/peli.py">
<!‐‐ Formato alternativo en forma de vídeo ‐‐>
<object data="pelicula.mpeg" type="application/mpeg">
<!‐‐ Otro formato alternativo mediante una imagen GIF ‐‐>
<object data="pelicula.gif" type="image/gif">
<!‐‐ Si el navegador no soporta ningún formato, mostrar un texto ‐‐>
Aquí debería haberse visto una película interesante.
</object>
</object>
</object><object data="video.swf" type="application/x‐shockwave‐flash">
</object><p>Aaron Swartz keynote ‐ "How we stopped SOPA" </p>
<object width="640" height="360"
type="application/x‐shockwave‐flash"
data="http://www.youtube.com/v/Fgh2dFngFsg">
<param name="movie" value="http://www.youtube.com/v/Fgh2dFngFsg" />
<param name="wmode" value="transparent" />
</object><video width="320" height="240" controls>
<source src="movie.mp4" type="video/mp4">
<source src="movie.ogg" type="video/ogg">
Tu navegador no puede mostrar el vídeo.
</video><audio controls>
<source src="horse.ogg" type="audio/ogg">
<source src="horse.mp3" type="audio/mpeg">
Tu navegador no puede reproducir el sonido.
</audio>Cuestiones importantes:
Chrome
Firefox
Internet Explorer
Safari
<track>
<video width="320" height="240" controls>
<source src="forrest_gump.mp4" type="video/mp4">
<source src="forrest_gump.ogg" type="video/ogg">
<track src="subtitles_en.vtt" kind="subtitles" srclang="en"
label="English">
<track src="subtitles_no.vtt" kind="subtitles" srclang="no"
label="Norwegian">
</video>Hojas de estilo en cascada (Cascading Style Sheets)
Versiones
Más información:
https://www.html5rocks.com/es/tutorials/internals/howbrowserswork/
La definición de los estilos para un elemento se puede realizar:
<p style="color: black; font‐family: Verdana;">Bla bla bla</p>
Con la etiqueta <style> dentro de la sección <head>
<head>
...
<style type="text/css">
p { color: black; font‐family: Verdana; } </style>
</head>La definición de los estilos para un elemento se puede realizar:
Con una hoja de estilo externa - la mejor opción
Comportamiento por defecto del navegador
Todas las definiciones se combinan en cascada para producir una única hoja de estilo
Ficheros CSS externos
Ejemplo: Dado el fichero estilos.css:
p { color: black; font‐family: Verdana; }
1. Con la etiqueta <link>
<link rel="stylesheet" type="text/css" href="/css/estilos.css" media="screen" />
Una hoja de estilo define un conjunto de reglas
Cada regla de estilo consta de
Selector: elemento al que se aplica el estilo • Pueden ser varios, separados por ,
Lista de declaraciones
• Cada declaración es un par propiedad:valor
• Separadas por ;
Clase
<h2 class="cabecera2">
<h2 class="clase1 clase2">
h2.cabecera2 { text‐align: center; }
Esto equivale a *.clase
.cabeceracentrada { text‐align: center; }
<h1 class="cabeceracentrada">Título centrado</h2>
<h2 class="cabeceracentrada">Subtítulo centrado</h2>
Selectores descendentes
p .destacado { ... }
ATENCIÓN: Los espacios y la puntuación son importantes:
p.destacado { ... }
Todos los párrafos <p> que estén declarados con atributo class="destacado"
p, .destacado { ... }
Todos los párrafos <p> y todos los elementos con atributo class="destacado"
Ejemplos de selectores descendentes:
Todos los elementos span con atributo class="especial" que estén dentro de un elemento div con atributo class="principal"
Todos los elementos <em> dentro de un <span> dentro de un <p>
Ejemplos de selectores descendentes:
Todos los elementos <a> dentro de algún elemento dentro de un <p>
• Se aplica a
<p><span><a href="#">Enlace</a></span></p>
• No se aplica a
<p><a href="#">Enlace</a></p>
Se aplicaría a los dos casos anteriores
ID
<p id="destacado">Segundo párrafo</p>
Como recomendación
Usar selector de clase, que se aplica a varios elementos, para dar una apariencia homogénea al documento
Usar selector de ID con mesura
Pseudo clases
a:link { color: blue }
Pseudo clases de enlaces
a { background‐color: white; color: blue;
border: white 3px solid; outline: white 3px solid;
}
a:visited { background‐color: yellow; color: red; }
a:hover { background‐color: black; color: white; } Otras pseudo clases
:first-child – Primer elemento de un tipo contenido dentro de otro div p:first‐child { color: red; }
:lang() – Aspecto de los elementos de un idioma determinado.
q:lang(es) { quotes: "«" "»"; }
q:lang(en) { quotes: '"' '"'; }
<p>El profesor dijo que <q lang="es">Muy bien</q>.</p>
<p>The teacher said <q lang="en">Very well</q>.</p> Pseudo elementos
:first-letter – Primera letra en un elemento de bloque
h1:first‐letter { font‐size: 400%; }
:first-line – Primera línea en un elemento de bloque p:first‐line { text‐transform: uppercase; }
:before y :after – Para añadir contenido antes o después de un elemento
p.cuidado:before { content: "Aviso: "; font‐weight: bold;
text‐decoration: underline;
}
<p class="cuidado">Esto es un mensaje de atención.</p>Selector de hijos
p > span { color: blue; }
• Se aplica el selector <p><span>Texto1</span></p>
• No se aplica <p><a href="#"><span>Texto2</span></a></p>
• El selector descendente (p span{...})se aplicaría en los dos casos
Selector adyacente
p + p { text‐indent: 1.5em; }
h1 + p { text‐indent: 1.5em; }
Selector de atributos
[title~="web"] { color: red; }
todos los elementos que tengan "web" dentro del valor de title
*[lang=en] { ... } todos los elementos en inglés
*[lang|="es"] { ... } todos los elementos en español: "es", "es-ES", "es-AR",...
p { color: blue; }
<h1>Sección 1</h1>
<p>Un texto con una parte<em>enfatizada</em></p>
Unidades de medida y colores
Modelo de cajas
Modelo de posicionamiento
Propiedades de visualización
Enlaces con las pseudoclases a:link, a:hover, a:active, a:visited Imágenes
Listas
Tablas
Formularios
Para definir la altura, anchura, márgenes, tamaño de letra, ...
Los valores se expresan como números enteros o con decimales
Unidades absolutas
cm, centímetros
mm, milímetros
in, pulgadas (inches). 1in==2.54cm
pt, puntos. 1pt==0.35mm la más utilizada pc, picas. 1pc==12 pt
Unidades relativas
em, relativa respecto al tamaño de letra del elemento
• Si el font-size es de 12pt, 1em==12pt
ex, relativa respecto a la altura de la letra x minúscula
px, (píxel) relativa respecto a la resolución de la pantalla del dispositivo (respecto al tamaño del canvas)
Porcentajes
Valor numérico seguido del símbolo %
p { font‐size: 150% /* 150% del valor del padre */
padding: 50% } /* 50% del width del padre */Los colores se pueden especificar de varias maneras:
Palabras clave: aqua, black, blue, fuchsia, gray, green, lime, maroon,
navy, olive, orange, purple, red, silver, teal, white, yellow.
RGB hexadecimal: #ff0000 la manera más habitual
RGB decimal: rgb(255,0,0)
RGB porcentual: rgb(100%, 0%, 0%)
Imagen del estándar:
http://www.w3.org/TR/CSS21/syndata.html#value-def-color
Para cada etiqueta HTML se crea una caja rectangular que encierra los contenidos de ese elemento
El tamaño de cada área (margin, border, padding) se define con propiedades relativas a las cuatro direcciones:
top, bottom, left, right
margin: 10px /* Propiedad resumida */
margin‐top: 20px;
margin‐right: 20px;El tamaño del contenido se define con:
width
height
• <medida>
• <porcentaje>
• auto: lo ajusta el navegador
• inherit: valor del elemento padre
Propiedades del borde
none | hidden | dotted | dashed | solid | double |
groove | ridge | inset | outset | inherit
Resumen: border
( <medida_borde> || <color_borde> || <estilo_borde> ) | inherit
CSS3 añade bordes redondeados y sombras
Ejercicio
¿Cuál será la anchura del siguiente bloque? div {
width: 400px; padding‐left: 60px; padding‐right: 60px; margin‐left: 40px; margin‐right: 40px; border: 10px solid black;
}
<color> | transparent | inherit
<url> | none | inherit
La imagen se puede repetir con background-repeat
repeat | repeat-x | repeat-y | no-repeat | inherit
Qué ocurre con la imagen de fondo cuando se hace scrolling en la página: background-attachment
scroll | fixed | inherit
Todas las propiedades: background
( <background-color> || <background-image> || <background- repeat> || <background-attachment> || <background-position> ) | inherit
Tipos de elementos
De bloque
Siempre empiezan en una nueva línea y ocupan todo el espacio disponible hasta el final de la línea
address, blockquote, center, dir, div, dl, fieldset, form, h1, h2, h3, h4, h5, h6, hr, menu, noframes, noscript, ol, p, pre, table, ul
En línea
Solo ocupan el espacio necesario para mostrar sus contenidos
Se pueden insertar en elementos de bloque y de línea
a, abbr, acronym, b, basefont, bdo, big, br, cite, code, dfn, em, font, i, img, input, kbd, label, q, s, samp, select, small, span, strike, strong, sub, sup, textarea, tt, u, var
Para cada elemento se genera una caja
Una caja se puede colocar segun uno de los siguientes modos:
position: static
• Normal o estatico: es el modo de posicionamiento habitual position: relative
• Como el posicionamiento normal pero la caja se desplaza segun los atributos left, right, top, bottom
position: absolute
La caja se coloca de manera absoluta con respecto a la primera caja contenedora no estatica segun los valores left, right, top, bottom. Si no estuviera contenido en ninguna caja no estatica tomaría <body>
El atributo z-index permite controlar como se apilan las cajas
• Las cajas que queden debajo se ocultarán
position: fixed
float
La posicion de la caja se determina con las propiedades top, right, bottom y left respecto al primer elemento contenedor no estatico
Si no hubiera un contenedor posicionado, entonces se usa la ventana del navegador como referencia
Para que el contenedor se considere posicionado basta con declararle position: relative
El resto de las cajas sí pueden verse afectadas
Pasan a ocupar la posicion que ha dejado la anterior
Se pueden producir solapamientos
Igual que el anterior pero las cajas correspondientes no se mueven en la pantalla del navegador aun cuando se usen las barras de desplazamiento
Puede servir por ejemplo en el medio print para imprimir páginas con encabezado y pie de página
Hasta la zona más a la izquierda o más a la derecha posible
Si hay otras cajas flotantes, se van colocando seguidas
Si no existe sitio en la línea actual, la caja flotante baja a la línea inferior hasta que encuentra el sitio necesario para mostrarse lo mas a la izquierda o lo mas a la derecha posible en esa nueva línea
Para que un elemento no se vea afectado por lo que hagan las cajas flotantes a su alrededor puede definir la propiedad clear que fuerza a que el elemento se muestre debajo de cualquier caja flotante
Atributos de clear: none | left | right | both | inherit
Si clear: left, el elemento se desplaza de forma descendente hasta que pueda colocarse en una línea en la que no haya ninguna caja flotante en el lado izquierdo
Si clear: both, el elemento se colocara debajo de cualquier caja flotante
Figuras de: http://librosweb.es/css/capitulo_5/posicionamiento_absoluto.html
Para que un elemento no se vea afectado por lo que hagan las cajas flotantes a su alrededor puede definir la propiedad clear que fuerza a que el elemento se muestre debajo de cualquier caja flotante
Atributos de clear: none | left | right | both | inherit
Si clear: left, el elemento se desplaza de forma descendente hasta que pueda colocarse en una línea en la que no haya ninguna caja flotante en el lado izquierdo
Si clear: both, el elemento se colocara debajo de cualquier caja flotante
Crear el HTML y los Estilos para la siguiente página
display
• block: hace que se trate el elemento como un bloque
• inline: hace que se trate el elemento como en línea
• none: el elemento desaparece de la página y los demas elementos pueden ocupar su lugar
visibility
Atributos: visible | hidden | collapse | inherit
• collapse es similar a hidden pero para filas y columnas de tablas
overflow
visible: el contenido no se corta y se muestra sobresaliendo la zona reservada para visualizar el elemento. Comportamiento por defecto
hidden: el contenido sobrante se oculta y solo se visualiza la parte que cabe dentro de la zona reservada para el elemento
scroll: solamente se visualiza el contenido que cabe dentro de la zona reservada para el elemento, pero tambien se muestran barras de scroll que permiten visualizar el resto del contenido
auto: el comportamiento depende del navegador. Normalmente es el mismo que la propiedad scroll
z-index
Las etiquetas <div> y <span> en principio no tienen ningun significado para la presentacion
Solo agrupan elementos
• <div> a nivel de bloque
• <span> a nivel de línea
Combinados con selectores de clase permiten estructurar la
aplicacion de estilos en una página
Para estructurar una página
• A cada bloque asignarle una clase o un id
• Cada bloque <div> puede constar de otros bloques <div>
• A nivel de línea se pueden definir cajas con <span>
#contenedor {
width: 400px;
margin: 0 auto;
}<body>
<main id="contenedor">
<h1>Sección 1</h1>
<p> bla bla bla </p>
...
</main>
</body>min-width: anchura mínima de un elemento
Por defecto: 0
max-width: anchura máxima de un elemento
Por defecto: none
min-height: altura mínima de un elemento
max-height: altura máxima de un elemento
• Se pueden dar como un valor numérico o un porcentaje
#contenedor {
min‐width: 300px;
max‐width: 800px;
}Propiedades tipográficas
color: <color> | inherit
font-family
(( <nombre_familia> | <familia_generica> ) (,<nombre_familia> | <familia_generica>)* ) | inherit
Familias genericas: serif (Times New Roman), sans-serif (Arial), cursive (Comic Sans), fantasy (Impact) y monospace (Courier New)
font-size
<tamano_absoluto> | <tamano_relativo> | <medida> | <porcentaje> | inherit
font-weight
normal|bold|bolder|lighter|100|200|300|400|500|600|700|
800 | 900 | inherit
font-style
• normal | italic | oblique | inherit
font-variant
• normal | small-caps | inherit
font
• ( ( <font-style> || <font-variant> || <font-weight> )? <font-size> ( / <line- height> )? <font-family> ) | caption | icon | menu | message-box | small-caption | status-bar | inherit
Apariencia del texto
text-align
• left | right | center | justify | inherit
line-height
• normal | <numero> | <medida> | <porcentaje> | inherit text-decoration
• none | ( underline || overline || line-through || blink ) | inherit text-transform
• capitalize | uppercase | lowercase | none | inherit
Apariencia del texto
vertical-align
• baseline | sub | super | top | text-top | middle | bottom | text-bottom | <porcentaje> | <medida> | inherit
text-indent
• <medida> | <porcentaje> | inherit
letter-spacingyword-spacing
• normal | <medida> | inherit
white-space–tratamiento de los espacios en blanco
• normal | pre | nowrap | pre-wrap | pre-line | inherit
Propiedades:
img {
width: 120px;
height: 250px;
border: none;
}
<img src="imagen.png" width="120" height="250" />
Propiedades:
list-style-type
• disc | circle | square | decimal | decimal-leading-zero | lower-roman | upper-roman | lower-greek | lower-latin | upper-latin | armenian | georgian | lower-alpha | upper-alpha | none | inherit
list-style-position
• inside | outside | inherit
list-style-image
• <url> | none | inherit
list-style
• ( <list-style-type> || <list-style-position> || <list-style-image> ) |
inherit
form.elegante input { padding: .2em; }Lenguaje de script (guión: secuencia de instrucciones) para la
creación de páginas web dinámicas
Crear visualizaciones mas atractivas y mayor interactividad
Permite gestionar diferencias de implementación entre los distintos navegadores
Lenguaje interpretado (no se compila)
El navegador se encarga de interpretar y ejecutar el código JavaScript
JavaScript NO es Java Basa su sintaxis en C
Multiples librerías y frameworks: Jquery, Angular, etc.
JavaScript en el servidor (tendencia en auge): Node.js, Jaxer, EJScript, RingoJS, AppengineJS
Por seguridad, los scripts sólo se pueden ejecutar dentro del
navegador y con ciertas limitaciones:
No pueden comunicarse con recursos que no pertenezcan al mismo dominio desde el que se descargó el script
No pueden cerrar ventanas que no hayan abierto esos mismos scripts
No pueden acceder al sistema de ficheros, ni para leer ni para escribir
No pueden acceder a las preferencias del navegador
Si la ejecución de un script dura demasiado tiempo el navegador informa al usuario de que el script está consumiendo demasiados recursos y le da la posibilidad de detener su ejecucion
ECMA-262 – ECMAScript Language Specification (1997)
Actualmente, version 6
By Wilfredo Meneses