<
elemento>
contenido </
elemento>
<p>Esto es un párrafo</p>
Algunas etiquetas pueden contener información adicional llamadas atributos
<elemento
atributo="valor"
atributo="valor">
contenido </elemento>
<a href="page2.html">Next page</a>
Algunas etiquetas no tienen contenido y se pueden abrir y cerrar en una etiqueta
<elemento atributo="valor" attribute="value" />
<br />, <hr />, <br>, <hr>
<img src="bunny.jpg" alt="fig de Pascua" />
<!DOCTYPE html> <html lang="es"> <head> <meta charset="utf-8"> <meta name="description" content="Contenido"> <meta name="keywords" content="key1, key2"> <meta name="author" content="Adan Perez"> <link href="favicon.ico" type="image/x-icon" rel="shortcut icon"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Título de la página</title> <link rel="stylesheet" href="style.css"> <script src="script.js"></script> </head> <body> contenido visible de la página </body> </html>
.html
DOCTYPE
le indica al navegador que interprete el código de la página como HTML5<!--
... -->
comentarios para documentar el fichero HTML o el texto
<!-- Mi página web, por Jaimito Pérez Ingeniería Web, ETSIIT --> <p>la asignatura <!-- NO --> es divertida!</p>
--
Hay muchos tipos de etiquetas HTML. Una lista de las más usadas sigue. Se puede ver la lista completa en este enlace. A menos que se especifique lo contrario se considera que las etiquetas se usan dentro del <body>
Etiqueta | Descripción |
---|---|
<title> |
Page title (in <head> ) |
<meta> |
Meta information tag (in <head> ) |
<p> |
Paragraph tag |
<h1> ... <h6> |
Heading tags |
<header>, <footer> |
Header/Footer tags |
<article>, <section> |
Article and section tags |
<hr /> |
Horizontal rule tag |
<br /> |
Line break tag |
<a> |
Anchor tag (page links) |
Tag | Description |
---|---|
<img /> |
Image tag |
<em>, <strong> |
Emphasis (italic) and strong (bold) tags |
<del>, <ins> |
Deletion (strikethrough) and insertion tags |
<abbr> |
Abbreviation tag |
<ul> , <ol> |
Unordered and ordered list tags |
<li> |
List item tag (used as children of <ul> or <ol> list tags) |
<dl> , <dt> , <dd>
| Definition list tags |
<blockquote> ,
<q> |
Block and inline quotation tags |
<code> |
Computer code tag |
<pre> |
Preformatting tag |
<title>
describe el título de la página
<title>Tema 2: HTML Básico</title>
head
de la página<meta>
información sobre la página (para el navegador, buscador, etc.)
<meta charset="utf-8" /> <meta name="description" content="Sitio Web de los autores de programas Java." /> <meta name="keywords" content="java, textbook" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" />
head
de la página HTMLmeta
habitualmente tiene los atributos name
y content
meta
usan el atributo http-equiv
en lugar de name
meta
con el atributo charset
indica la codificación de lenguaje/caractermeta
con atributo Content-Type
detiene al validador de advertencia "tentatively valid" viewport
que dará instrucciones al navegador de cómo dimensionar y escalar la página<h1>
,
<h2>
, ...,
<h6>
encabezados o títulos para separar las partes principales de la página (block)
<h1>Universidad de Cantabria</h1> <h2>Departamento de Matemática Aplicada y Ciencias de la Computación</h2> <h3>Escuela de Ingenieros Industriales y de Telecomunicación</h3>
<p>
párrafos del texto (block)
<p>Neque porro quisquam est qui dolorem ipsum quia dolor sit amet, consectetur, adipisci velit... </p>
body
de la página<a>
enlaces, o "anclas (anchors)", a otras páginas (inline)
<p> Buscar <a href="http://www.google.com/">Google</a> o <a href="../index.html">Lecture Notes</a>. </p>
href
para especificar la URL del enlace. Los posibles valores son:
p
or h1
<img>
inserta una imagen en la página (inline)
<img src="images/gollum.jpg" alt="Gollum de LOTR" />
src
especifica la URL de la imagenalt
para describir la imagen<a href="http://theonering.net/"> <img src="images/gandalf.jpg" alt="Gandalf del LOTR" title="No pasarán!" /> </a>
a
, la imagen se convierte en un enlacetitle
es una ayuda opcional (en cualquier elemento)<a href="http://theonering.net/"> <img src="images/gandalf.jpg" alt="Gandalf del LOTR" style="width:30%;" title="No pasarán!" /> </a>
width
del CSS se le asigna un porcentaje, la imagen se escalará cuando cambie el tamaño de la ventana del navegador<figure>
inserta una descripción al pie de la imagen
<figure> <img src="images/gollum.jpg" alt="Gollum de LOTR" /> <figcaption>Personaje Gollum en LOTR </figcaption> </figure>
figcaption
especifica la descripción de la imagenNo influyen en la apariencia de la página, sino en la estructura de la página
section
header
footer
nav
aside
article
<hr>
línea horizontal para separar visualmente secciones de una página (bloque)
<p>Primer párrafo</p> <hr> <p>Segundo párrafo</p>
>
<br>
fuerza un salto de línea en medio de un elemento block (inline)
<p>La calidad nunca es un accidente, <br> siempre es el resultado de un esfuerzo de la inteligencia</p> <p>Dos cosas me admiran: la inteligencia de las bestias <br> y la bestialidad de los hombres.</p>
br
(>= 2 en una fila es malo)
br
no se debe usar para separar párrafos, ni usar varias veces en una fila para crear espaciosbr
no se debe usar para separar párrafos, ni usar varias veces en una fila para crear espacios<em>
,
<strong>
em
: texto enfatizado (representado normalmente en italica)
strong
: texto muy enfatizado (representado normalmente en negrita)
<p> HTML es <em>realmente</em>, <strong>REALMENTE</strong> divertido! </p>
<del>
, <ins>
contenido que debe ser eliminado o añadido al documento (inline)
<p> <del>Final Exam</del> <ins>Midterm</ins> is on <del>Aug 29</del> <ins>Apr 17</ins>. </p>
<abbr>
una abreviatura, acrónimo, o término corriente (inline)
<p> Los buzos cuidadosos siempre recuerdan comprobar sus equipos <abbr title="Self-Contained Underwater Breathing Apparatus">SCUBA</abbr> . </p>
<ul>
,
<li>
ul
representa una lista con viñetas (block)
li
representa un elemento simple dentro de la lista (block)
<ul> <li>Sin zapatos</li> <li>Sin camiseta</li> <li>No hay problema!</li> </ul>
<ul> <li>Simpsons: <ul> <li>Homer</li> <li>Marge</li> </ul> </li> <li>Familia del individuo: <ul> <li>Peter</li> <li>Lois</li> </ul> </li> </ul>
<ol>
ol
representa una lista ordenada de elementos (block)
<p>Grados ofertados en la Escuela:</p> <ol> <li>Ingeniería de Tecnologías de Telecomunicación</li> <li>Ingeniería en Tecnologías Industriales</li> <li>Ingeniería Eléctrica</li> <li>Ingeniería Electrónica Industrial y Automática</li> <li>Ingeniería Mecánica</li> <li>Ingeniería Química</li> </ol>
<dl>
,
<dt>
,
<dd>
dl
representa una lista de definiciones de términos (block)
dt
representa cada término y dd
su definición
<dl> <dt>SGML</dt> <dd>Metalenguaje para la definición de otros lenguajes de marcado</dd> <dt>XML</dt> <dd>Lenguaje basado en SGML y que se emplea para describir datos</dd> <dt>XHTML</dt> <dd>Lenguajes derivados de XML para determinadas aplicaciones</dd> </dl>
<blockquote>
cita larga (block)
<p>Tim Berners Lee, creador de la WWW:</p> <blockquote> <p>El poder de la web está en su universalidad. El acceso para todos sin importar su discapacidad es un aspecto esencial.</p> </blockquote>
<q>
cita corta (inline)
<p>Dijo Miguel de Cervantes: <q>Cada uno es artífice de su ventura</q></p>
<p>Dijo Miguel de Cervantes: "Cada uno es artífice de su ventura"</p>
No se usa comillas " por dos razones:
"
<q>
nos permite aplicar estilos CSS a las citas (ver más adelante)No se usa comillas " por dos razones:
"
<q>
nos permite aplicar estilos CSS a las citas (ver más adelante)<code>
parte de código de ordenador (mostrado habitualmente en un tipo de letra de ancho fijo)
<p> Las etiquetas <code>ul</code> y <code>ol</code> crean listas. </p>
<pre>
parte de un texto pre-formateado (block)
<pre> Steve Jobs speaks loudly reality distortion Apple fans bow down </pre>
code
?<p> HTML es <em>realmente, <strong>REALMENTE</em> muy</strong> divertido! </p>
<body> <form>
<div> <li>
manera de representar cualquier caracter Unicode dentro de una página Web
caracter(es) | entidad |
---|---|
< > | < > |
é è ñ | é è ñ |
™ © | ™ © |
π δ Δ | π δ Δ |
И | И |
" & | " & |
&
en una página web?<p> <a href="http://google.com/search?q=marty&ie=utf-8"> Search Google for Marty </a> </p>
<link href="filename" type="MIME type" rel="shortcut icon" />
<link href="yahoo.gif" type="image/gif" rel="shortcut icon" />
link
, colocada en la sección head
, agrega otro fichero a la página
(info)
<table>
,
<tr>
,
<td>
Una tabla 2D de filas y columnas de datos (block element)
<table> <tr><td>1,1</td><td>1,2 okay</td></tr> <tr><td>2,1 real wide</td><td>2,2</td></tr> </table>
1,1 | 1,2 okay |
2,1 ancho real | 2,2 |
table
define la tabla completa, tr
cada fila, y td
cada dato de celda<th>
,
<caption>
<table> <caption>Mis datos valiosos</caption> <tr><th>Columna 1</th><th>Columna 2</th></tr> <tr><td>1,1</td><td>1,2 okay</td></tr> <tr><td>2,1 ancho real</td><td>2,2</td></tr> </table>
Columna 1 | Columna 2 |
---|---|
1,1 | 1,2 okay |
2,1 ancho real | 2,2 |
th
en una fila se consideran cabeceros; por defecto, aparecen en negritacaption
al inicio de la tabla etiqueta su significadotable { border: 2px solid black; caption-side: bottom; } tr { font-style: italic; } td { background-color: yellow; text-align: center; width: 30%; }
Columna 1 | Columna 2 |
---|---|
1,1 | 1,2 okay |
2,1 ancho real | 2,2 |
border-collapse
table, td, th { border: 2px solid black; } table { border-collapse: collapse; }
Column 1 | Column 2 |
---|---|
1,1 | 1,2 |
2,1 | 2,2 |
Column 1 | Column 2 |
---|---|
1,1 | 1,2 |
2,1 | 2,2 |
border-collapse
une los bordes en unorowspan
y colspan
<table> <tr><th>Columna 1</th><th>Columna 2</th><th>Columna 3</th></tr> <tr><td colspan="2">1,1-1,2</td> <td rowspan="3">1,3-3,3</td></tr> <tr><td>2,1</td><td>2,2</td></tr> <tr><td>3,1</td><td>3,2</td></tr> </table>
colspan
hace que una celda ocupe varias columnas; rowspan
varias filastext-align
y vertical-align
controlan el alineamiento del texto dentro de la celda<col>
,
<colgroup>
<table> <col class="urgente" /> <colgroup class="destacar" span="2"></colgroup> <tr><th>Columna 1</th><th>Columna 2</th><th>Columna 3</th></tr> <tr><td>1,1</td><td>1,2</td><td>1,3</td></tr> <tr><td>2,1</td><td>2,2</td><td>2,3</td></tr> </table>
.urgent { background-color: pink; } .highlight { background-color: yellow; }
col
se puede usar para definir estilos que aplican a una columna completa (autocierre)colgroup
aplica a un estilo de un grupo de columnas (NO autocierre)table
tiene semántica; debe usarse solo para representar una tabla de datosdiv
s, widths/margins, floats, etc. para conseguir la disposición de elementosURL?name=value&name=value...
http://www.google.com/search?q=Obama http://example.com/student_login.php?username=perez&id=1234567
username
tiene como valor perez
, y sid
tiene valor 1234567
<form>
<form action="URL de destino"> controles del formulario </form>
action
proporciona la URL de la página que procesará los datos del formularioaction
de la URL <form action="http://www.google.com/search"> <div> Busquemos en Google: <input name="q" /> <input type="submit" /> </div> </form>
div
Una lista parcial de elementos de formularios HTML. Para más información en los elementos de formularios, consultar MDN.
<input>
<!-- 'q' es el nombre del parametro requerido por Google -->
<input type="text" name="q" value="Informe Pisa" />
<input type="submit" value="Venga!" />
input
se usa para crear varios controles UI
name
especifica el nombre del parámetro que se envía al servidortype
puede ser button
, checkbox
, file
, hidden
, password
, radio
, reset
, submit
, text
, ...value
especifica el texto inicial del control<input>
<input type="text" size="10" maxlength="8" /> NetID <br /> <input type="password" size="16" /> Password <input type="submit" value="Log In" />
input
: disabled
, maxlength
, readonly
, size
, value
size
controla el ancho del campo de texto en la pantalla maxlength
limita el número de caracteres que el usuario es capaz de escribir en él<textarea>
un area de texto multi-línea (inline)
<textarea rows="4" cols="20"> Escribe tus comentarios aquí. </textarea>
textarea
(opcional)rows
y cols
especifican la altura/ancho en caracteresreadonly
significa que el texto no se puede modificar<input>
opciones si/no que se pueden seleccionar o deseleccionar (inline)
<input type="checkbox" name="lechuga" /> Lechuga <input type="checkbox" name="tomate" checked="checked" /> Tomate <input type="checkbox" name="pepino" checked="checked" /> Pepino
on
:
webapp?tomate=on&pepino=on
checked="checked"
en HTML para inicializar la caja como seleccionada<input>
conjuntos de opciones mutuamente exclusivos (inline)
<input type="radio" name="cc" value="visa" checked="checked" /> Visa <input type="radio" name="cc" value="mastercard" /> MasterCard <input type="radio" name="cc" value="amex" /> American Express
name
(solo se puede escoger uno cada vez)value
para cada uno o se enviarán con valor on
<label>
<label><input type="radio" name="cc" value="visa" checked="checked" /> Visa</label> <label><input type="radio" name="cc" value="mastercard" /> MasterCard</label> <label><input type="radio" name="cc" value="amex" /> American Express</label>
label
puede ser objetivo de las reglas de estilo CSS<select>
,
<option>
menú de opciones que se expanden y contraen (inline)
<select name="favoritecharacter"> <option>Jerry</option> <option>George</option> <option selected="selected">Kramer</option> <option>Elaine</option> </select>
option
representa cada opciónselect
: disabled
, multiple
, size
selected
asigna cuál es seleccionado inicialmente<select>
en listas<select name="favoritecharacter[]" size="3" multiple="multiple"> <option>Jerry</option> <option>George</option> <option>Kramer</option> <option>Elaine</option> <option selected="selected">Newman</option> </select>
multiple
permite seleccionar varios elementos pulsando mayúscula o ctrl-click
[]
si se permite selección múltiple
option
se pueden asignar inicialmente a selected
<optgroup>
<select name="favoritecharacter"> <optgroup label="Major Characters"> <option>Jerry</option> <option>George</option> <option>Kramer</option> <option>Elaine</option> </optgroup> <optgroup label="Minor Characters"> <option>Newman</option> <option>Susan</option> </optgroup> </select>
optgroup
s?Reset
Name: <input type="text" name="name" /> <br /> Food: <input type="text" name="meal" value="pizza" /> <br /> <label>Meat? <input type="checkbox" name="meat" /></label> <br /> <input type="reset" />
value
<input type="text" name="username" /> Nombre <br /> <input type="text" name="sid" /> ID <br /> <input type="hidden" name="universidad" value="UC" /> <input type="hidden" name="anno" value="2014" />
<fieldset>
,
<legend>
grupos de campos de entrada con etiqueta opcional (block)
<fieldset> <legend>Tarjetas de crédito:</legend> <input type="radio" name="cc" value="visa" checked="checked" /> Visa <input type="radio" name="cc" value="mastercard" /> MasterCard <input type="radio" name="cc" value="amex" /> American Express </fieldset>
fieldset
agrupa campos de entrada (input fields) relacionados, añadiendo un borde; legend
proporciona una etiqueta elemento[atributo="valor"] { propiedad : valor; propiedad : valor; ... propiedad : valor; }
input[type="text"] { background-color: yellow; font-weight: bold; }
input
)<label><input type="radio" name="cc" /> Visa</label> <label><input type="radio" name="cc" /> MasterCard</label> <br /> Personaje favorito Big Bang: <select name="startrek"> <option>Sheldon Cooper</option> <option>Rajesh Koothrappali</option> </select> <br />
[cc] => on, [startrek] => Rajesh Koothrappali
value
<label><input type="radio" name="cc" value="visa" /> Visa</label> <label><input type="radio" name="cc" value="mastercard" /> MasterCard</label> <br /> Personaje favorito Big Bang: <select name="startrek"> <option value="sheldon">Sheldon Cooper</option> <option value="rajesh">Rajesh Koothrappali</option> </select> <br />
value
asigna el valor de lo que se envía si el control es seleccionado[cc] => visa, [startrek] => sheldon
" "
, "/"
, "="
, "&"
"Marty's cool!?"
→ "Marty%27s+cool%3F%21"
$_GET
and $_POST
automáticamente los decodificaGET
vs. POST
requests
GET
: pide al servidor por una página o datos
POST
: envía los datos a un servidor web y recupera la respuesta del servidor
POST
es más apropiado que GET
GET
incrusta sus parámetros en sus URLs<form action="http://foo.com/app.php" method="post"> <div> Nombre: <input type="text" name="nombre" /> <br /> Alimento: <input type="text" name="comida" /> <br /> <label>Carne? <input type="checkbox" name="carne" /></label> <br /> <input type="submit" /> <div> </form>
La validación se puede realizar:
nav
, aside
, header
, footer
, section
, aside
, article
audio
y video
para incrustado de multimedia canvas
para dibujo de formas 2D en HTML/JS (como DrawingPanel
)
(ref
1,
2,
3)rel="..."
,
itemscope
, itemtype
, itemprop
<a href="video.avi">My video</a>
<audio controls> <source src="horse.mp3" type="audio/mpeg"> </audio>
<video controls > <source="video.mp4" type="video/mp4"> </video>
iframe
colocando en src la referencia que se genera cuando se comparte el fichero y poniendo preview en lugar de view
<iframe frameborder="0" width="350" height="100" src="https://drive.google.com/file/d/ 15K48dsrajY4E9I9xg9omWRO12nwVx0sb/preview"></iframe>
<iframe frameborder="0" width="400" height="280" src="https://drive.google.com/file/d/ 1uQD2tLpEGmeH8Y8FW2RuJj2HVaAa9zaD/preview"></iframe>
<object>
<object data="video.avi" type="video/avi"></object>
embed
archive
, classid
, codebase
, codetype
,
data
, declare
, height
, name
,
standby
, type
, usemap
, width
type
especifica el tipo de fichero
MIME<param>
<object id="slider1" width="100" height="50"> <param name="BorderStyle" value="thick" /> <param name="MousePointer" value="hourglass" /> <param name="Enabled" value="true" /> <param name="Min" value="0" /> <param name="Max" value="10" /> </object>
name
y value
para indicar al objeto qué parametros es y qué valor usarcanvas
<canvas id="mycanvas"
width="200" height="150"></canvas>
context
a partir del cual se puede dibujar cosas, recuerda Graphics g
var ctx = document.getElementById("mycanvas").getContext("2d");
ctx.fillStyle = "#FF0000"; ctx.strokeStyle = "#00FF00"; for (var i = 0; i < 10; i++) { ctx.fillRect(i * 20, i * 10, 400 - i * 40, 200 - i * 20); ctx.strokeRect(i * 20, i * 10, 400 - i * 40, 200 - i * 20); }
método canvas | análogo DrawingPanel |
---|---|
ctx.fillText(string, x, y); | g.drawString(str, x, y); |
ctx.fillRect(x, y, width, height); | g.fillRect(x, y, width, height); |
ctx.beginPath(); ctx.arc(x, y, radius, startAngle, endAngle); ctx.stroke(); |
g.drawOval(x, y, width, height); |
ctx.beginPath(); ctx.moveTo(x1, y1); ctx.arc(x2, y2); ctx.stroke(); |
g.drawLine(x1, y1, x2, y2); |
ctx.fillStyle = "#FF0000" | g.setColor(color); |
canvas
timer
canvas
puede recibir eventos del ratón
canvas
alert
a menos que sea absolutamente necesariometa
descriptivas Herramientas
Recursos