149

Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

  • Upload
    others

  • View
    7

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype
Page 2: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

1.1

1.2

1.2.1

1.2.2

1.2.3

1.2.4

1.2.5

1.2.6

1.2.7

1.2.8

1.2.9

1.2.10

1.2.11

1.2.12

1.2.13

1.3

1.3.1

1.3.2

1.3.3

1.3.4

1.3.4.1

1.3.4.2

1.3.4.3

1.3.4.4

1.3.5

1.3.6

1.3.7

1.4

1.4.1

1.4.2

TableofContentsContenidos

IntroducciónaHTML

EditoresHTML

Sintaxisdellenguaje

EstructurabásicadeunaWeb

Elementosdelacabecera

Etiquetasbásicas

Listas

Tablas

Cajas,etiquetaDIV

Enlaces

Imágenes

Formularios

Eventos

SímbolosHTML

IntroducciónaCSS

Adjuntarunahojadeestilo

DefinicióndeestilosparaetiquetasHTML

Identificadoresyclases

EstilosCSSbásicos

Estilosparatextos

Estilosparapárrafos

Estilosparafondos

Estilosparacajas

Pseudo-clases

Capas

Ejemplodeuso

IntroducciónaHTML5

Navegadoresquelosoportan

Doctype

2

Page 3: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

1.4.3

1.4.4

1.4.5

1.4.6

1.4.7

1.4.8

1.4.9

1.4.10

1.4.11

1.5

1.5.1

1.5.2

1.5.3

1.5.4

1.5.5

1.5.6

1.5.7

1.5.8

1.5.9

1.5.10

1.6

1.6.1

1.6.2

1.6.3

1.6.4

1.6.5

1.6.6

1.6.7

1.6.8

1.6.9

1.6.10

1.6.11

1.7

1.8

Estructurasemántica

Formularios

EtiquetaMark

Canvas

Audio

Vídeo

Geolocalización

AlmacenamientoOffline

DetectarfuncionalidadesdeHTML5

IntroducciónaCSS3

Nuevosselectoresdeatributos

Nuevaspseudo-clases

Color

Bordes

Fondos

Texto

Columnas

Modelodecajabásico

Transiciones

Transformaciones

IntroducciónaJavaScript

InclusióndeJavaScriptenHTML

Etiquetanoscript

Consideracionessobreellenguaje

Variables

Operadores

Estructurasdecontroldeflujo

Funcionesútiles

Funciones

DOM

Eventos

Deteccióndeerrores

Másinformación

Ejercicios1

3

Page 4: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

1.9Ejercicios2

4

Page 5: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ContenidosElobjetivodeestelibroesrealizarunaintroducciónalosconceptosmásbásicosdelaprogramaciónweb,comosonHTMLyCSS,hastaotrosmásavanzadosynovedososdeHTML5,CSS3oJavaScript.

Enlasprimerasseccionesserealizaunaintroducciónalosconceptosfundamentales,desdelasintaxisdellenguaje,etiquetas,editoresdeHTML,estructurabásicadeunapáginaweb,etc.Seincluyenpequeñosejemplosparacadaunodelosapartadosademásdealgúnejemplomáselaboradoyejerciciosfinales.

TambiénsetratanaspectosmásavanzadoscomoeventosHTML,procesamientodeformularios,pseudo-clasesCSS,disposiciónoestructuracióndeunawebencapas,yserealizaunaintroducciónalosúltimoselementosdellenguajeintroducidosconHTML5yCSS:transiciones,transformaciones,audio,vídeo,geolocalización,etc.

PorúltimoseincluyeunaseccióndeintroducciónaJavaScriptenlaquetambiénsepartedesdelosconceptosmásbásicos(inclusióndescriptsenHTML,variables,operadores,etc.)hastaalgunosmásavanzadoscomofunciones,eventosocomotrabajarconelDOMdeunapáginaWeb.

Loscontenidosprincipalesdeestelibroson:

IntroducciónaHTMLEditoresHTMLSintaxisdellenguajeEstructurabásicadeunaWebElementosdecabeceraEtiquetasbásicasListasTablasCajas,etiquetaDIVEnlacesImágenesFormulariosEventosSímbolosHTML

IntroducciónaCSSAdjuntarunahojadeestiloDefinicióndeestilosparaetiquetasHTML

Contenidos

5

Page 6: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

IdentificadoresyclasesEstilosCSSbásicosPseudo-clasesCapasEjemplo

IntroducciónaHTML5NavegadoresquelosoportanDoctypeEstructurasemánticaFormulariosEtiquetaMarkCanvasAudioVídeoGeolocalizaciónAlmacenamientoOfflineDetectarfuncionalidadesdeHTML5

IntroducciónaCSS3NuevosselectoresdeatributosNuevaspseudo-clasesColorBordesFondosTextoColumnasModelodecajabásicoTransicionesTransformaciones

IntroducciónaJavaScriptInclusióndeJavaScriptenHTMLEtiquetanoscriptConsideracionessobreellenguajeVariablesOperadoresEstructurasdecontroldeflujoFuncionesútilesFuncionesDOMEventosDeteccióndeerrores

Contenidos

6

Page 7: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

MásinformaciónEjercicios

Contenidos

7

Page 8: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

IntroducciónaHTMLHTML,siglasdeHyperTextMarkupLanguage(Lenguajedemarcadodehipertexto),esellenguajedemarcadopredominanteparalaelaboracióndepáginasweb.Esusadoparadescribirlaestructurayelcontenidoenformadetexto,asícomoparacomplementareltextoconobjetostalescomoimágenes.

ElcódigoHTMLseescribeenformade"etiquetas",mediantelascualespodemosdescribirlaestructuralógicayaparienciadelcontenido.LaaparienciaquepodemosdescribirconHTMLestábastantelimitada,peroelcódigosepuedecomplementarymejorarmedianteelusodeotroslenguajescomoJavaScriptoCSS.

EnlassiguientesseccionesserealizaunaintroducciónalasprincipalescaracterísticasdeHTML,partiendodesdelosposibleseditoresmásadecuadosparaescribircódigoolaestructurabásicaqueunapáginaHTMLdebetener,hastaconceptosmásavanzadoscomolainclusióndeformulariosoelmanejodeloseventosproducidosenunapágina.

IntroducciónaHTML

8

Page 9: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EditoresHTMLEllenguajeHTMLpuedesercreadoyeditadoconcualquiereditordetextosbásico,comopuedeserGeditenLinuxoelBlocdenotasdeWindows.ExistenademásotroseditoresparalarealizacióndesitioswebconcaracterísticasWYSIWYG(WhatYouSeeIsWhatYouGet,oenespañol:"loquevesesloqueobtienes").Estoseditorespermitenverelresultadodeloqueseestáeditandoentiemporeal,amedidaquesevadesarrollandoeldocumento.Ahorabien,estonosignificaunamaneradistintaderealizarsitiosweb,sinoqueunaformauntantomássimpleyaqueestosprogramas,ademásdetenerlaopcióndetrabajarconlavistapreliminar,tienesupropiasecciónHTML,lacualvagenerandotodoelcódigoamedidaquesevatrabajando.AlgunosejemplosdeeditoressonAdobeDreamweaver,KompoZeroMicrosoftFrontPage.

EstoseditoresaceleranofacilitanlacreacióndecódigoHTML,peroenalgunasocasionestambiéngeneranmuchomáscódigodelnecesario(comoeselcasodeMicrosoftFrontPage).Loidealesteneruncontroltotalsobreelcódigoqueseescribeyutilizarestoseditoressólocomounapequeñaayuda.TambiénpodemosutilizarotrotipodeeditoresquesimplementecompruebenqueelcódigoHTMLescritoescorrecto(quelasetiquetasyatributossoncorrectos,lasetiquetassecierrancorrectamente,etc.).

EditoresHTML

9

Page 10: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

SintaxisdellenguajeLasetiquetasHTMLdebendeirencerradasentrecorchetesangulares<>,ypuedenserdedostipos:

Seabrenysecierran,comoporejemplo:<b>negrita</b>o<p>texto</p>.

Seabrenycierranenlamismaetiqueta,como:<br/>o<hr/>.

Encasodequenocerremosunaetiquetaquedebasercerradaseproduciráunerrorenlaestructuradeldocumentoyprobablementetambiéngenereerroresenlavisualización.

Hayetiquetasqueademáspuedenconteneratributos,enestecasolosatributossedebendecolocarenlaetiquetadeinicio,delaforma:

<etiquetaatributo1="valor1"atributo2="valor2">...</etiqueta>

Oparalasetiquetasdesoloapertura:

<etiquetaatributo1="valor1"atributo2="valor2"/>

Porejemplo:

<imgsrc="imagen.jpg"alt="Imagendecabecera"/>

Sintaxisdellenguaje

10

Page 11: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EstructurabásicadeunaWebUndocumentoHTMLcomienzaconlaetiqueta<html>yterminacon</html>.Dentrodeldocumento(entrelasetiquetasdeprincipioyfindehtml)haydoszonasbiendiferenciadas:elencabezamiento,delimitadopor<head>y</head>,quesirveparaincluirdefinicionesinicialesválidasparatodoeldocumento;yelcuerpo,delimitadopor<body>y</body>,donderesidelainformacióndeldocumento.

Lasetiquetasbásicasomínimasson:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

</head>

<body>

¡Holamundo!

</body>

</html>

LaprimeralíneaeselDOCTYPE,oeltipodedocumentoquevieneacontinuación.EnestecasoseusaelestándardeHTML4.01(elúltimoestándaradoptadoen1999,yaqueHTML5afechade2011siguesiendounborrador).Lasiguienteetiqueta,<html>,defineeliniciodeldocumentoHTML,eindicaqueloquevieneacontinuacióndebeserinterpretadocomocódigoHTML.Comopodemosverenlaúltimalínea,secierralaetiqueta</html>.

Dentrodeestasetiquetas<html>...</html>encontramoslasdosseccionesmencionadas:

Encabezamiento(head):Estaseccióninicialcontienetodosloselementosnovisualesdenuestraweb,comoporejemplolosmetadatosdescriptivos(autor,palabrasclave,descripcióndelcontenido,etc.),losestilosautilizarenloselementosvisualesdelcuerpo,eltítuloqueapareceráenlabarrasuperiordelnavegador(comoenelejemplosuperior),yotraseriedeelementosqueseestudiaránmásendetalleenlasiguientesección.

Cuerpo(body):Aquíhemosdeincluirtodosloscontenidosvisualesdenuestraweb,todoslostextos,imágenes,enlaces,etc.Enelejemplodearribaloúnicoqueseincluyeeseltexto"¡Holamundo!"porloquealabrirestawebnosapareceráunapáginawebqueincluiráúnicamenteesetexto.

EstructurabásicadeunaWeb

11

Page 12: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Enlossiguientesapartadossedescribiránmásendetalleloselementosquepodemosutilizardentrodelencabezamientoodelcuerpodeunaweb.EnprimerlugarseestudiaránloselementosdelacabecerayacontinuacióntodaslasetiquetasHTMLquesesuelenutilizarparalaconstruccióndeunaweb.

EstructurabásicadeunaWeb

12

Page 13: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ElementosdelacabeceraLaseccióndecabecera<head>...</head>seutilizaparadescribireltipodecontenidoyaspectovisualquetendrálaweb.Esimportantedestacarquetodoelcontenidodelaseccióndecabeceranosemuestradirectamentealusuario,sinoqueesúnicamenteinformacióndescriptivaymetadatos.Porejemplo,nospermitiráindicarmetadatosquesonmuyútilesparalaindexacióndelawebenbuscadores,comoeltipodecontenido,palabrasclaveoelautor,oindicarlosestilosconloscualessemostraránloselementosvisuales,entreotrainformación.

Algunasdelasprincipalesetiquetasquepodemosutilizardentrodelacabecerason:

<title></title>:defineeltítulodelapágina.Porlogeneraleltítuloapareceenlabarradetítuloencimadelaventana.

<link/>:paravincularelsitioconhojasdeestiloexternas(verlaseccióndeCSSparamásinformación):

<linkrel="stylesheet"href="style.css"type="text/css"/>

Elatributorelesrequeridoydescribeeltipodedocumentoenlazado(enestecasounahojadeestilo).Elatributotypeessimplementeindicativodeltipodehojadeestiloenlazada(enestecasoCSS).

<style></style>:seutilizaparaañadirdefinicióndeestiloenlínea.Noesnecesariocolocarlosisevaautilizarunahojadeestiloexternausandolaetiqueta<link/>(queeslomáshabitualyrecomendable).Elusocorrectoseríadelaforma:

<html>

<head>

...

<styletype="text/css">

EstilosCSS

</style>

</head>

<body></body>

</html>

ParamásinformaciónverlasecciónCSSdelmanual.

<meta/>:paraindicarmetadatoscomoladescripcióndelaweb,loskeywords,oelautor:

Elementosdelacabecera

13

Page 14: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<metaname="description"content="Descripcióndelaweb"/>

<metaname="keywords"content="key1,key2,key3"/>

<metaname="author"content="Nombredelautor"/>

Unaetiqueta"meta"muyútilesladelacodificación,quenospermitiráescribirtextoconacentosyseseveabien(sinsímbolosextraños)entodoslosnavegadores:

<metacharset="utf-8"/>

<script></script>:permiteincluirunscriptenlaWeb.Elcódigosepuedeescribirdirectamenteentrelasetiquetasde<script>ocargardesdeunficheroexternoutilizandoelatributosrc="urldelscript"paraindicarladireccióndelfichero.SerecomiendaincluireltipoMIMEenelatributotype,queenelcasodecódigoJavaScriptseríatext/javascript.Acontinuaciónseincluyenalgunosejemplosdeuso:

<scriptsrc="fichero.js"type="text/javascript"></script>

<scripttype="text/javascript">

Códigodeunscriptintegradoenlapágina

</script>

Cuandousamoselatributosrcelcontenidodeestasetiquetasestávacío(noencierranada),estoesporquelocargadirectamentedesdeelficheroindicado.EnelcapítulosobreJavaScriptpodréisencontrarmuchamásinformaciónsobrecomoutilizarestasetiquetas.

AcontinuaciónseincluyeuncódigodeejemploenelquesehaampliadolaestructuraHTMLbásicadeunawebquevimosenlasecciónanteriorparaañadiralgunasdeestasetiquetas:

Elementosdelacabecera

14

Page 15: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

<metacharset="utf-8"/>

<metaname="description"content="Descripcióndelaweb"/>

<metaname="keywords"content="key1,key2,key3"/>

<metaname="author"content="Nombredelautor"/>

<linkrel="stylesheet"href="style.css"type="text/css"/>

<scriptsrc="javascript.js"type="text/javascript"></script>

</head>

<body>

¡Holamundo!

</body>

</html>

Elementosdelacabecera

15

Page 16: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EtiquetasbásicasHTMLDentrodelaseccióndelcuerpo(<body>...</body>)utilizaremosetiquetasHTMLparacrearelcontenidovisualdelaweb.Estasetiquetasnospermitiránirañadiendotextos,imágenes,encabezados,tablas,etc.paracomponereldiseñodelaweb.Enprimerlugarveremoslasetiquetasmásbásicasquesesuelenutilizar,estasson:

<h1></h1>a<h6></h6>:encabezadosotítulosdeldocumentocondiferenterelevancia,siendo<h1>lacabecerademayornivel.

<p></p>:definicióndeunpárrafo.

<br/>:saltodelínea.

<b></b>:textoennegrita(etiquetadesaprobada.Serecomiendausarlaetiqueta<strong></strong>).

<i></i>:textoencursiva(etiquetadesaprobada.Serecomiendausarlaetiqueta<em></em>).

<s></s>:textotachado(etiquetadesaprobada.Serecomiendausarlaetiqueta<del></del>).

<u></u>:textosubrayado.

<center></center>:textocentrado.

<pre></pre>:textopreformateado,respetalosespaciosysaltosdelínea.

<sup></sup>:Superíndice.

<sub></sub>:Subíndice.

<blockquote></blockquote>:Indicaunacitatextual,serepresentacomounpárrafoindexadoconrespectoalmargen.

<hr/>:Líneahorizontal,usada,porejemplo,paraseparardiferentessecciones.

<!--comentario-->:ComentariosenHTML.Eltextodelcomentarionoserávisibleenelnavegador.

<span></span>:Estaetiquetanoaplicaningúnformatoporsimisma,sinoqueproveeunaformadedefinirunestilooformatoauntrozodetexto.Seutilizajuntoconunahojadeestilo.Porejemplo,lopodemosutilizarparamarcarpalabrasenalgúncoloroconalgúnformatoespecial.

Etiquetasbásicas

16

Page 17: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Acontinuaciónseincluyeuncódigodeejemploenelquesehaampliadoelejemplodel"HolaMundo"ysehanañadidoalgunasdelasetiquetasHTMLquehemosvisto:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

<metacharset="utf-8">

</head>

<body>

<h1>¡MiprimeraWeb!</h1>

<p>

Ejemplodewebcontextosen<strong>negrita</strong>,<em>cursiva</em>

y<u>subrayado</u>.

</p>

<blockquote>

Ejemplodenota,comosepuedeverseleaplicaunmargenporlaizquierda.

</blockquote>

<hr/>

<!--Estetextoesuncomentarioquenoseveráenelnavegador!!-->

<h2>Otroencabezado</h2>

<p>

Textodeejemploconsuperíndices(m<sup>2</sup>)ysubíndices(H<sub>2</sub

>O).

</p>

</body>

</html>

Siguardamosestecódigoenunficheroconextensión"html"(porejemplo"index.html")yloabrimossenosmostraríaunresultadosimilaralsiguiente:

Etiquetasbásicas

17

Page 18: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Etiquetasbásicas

18

Page 19: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ListasParadefinirunalistautilizamoslassiguientesetiquetas:

<ol></ol>:Listaordenada(connumeración).<ul></ul>:Listaconpuntos(oviñetas).

Lasetiquetas<ol></ol>y<ul></ul>seutilizancomoetiquetascontenedorasdeloselementosdelalista,dentrodelascualestendremosqueutilizarlaetiqueta<li></li>parairañadiendocadaunodeloselementosdelamisma.

Porejemplo,paracrearunalistaordenadacondoselementos:

<ol>

<li>Elemento1</li>

<li>Elemento2</li>

</ol>

Conloqueobtendríamosunresultadosimilaralsiguiente:

1. Elemento12. Elemento2

Oporejemplo,paracrearunalistaconpuntosoviñetasdetreselementosusaríamoselsiguientecódigo:

<ul>

<li>Elemento1</li>

<li>Elemento2</li>

<li>Elemento3</li>

</ul>

Conloqueobtendríamosunresultadosimilaralsiguiente:

Elemento1Elemento2Elemento3

Dentrodelasetiquetas<li>asuvezpodemosusarotrasetiquetas,comoporejemploponernegritas,cursivas,encabezados,ocualquierotracosaquesenosocurra,porejemplo:

Listas

19

Page 20: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<ul>

<li><em>Elemento1</em>:Elelemento1esel<u>principal</u>delalista.</li>

<li><em>Elemento2</em>:Elelemento2esmuy<strong>peligroso!</strong></li>

</ul>

ConestecódigoHTMLobtendríamosunresultadosimilaralsiguiente:

Elemento1:Elelemento1eselprincipaldelalista.Elemento2:Elelemento2esmuypeligroso!

Dadoquedentrodeunelementodelalistapodemosponercualquierotraetiqueta,tambiénpodremosponerotraslistas.Estonospermitiráeshacerlistasanidadasdelaforma:

<h1>Menú</h1>

<ol>

<li>

Primerplato

<ul>

<li>Ensalada</li>

<li>Gazpachoandaluz</li>

</ul>

</li>

<li>

Segundoplato

<ul>

<li>Macarrones</li>

<li>Polloalhorno</li>

<li>Pescado</li>

</ul>

</li>

<li>

Postre

<ul>

<li>Tarta</li>

<li>Yogur</li>

<li>Café</li>

</ul>

</li>

</ol>

Conloqueobtendríamosunalistacomolasiguiente:

Listas

20

Page 21: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Listas

21

Page 22: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

TablasLastablassedefinenbásicamentemediantetresetiquetas:

<table></table>:defineunatabla.<tr></tr>:filadeunatabla,debedeestardentrodelasetiquetasdeunatabla.<td></td>:celdadeunatabla,debeestardentrodeunafila.

Ejemplodeunatabla:

<table>

<tr>

<td>Fila1izquierda</td>

<td>Fila1derecha</td>

</tr>

<tr>

<td>Fila2izquierda</td>

<td>Fila2derecha</td>

</tr>

</table>

Conloqueobtendríamosunresultadosimilaralsiguiente:

Fila1izquierda Fila1derecha

Fila2izquierda Fila2derecha

Ademástambiénpodemosutilizarlaetiqueta<th>enlugarde<td>paraindicarunaceldade"cabecera",deestaformaelcontenidoseráresaltadoennegritayenuntamañoligeramentesuperioralnormal.Porejemplo,paracrearunatablacondoselementosdecabeceraydosceldasnormales:

<table>

<tr>

<th>Cabecera1</th>

<th>Cabecera2</th>

</tr>

<tr>

<td>Celda1</td>

<td>Celda2</td>

</tr>

</table>

Enlaetiquetadeapertura<table>podemosutilizarlossiguientesatributos:

Tablas

22

Page 23: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

border="num":Anchodelbordedelatablaenpuntos.Siindicamosborder="0"tendremosunatablacuyasdivisionesnoseránvisibles,estapropiedadsesueleutilizarparadistribuirloselementosenunapáginaWeb.

cellspacing="num":Espacioenpuntosqueseparalasceldasqueestándentrodelatabla.

cellpadding="num":Espacioenpuntosqueseparaelbordedecadaceldayelcontenidodeesta.

width="num":Indicalaanchuradelatablaenpuntosoenporcentajeenfuncióndelanchodelaventana.Sinoseindicaesteparámetro,elanchodependerádeloscontenidosdelasceldas.

height="num":Indicalaalturadelatablaenpuntosoenporcentajeenfuncióndelaltodelaventana.Sinoseindicaesteparámetro,laalturadependerádeloscontenidosdelasceldas.Esteatributotambiénsepuedeutilizarenlasetiquetas<tr>paraindicarlaalturadecadafiladeformaindividual.

Enlasetiquetasdeaperturadecelda(<td>o<th>)podemosutilizarlossiguientesatributos:

align="pos":Indicacomosedebealinearelcontenidodelacelda,alaizquierda(left),aladerecha(right),centrado(center)ojustificado(justify).

valign="pos":Indicalaalineaciónverticaldelcontenidodelacelda,enlapartesuperior(top),enlainferior(bottom),oenelcentro(middle).

rowspan="num":Indicaelnúmerodefilasqueocuparálacelda.Pordefectoocupaunasolafila.Esteatributoseutilizaparacrearceldas"multifila",esdecir,unaceldaqueporejemploocupe3filas.Tendremosquetenerencuentaqueesaceldanosedeberádedefinirenlassiguientes2filas(paraesasfilassedefiniráunaceldamenos).

colspan="num":Indicaelnúmerodecolumnasqueocuparálacelda.Pordefectoocupaunasolacolumna.Esteatributoseutilizaparacrearceldas"multicolumna",esdecir,unaceldaqueporejemploocupe3columnas.Tendremosquetenerencuentaqueenesafilatendremosquedefinir2celdasmenos.

width="num":Indicalaanchuradelacolumnaenpuntosoenporcentajeenfuncióndelanchodelaventana.Sinoseindicaesteparámetro,elanchodependerádeltamañodeloscontenidos.

Tablas

23

Page 24: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Cajas(etiqueta <div>)Laetiqueta<div></div>permitecrearcajascontenedorasdeotroselementos.Estaetiquetanomuestra(pordefecto)ningúnestiloniformatovisual,sinoqueesutilizadaúnicamenteparaorganizarladisposicióndeloselementosenlapágina.Esmuysencilloindicarsuposicióndeformaabsolutaorelativaenlapáginaycreardivisionesdelespacioparadistribuirloselementos.

Estascajaspuedencontenercualquiertipodeelemento(texto,imágenes,etc.)uotrasetiquetas<div>paracrearsubdivisiones.

Acontinuaciónseincluyeunpequeñoejemplodesuuso:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>EjemplodeusodelaetiquetaDIV</title>

<metacharset="utf-8">

</head>

<body>

<div>Menusuperior</div>

<div>

<h1>Contenidocentral</h1>

<div>

Artículo1

</div>

<div>

Artículo2

</div>

</div>

<div>Piedepágina</div>

</body>

</html>

Comosepuedeversehautilizadounaetiqueta<div>paracrearunasecciónquecontendráelmenúsuperior,otraparaelcontenidocentralyotraparaelpiedepágina.Lasecciónconelcontenidocentralsedivideasuvezenotrasdosseccionesocajasquecontendránlosartículos.

Cajas,etiquetaDIV

24

Page 25: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Siguardamosestecódigodeejemploenunarchivoyloabrimosveremosqueestaetiquetanomuestraningúnformatoniestilo,solamentenosapareceránlostextosquehemospuesto.ParapodercompletarestecódigoeindicarlaposiciónyestilosnosharáfaltautilizarCSS.Enlasecciónde"IntroducciónaCSS>Capas"seexplicamásafondoelusodeestaetiquetaycomolapodemosutilizarparaalinearloscontenidosocrearseccionesconestilosdefinidos.

Paraalinearelcontenidodeunapáginaserecomiendaelusodelaetiqueta<div>juntoconCSS.Noesrecomentableelusodelaetiqueta<table>paracrearalineaciones.

Cajas,etiquetaDIV

25

Page 26: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EnlacesLosenlacespermitenvincularpartesdeldocumentoconotrosdocumentosoconotraspartesdelmismodocumento.Porejemplo,quealpulsarconelratónsobreuntextoosobreunaimagensenosredirijaaunanuevaWebconuncontenidodiferente.

Paracrearunenlaceseutilizalaetiqueta<ahref=""></a>cuyoatributohrefestableceladirecciónURLalaqueapuntaelenlace.Porejemplo,unenlacealaWikipediaseríadelaforma:

<ahref="http://es.wikipedia.org">Wikipedia</a>

ParacrearunenlaceaunaseccióndenuestrapropiawebúnicamentenosharáfaltaescribirelnombredelficheroHTML,porejemplo:

<ahref="pagina2.html">Pulsaaquí</a>

EjemploEnesteejemplovamosacrearunenlacedesdelapáginaprincipaldenuestrositioweb(almacenadaenelficheroindex.html)aunapáginasecundariaconunartículo(queestaríaenelficheroarticulo1.html).Además,enlapáginasecundariaañadiremostambiénunenlaceparavolveralapáginaprincipal.

Elcontenidodelapáginaprincipal(ficheroindex.html)seríaelsiguiente:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

<metacharset="utf-8">

</head>

<body>

<h1>Webdeejemplo</h1>

<p>Pulsaen<ahref="articulo1.html">esteenlace</a>

paraconsultarnuestroprimerartículo.</p>

</body>

</html>

Elcontenidodelapáginasecundaria(ficheroarticulo1.html)seríaelsiguiente:

Enlaces

26

Page 27: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

<metacharset="utf-8">

</head>

<body>

<h1>Artículo1</h1>

<p>Textodeejemplodelartículo1.</p>

<p>Pulsaen<ahref="index.html">esteenlace</a>paravolveralapáginaprincipal.

</p>

</body>

</html>

EnlacessobreotroselementosTambiénsepuedencrearenlacessobreotroselementos,comoporejemploimágenes.Paraestosimplementetenemosqueescribirla/setiqueta/sdedichoelementodentrodelenlace:

<ahref="dirección_URL"><imgsrc="imagen.jpg"/></a>

Abrirunanuevaventana(opestañadelnavegador)Laetiquetadeenlace<a>tambiénpermiteelatributotarget="_blank",medianteelcualindicamosqueelenlacesetienequeabrirenunanuevaventanaoenunapestañanuevadelnavegador.Estaopciónsesueleutilizaramenudoparalosenlacesexternosparaquenosecierrelawebactual.

Porejemplo,paraañadirunenlaceaunawebexternaqueseabraenotraventanaparaqueelusuarioconsultemásinformaciónescribiríamoselsiguientecódigo:

<ahref="https://es.wikipedia.org/wiki/Polinomio"target="_blank">

Paramásinformaciónpulsaaquí

</a>

Direcciónbase

Enlaces

27

Page 28: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Ladirecciónprincipaldelawebnoesnecesarioescribirlayaqueseañadiráautomáticamente.Porejemplo,sinuestrawebes"http://www.webejemplo.es"yenelenlaceescribímosúnicamente<ahref="pagina2.html">Pulsaaquí</a>,alpulsarnosredirigiráalaweb"http://www.webejemplo.es/pagina2.html".

Hayquetenercuidadocuandocolocamoslaspáginasdentrodecarpetas.Porejemplo,sicreamosunacarpetaparametertodaslaspáginasconartículosyescribimosunenlacedelaforma:<ahref="articulos/articulo1.html">Iralartículo1</a>,estonosredirigiráaladirección"http://www.webejemplo.es/articulos/articulo1.html".Elproblemaestáenlosenlacesquecoloquemosdentrodeunapáginaqueestéenunasubcarpeta.Porejemplo,sienlapágina"articulo1.html"(queestáenlacarpeta"articulos")añadimosunenlaceparavolveralíndicedelaforma:<ahref="index.html">Volver</a>,esteenlaceenrealidadnosllevaríaaladirección"http://www.webejemplo.es/**articulos/index.html**".Esdecir,buscaríalapágina"index.html"dentrodelacarpetaactual.

Parasolucionaresteproblemayhacerreferenciaalaraízdenuestrositioweb,sesueleanteponersiemprelabarra"/"atodaslasdirecciones.Porejemplo,enelcasodelenlaceerróneoanteriortendríamosqueescribir:<ahref="/index.html">Volver</a>.Peroestabarraesrecomendableescribirlasiempre,entodaslasdirecciones,paraevitarerrores.

Enlaces

28

Page 29: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ImágenesParaincluirunaimagenseutilizalaetiqueta<imgsrc=""alt=""/>,lacualrequiereelatributosrcconlarutaenlaqueseencuentralaimagen.Esconvenienteponersiempreelatributoalt="textoalternativo",elcualindicaeltextoamostrarencasodenopodercargarlaimagenytambiénseutilizaparaopcionesdeaccesibilidad.

Porejemplo,paracargarunaimagenllamada"cabecera.jpg"utilizaremoslaetiquetadelaforma:

<imgsrc="cabecera.jpg"alt="Imagendecabecera"/>

Ademásexistenotrosatributosinteresantescomowidthyheightpararedefinirelanchoylaalturadelaimagen.Sinembargoserecomiendaindicarestaspropiedades(anchoyalto)modificandolosestilosdelaetiqueta(vercapítulo"IntroducciónaCSS").

Imágenes

29

Page 30: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

FormulariosLosformulariospermitensolicitarinformaciónalvisitantedeunapáginaWeb.Estáncompuestosporcamposdediferentetipo,cuyainformaciónseenviaráaunadirecciónURL(indicadaenelcódigo)alpulsarelbotóndeenvío.

Ladeclaracióndeformularioquedarecogidaporlasetiquetas<form></form>,lascualesdebenencerrarladefinicióndetodosloscamposdelformulario.Enlaetiquetadeapertura<form>tenemosqueindicarlosatributosbásicos:

action="":Entrecomillasseindicalaacciónarealizaralenviarelformulario.Engeneralseindicaráelnombredeunficheroalojadoenelservidor,elcualseencargarádeprocesarlainformación.Aunquetambiénselepuedeindicarunadireccióndecorreoparaqueenvíedirectamentetodoelcontenido,delaforma:mailto:direccion_de_correo.

method=""(postoget):Indicaelmétododetransferenciadelasvariables.Elmétodo"post"envíalosdatosdeformanovisible,mientrasqueelmétodo"get"losadjuntaalaURLalaqueseredirige.

enctype="":Especificaeltipodecodificacióndelainformaciónenviada.Conmethod="get"noserealizacodificación,solosecambiancaracteresespecialescomoelespacio,porloquenoesnecesarioindicarenctype.Cuandoelvalordelatributo"method"es"post",podemosutilizarlossiguientesvalores:

application/x-www-form-urlencoded:Eselvalorpredeterminado.Codificatodosloscaracteresantesdeenviarlos.

multipart/form-data:Esrequeridoalenviararchivosmedianteunformulario.Nocodificalainformación.

text/plain:Nocodificalainformación,solocambialosespaciosporelsímbolo"+".

Porejemplo,unaposiblecabeceradeunformlariosería:

Formularios

30

Page 31: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<formaction="http://www.miweb.com/procesarformulario"method="POST">

<!--Comonoindicamoselenctypeseutilizarálacondificaciónpordefecto-->

<!--Camposdelformulario-->

<!--Camposdelformulario-->

<!--Camposdelformulario-->

</form>

TiposdecamposbásicosParaañadircamposalformularioseutilizalaetiqueta<input/>,estaetiquetadebedetenersiempredosatributos:

name="":Indicaelnombrequeseasignaaundeterminadocampo.EstenombrenoaparecevisibleenlaWeb,puesseutilizaparapoderdistinguircadacampoalenviarlainformaciónalservidoroporcorreo.Escomosifueraelnombredelavariablealaqueseasignaelvalordelcampo.

type="":Indicaeltipodecampoautilizar.Puedeserdemuchostipos:text,password,checkbox,radio,file,hidden,submit,reset.

Acontinuaciónsedescribenmásdetalladamentelosdiferentestiposdecampos<input/>segúnsuvalortype:

type="text":campodetipotextodeunalínea.Susatributosson:

maxlenght="":Seguidodeunvalorquelimitaráelnúmeromáximodecaracteres.size="":Seguidodeunvalorquelimitaráelnúmerodecaracteresamostrarenpantalla.Adiferenciademaxlenghtesteatributonolimitalalongituddeltextoquesepuedeintroducir,sinoquemodificaeltamañovisibledelcampo.value="":Indicaelvalorinicialdelcampo.Acontinuaciónseincluyeunejemplodeuso:

<inputname="usuario"type="text"maxlenght="24"/>

type="password":Estecampofuncionaexactamenteigualqueeldetipo"text",peroocultaráeltextointroducidocambiandolasletrasporasteriscosopuntos.Susatributossonlosmismosquepara"text".

type="checkbox":Estecampomostraráunacasillacuadradaquenospermitirámarcaropcionesdeunalista(podremosmarcarvariasopcionesalavez).Paraindicarquevariascasillaspertenecenalmismogruposelesdebededarelmismonombreparael

Formularios

31

Page 32: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

atributo"name".Eltextoquequeramosqueaparezcaacontinuacióndelacasilladel"checkbox"setendráqueescribirdespuésdecerrarlaetiqueta<input/>.Susatributosson:

value="":Defineelvalorqueseráenviadosilacasillaestámarcada.checked:Esteatributoesopcional,yhacequelacasillaaparezcamarcadapordefecto.Nonecesitaindicarleningúnvalor.Ejemplo:

<inputtype="checkbox"name="option1"value="leche"/>Leche<br/>

<inputtype="checkbox"name="option1"value="pan"checked/>Pan<br/>

<inputtype="checkbox"name="option1"value="queso"/>Queso<br/>

type="radio":Elcamposeelegirámarcandodeentrevariasopcionesunacasillacircular.Almarcarunacasillaelrestodecasillasdeesegrupodedesmarcaránautomáticamente.Paraindicarquevariascasillaspertenecenalmismogruposelesdebededarelmismonombreparaelatributo"name"(verejemplo).Ademásdebemosdeindicar:

value="":Defineelvalorqueseráenviadosilacasillaestámarcada.checked:Esteatributoesopcional,yhacequelacasillaaparezcamarcadapordefecto.Solosepodráusarparaunacasilla.Nonecesitaindicarleningúnvalor.Ejemplo:

<inputtype="radio"name="group1"value="leche"/>Leche<br/>

<inputtype="radio"name="group1"value="pan"checked/>Pan<br/>

<inputtype="radio"name="group1"value="queso"/>Queso<br/>

type="file":Elatributofilepermitealusuariosubirarchivos.NecesitaremosunprogramaquegestioneestosarchivosenelservidormedianteunlenguajediferentealHTML.Elúnicoatributoopcionalquepodemosutilizaressize=""medianteelcualpodremosindicarlaanchuravisualdeestecampo.Ejemplo:

<inputtype="file"name="datafile"size="40"/>

type="hidden":Estevalornopuedesermodificado,puespermaneceoculto.Sesueleutilizarparaenviaralmétodoencargadodeprocesarelformularioalgúndatoadicionalnecesarioparasuprocesamiento.Paraindicarelvalordeestecampoutilizamoselatributo:value="valor".

type="submit":Representaelbotónde"Enviar".Alpulsarestebotónlainformacióndetodosloscamposseenviarárealizandolaacciónindicadaen<form>.Medianteelatributo:

value="texto":podemosindicareltextoqueapareceráenelbotón.

Formularios

32

Page 33: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

type="reset":Alpulsarestebotónseborraelcontenidodetodosloscamposdelformulario.Medianteelatributo:

value="texto":podemosindicareltextoqueapareceráenelbotón.

EtiquetasLasetiquetasseutilizanparaponeruntextoodescripcióndeloscamposdeunformulario.SeescribenusandolaetiquetaHTML<label>ytienenunúnicoatributo"for"queseutilizaparaindicarelnombre(atributoname)delcampoasociado.Porejemplo:

<labelfor="campo1">Etiqueta</label>

<inputname="campo1"type="text"/>

CamposdeSelecciónMediantelaetiqueta<select></select>podemoscrearlistasdeopciones,quenospermitiránseleccionarentreunaovariasdeellas.Susatributosson:

name="":Nombredelcampo.size="":Númerodeopcionesvisiblesalavez.Sinoseindicanadaoseleasignaunvalordeunosepresentarácomounmenúdesplegable.Enelcasodevaloresmayoresqueunoaparecerácomounalistaconunabarradedesplazamiento.multiple:Permiteseleccionarmasdeunvaloralavezparaelcampo.

Lasdiferentesopcionesdelalistaseindicaránmediantelaetiqueta<option></option>.Elnombrequesevisualizarádebedeindicarsedentrodeestasetiquetas.Medianteelatributovalue=""podemosindicarelvalorqueseenviaráconelformulario.Tambiénpodemosutilizarelatributoselectedparaindicarlaopciónseleccionadapordefecto.Sinoloespecificamos,siempreaparecerácomoseleccionadoelprimerelementodelalista.

<selectname="Colores"multiple>

<optionvalue="r">Rojo</option>

<optionvalue="g">Verde</option>

<optionvalue="b">Azul</option>

</select>

<selectname="Colores"SIZE="1">

<optionvalue="r">Rojo</option>

<optionvalue="g"selected>Verde</option>

<optionvalue="b">Azul</option>

</select>

Formularios

33

Page 34: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ÁreasdetextoMediantelasetiquetas<textarea></textarea>podemoscrearuncampodetextodemúltipleslíneas.Losatributosquepodemosutilizarson:

name="":Nombredelcampo.cols="num":Númerodecolumnasdetextovisibles.Esteatributoesopcional.rows="num":Númerodefilasdetextovisibles.Esteatributoesopcional.

EjemploAcontinuaciónseincluyeunejemplodeusodelosformulariosenelquesehanincluidolamayoríadeloscamposquehemosvisto:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

<metacharset="utf-8"/>

</head>

<body>

<h2>Formularioderegistro</h2>

<p>Escribetusdatosdeusuarioenelsiguienteformularioy

porúltimoaprietaelbotónenviar.</p>

<formaction="http://www.miweb.com/procesarformulario"method="POST">

<p>

<labelfor="usuario">Usuario:</label>

<inputname="usuario"type="text"maxlenght="32"/>

</p>

<p>

<labelfor="password">Contraseña:</label>

<inputname="password"type="password"maxlenght="16"/>

</p>

<p>

<labelfor="nombre">Nombrecompleto:</label>

<inputname="nombre"type="text"maxlenght="64"/>

</p>

<p>

<labelfor="direccion">Dirección:</label>

<inputname="direccion"type="text"maxlenght="128"/>

</p>

<p>

<labelfor="ciudad">Ciudad:</label>

<selectname="ciudad">

<optionvalue="ACoruña">ACoruña</option>

<optionvalue="Álava">Álava</option>

Formularios

34

Page 35: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<optionvalue="Albacete">Albacete</option>

<optionvalue="Alicante">Alicante</option>

<optionvalue="Almería">Almería</option>

<optionvalue="Asturias">Asturias</option>

<!--restodeciudades...-->

</select>

</p>

<p>

<labelfor="tipo">Tipodecliente:</label><br/>

<inputtype="radio"name="tipo"value="particular"checked/>Particular<br

/>

<inputtype="radio"name="tipo"value="profesional"/>Profesional<br/>

</p>

<p>

<labelfor="comentarios">Comentarios:</label><br/>

<textareaname="comentarios"rows="4"cols="50"></textarea>

</p>

<p>

<inputtype="checkbox"name="terminos"value="terminos"/>

<labelfor="terminos">Aceptolostérminosycondicionesdeuso</label>

</p>

<p>

<inputtype="submit"value="Enviar"/>

<inputtype="reset"value="Borrarformulario"/>

</p>

</form>

</body>

</html>

Comosepuedevercadapardeetiquetaycampodeformulariosehaencerradodentrodeunpárrafo<p>paraqueocupeunaúnicalíneayqueelsiguientecampobajealalíneasiguiente.Estemismoefectosepodríaconseguirusandolaetiqueta<div>.ParamejorarelaspectovisualdelformulariosetendríanqueaplicarestilosCSS,loscualessetrataránenelsiguientecapítulo.

Siguardamosestecódigoenunfichero".html"yloabrimosconelnavegadorobtendríamosunresultadosimilaralsiguiente:

Formularios

35

Page 36: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Formularios

36

Page 37: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EventosEnestaseccióndedescribeunconceptounpocomásavanzado:loseventos.Unevento,comosunombreindica,escuandosucedeunadeterminadaacciónsobreunelemento.HTMLpermiteescucharestoseventosyasociarlesuncomportamientooacciónqueserealizarácuandosucedadichoevento.Laformadedefinirlosessimilaralosatributos(evento="ACCION"),laacciónharáreferenciaaunafunciónométodoenlenguajeJavaScript.Algunosdeloseventosquepodemosutilizarson:

onload:seactivacuandoelnavegadorterminadecargartodosloselementosdelapágina.

onclick:cuandosepresionaelbotóndelratónsobreunelemento.

onmouseover:sedisparacuandoelcursordelratónpasasobreunelemento.

onmousemove:cuandosemueveelcursordelratónmientrasestásobreunelemento.

onmouseout:seactivacuandoelcursordelratónsalefueradeunelemento(sobreelqueestaba).

onfocus:ocurrecuandounelementorecibeelenfoque(elcursordeescritura),yaseaconelpunterooconmediantelateclatabulador.

onkeypress:ocurrecuandosepresionaunatecla(dentrodeunelemento,porejemplouncampodeescritura).

onkeydown:sedisparacuandounateclaespresionada(dentrodeunelemento)

onkeyup:cuandounateclaessoltada.

onsubmit:seactivacuandounformularioesenviado.

onreset:ocurrecuandounformularioesreseteado.

onchange:ocurrecuandouncontrolpierdeelenfoqueysuvalorhasidomodificadodesdequerecibióelenfoque.

etc.(VerseccióneventosenelcapítulodeJavaScript)

Porejemplo,podemosenlazarelevento"onkeyup"deuntextareaconunafuncióndeJavaScriptdelaforma:

Eventos

37

Page 38: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<scripttype="text/javascript">

functionsaveText(){

//accionesJavaScript

}

</script>

<textareaid="myarea"cols="80"rows="15"onkeyup="saveText()"></textarea>

LoseventosseveránmásendetalleenelcapítulocorrespondientedelaseccióndedicadaaJavascript(Verseccióneventos).Demomento,soloesimportantequeaprendráisquesepuedeasociarcódigoJavaScriptadeterminadoseventosoaccionesqueseproducenenloscamposHTMLdeunapáginaWeb.

Eventos

38

Page 39: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

SímbolosHTMLLoscaracteresespecialescomosignodepuntuación,letrascontildeodiéresis,osímbolosdellenguaje;sedebenconvertirenentidadesHTMLparaquesemuestrencorrectamenteenunnavegador.LasiguienteesunalistadecaracteresespañolesjuntoconalgunossímbolosespecialesysucorrespondienteentidadHTML:

Caracter Código Caracter Código

á &aacute; Á &Aacute;

é &eacute; É &Eacute;

í &iacute; Í &Iacute;

ó &oacute; Ó &Oacute;

ú &uacute; Ú &Uacute;

ü &uuml; Ü &Uuml;

ñ &ntilde; Ñ &Ntilde;

espacioenblanco &nbsp; € &euro;

<(Menorque) &lt; >(Mayorque) &gt;

& &amp; º(grados) &deg;

Recordadqueparaescribirletrasacentuadasuotrossímbolosyqueelnavegadorlosmuestrecorrectamentesímplementetenemosqueañadirlacabecerametaconlacodificación:

<metacharset="utf-8"/>

Sinembargohaydeterminadoscaracteresquesiqueremosescribirlosnosveremosobligadosaescribirelcódigodelsímbolo.Porejemplo,HTMLsolamentemuestraorenderizaunespacioenelnavegadoraunquenosotrosescribamosmuchosespacios.Siporalgunarazónqueremosdarvariosespaciostendremosqueescibirelsímbolo"&nbsp;".Osiporejemploqueremosponerlossímbolosdemayor(>)omenor(<)ynocorrerelriesgodequeseconfundaconelinicioocierredeunaetiquetaHTML,tambiéntendremosqueescribirelcódigocorrespondiente.

ParaobtenerunalistamuchomáscompletadesímbolospodemosbuscarenGoogle:"HTMLsymbols"ovisitarlasiguientedirecciónhttp://www.ascii.cl/htmlcodes.htm.

SímbolosHTML

39

Page 40: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

SímbolosHTML

40

Page 41: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

IntroducciónaCSSElnombrehojasdeestiloencascadavienedelinglésCascadingStyleSheets,delquetomasussiglas.CSSesunlenguajeusadoparadefinirlapresentaciónolaaparienciadeundocumentoestructuradoescritoenHTMLoXML(yporextensiónenXHTML).CSSsecreóparasepararelcontenidodelaforma,alavezquepermitealosdiseñadoresmanteneruncontrolmuchomásprecisosobrelaaparienciadelaspáginas.ElW3C(WorldWideWebConsortium)eselencargadodeformularlaespecificacióndelashojasdeestiloquesirvendeestándarparalosnavegadores.

EnversionesantiguasdeHTMLsedebíadeañadirelformatodentrodelaspropiasetiquetas,paraindicarporejemplosucolorotamaño.Estoobligabaatenerqueespecificarelmismoformatoentodaslasetiquetasparatenerundiseñoconsistente,además,alcambiarunformatotambiénhabíaquecambiarloparatodaslasetiquetas.

CuandoseutilizaCSS,lasetiquetasHTMLnodeberíanproporcionarinformaciónsobrecómoseránvisualizadas.Lainformacióndelahojadeestiloserálaqueespecifiquecómosehandemostrar:color,fuente,alineacióndeltexto,tamaño,etc.

LasventajasdeutilizarCSS(uotrolenguajedeestilo)son:

Controlcentralizadodelaaparienciadeunsitiowebcompleto,conloqueseagilizadeformaconsiderablelaactualizacióndelmismo.

Losnavegadorespermitenalosusuariosespecificarsupropiahojadeestilolocal,queseráaplicadaaunsitioweb,conloqueaumentaconsiderablementelaaccesibilidad.Porejemplo,personascondeficienciasvisualespuedenconfigurarsupropiahojadeestiloparaaumentareltamañodeltextooremarcarmáslosenlaces.

Unapáginapuededisponerdediferenteshojasdeestilosegúneldispositivoquelamuestreo,incluso,aeleccióndelusuario.Porejemplo,paraserimpresaomostradaenundispositivomóvil.

EldocumentoHTMLensimismoesmásclarodeentenderyseconsiguereducirconsiderablementesutamaño.

IntroducciónaCSS

41

Page 42: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

AdjuntarunahojadeestiloLainformacióndeestilopuedeseradjuntadadetresformasdiferentes:

Hojadeestiloexterna:esunahojadeestiloqueestáalmacenadaenunarchivodiferentealarchivoHTML(porejemplollamado"estilo.css").Estaeslamaneradeprogramarmáspotenteylaquedeberemosdeutilizarpordefecto,yaqueseparacompletamentelasreglasdeestilodelapáginaHTMLyademásnospermiteusardichahojadeestiloentodaslaspáginasHTMLquequeramos.LahojadeestilodebedeserenlazadaconelcódigoHTMLdelaforma:

<html>

<head>

<linkrel="stylesheet"type="text/css"href="estilo.css"/>

...

</head>

...

Hojadeestilointerna:esunahojadeestiloqueestáincrustadadentrodeldocumentoHTML.Engeneral,elmotivoparausarunahojadeestilointerna,escuandosequierediferenciarconalgúnestilounodelosficherosHTMLdenuestraWeb.Estecódigodebedeestarincluidoenlaseccióndecabecera<head>yentrelasetiquetas<style>.Laformadeincluirelcódigoseríadelaforma:

<html>

<head>

<styletype="text/css">

H1{color:blue;text-align:center}

</style>

</head>

...

Estiloenlínea(inline):esunmétodoparainsertarlosestilosCSSdirectamentedentrodeunaetiquetaHTML.Estaopciónlausaremosúnicamentecuandoqueramosaplicarunestilosobreunaúnicaetiquetaounúnicoelemento.Encualquierotrocasousaremosalgunadelasopcionesanteriores,yaquesiporejemploaplicamosunmismoestiloamuchasetiquetasusandoestaopciónydespuésqueremoscambiaralgodeeseestilotendríamosquecambiarloentodaslasetiquetas,mientrasquesitenemosunahojadeestilocentralizadaconunúnicocambioserásuficiente.Paraincluirunestiloenlíneaoinlineseusaelatributostyledelaforma:

Adjuntarunahojadeestilo

42

Page 43: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<h1style="color:blue;text-align:center">...</h1>

Adjuntarunahojadeestilo

43

Page 44: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

DefinicióndeestilosparaetiquetasHTMLSiloquequeremosesdarformatooredefinirunaetiquetaHTMLexistente,usaríamoslasintaxis:

etiqueta{

estiloCSS1;

estiloCSS2;

...

}

En"etiqueta"pondríamoselnombredelaetiqueta(porejemplo"h1","p",etc.perosinlossignos<>)ylosestilosquedefiniríanesaetiquetairíanencerradosentrelasllaves"{...}".Porejemplo:

h1{

estiloCSS1;

estiloCSS2;

...

}

ComentariosEnlashojasdeestilotambiénsepuedenescribircomentariosusandolossímbolos:/*textodelcomentario*/.Peroesimportanteusarestanotaciónynoningunaotra,yaqueeslaúnicasoportada.Acontinuaciónseincluyeunejemploconcomentarios:

/*Definimoselestilodelacabeceraprincipal*/

h1{

estiloCSS1;/*Cambiamoselestilodesu...*/

/*Tambiéncambiamosesteotroestiloporque...*/

estiloCSS2;

}

DefinicióndevariosestilosalavezTambiénpodemosredefinirvariasetiquetasalavezquecompartiránlosmismosestilos,separándolasporcomas,delaforma:

DefinicióndeestilosparaetiquetasHTML

44

Page 45: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

etiqueta1,etiqueta2,etiqueta3{

/*estilosCSS*/

}

EnestasecciónylasiguientenoscentraremoslascabecerasdelosestilosydejaremoslosestilosCSSquepodemosutilizarparalasección"estilosCSSbásicos"ysiguientes.Porestemotivoescribiremos/*estilosCSS*/enellugardondeiránlosestilosquedefinirálaetiqueta.

Imaginadporejemploquequeréiscambiarelcolordetodaslascabeceras,lopodéishaceralavezescribiendo:

h1,h2,h3,h4,h5,h6{

/*estilosCSS*/

}

EstilosanidadosOtraopcióninteresanteesdefinirelestilodeetiquetas"dentro"deotrasetiquetas.Paraestotenemosqueescribirprimerolaetiquetacontendora,seguidadeunespacioyporúltimolaetiquetaadefinir.EnestecasoelestiloCSSsoloseaplicarácuandolaetiquetadefinidaseencuentredentrodelaetiquetacontenedora:

contenedoretiqueta{

/*estilosCSS*/

}

Porejemplo,unaetiqueta<span>dentrodeunasección<p>:

pspan{

/*estilosCSS*/

}

Esteestilosoloseaplicaríacuandoseencuentrelaetiqueta<span>dentrodeunasección<p>delaforma:

<p>

Párrafodeejemplodonde

<span>elestilosoloseaplicarásobreestetexto</span>

ynosobreelrestodeltexto.

</p>

DefinicióndeestilosparaetiquetasHTML

45

Page 46: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Estaopciónesmuyútilpuesnospermitirádefinirdiferentesestilosparalamismaetiquetadependiendodedondeseencuentre.

DefinicióndeestilosparaetiquetasHTML

46

Page 47: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

IdentificadoresyClasesAvecestenemosvariasetiquetasdelmismotipoperoqueremosaplicardiferentesestilossegúndondeestén.Paraestousamoslosidentificadoresylasclases.

LaprincipaldiferenciaentreellosesquelosidentificadorestienenqueserúnicosentodoeldocumentoHTMLmientrasquelasclasespuedenrepetirsetodaslasvecesquequeramos.Laotradiferenciaeslaformadedefinirlosydeutilizarlos:EnHTMLparaindicarelidentificadordeunaetiquetausaremoselatributo"id",mientrasqueparaindicarlaclaseusaremos"class":

<divid="capitulo2">

<p>...</p>

<pclass="parrafogris">....</p>

<p>...</p>

<pclass="parrafogris">....</p>

<p>...</p>

<pclass="parrafogris">....</p>

</div>

Enesteejemploseasignaelidentificador"capitulo2"alaetiqueta<div>inicial.Estaetiquetaseríaunasecciónúnicaentodoeldocumentosobrelacualpodemosaplicarunestiloconcreto.Elestilodelaclase"parrafogris"seaplicaríasobrelasetiquetas"p"indicadas,ycomosepuedeversihaaplicadovariasveces.

OtradiferenciaentreidentificadoresyclaseseslaformadedefinirsusestilosCSSenlahojadeestilos.Paraindicarunidentificadorescribiremossunombreprecedidoporunaalmohadilla"#",yparareferenciarunaclaseusaremoscomoprefijoelpunto".",porejemplo:

#identificador{

/*estilosCSS*/

}

.clase{

/*estilosCSS*/

}

Porejemplo,paraindicarlosestilosdelejemploanterior,escribiríamoselsiguientecódigo:

Identificadoresyclases

47

Page 48: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

#capitulo2{

/*estilosCSS*/

}

.parrafogris{

/*estilosCSS*/

}

Esimportantediferenciarcuandotenemosqueusarlaalmohadilla"#"yelpunto".",loscualessololospondremosenlahojadeestilosynoenelcódigoHTML.Estoesunerrorcomúnyharíaquelosestilosnofuncionasen.Esdecir,siescribimos<divid="#capitulo2">(con"#")oescribimos<pclass=".parrafogris">(con".")seríaunerrorynofuncionaría.

Losidentificadoressesuelenusarmenosquelasclasesysoloparaelementosespecíficosquesequierendiferenciar.Normalmenteseaplicansobreetiquetas"neutras"como<div>o<span>paramarcarpartesdeundocumentoydespuésindicarsusestilos(comoporejemploidentificarlacabecera,unlogotipo,elmenúprincipal,etc.).

DefinicióndevariosestilosalavezIgualquehemosvistoantes,podemosdefinirestilosalavezparavariosidentificadoresyclases:

#capitulo1,#capitulo2,#capitulo3{

/*estilosCSS*/

}

.parrafogris,.parraforojo,.parrafoverde{

/*estilosCSS*/

}

Podemosmezclaridentificadores,conclasesyconetiquetassinproblema:

#capitulo1,.parrafogris,h1{

/*estilosCSS*/

}

AnidacióndeestilosPodemosaplicarestilosaidentificadoresyclasessolocuandocuandoesténdentrodeotros:

Identificadoresyclases

48

Page 49: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

#capitulo1#cabecera{

/*estiloaaplicara#cabecerasolocuandoestédentrode#capitulo1*/

}

.parrafogris.resaltado{

/*estiloaaplicara.resaltadosolocuandoestédentrode.parrafogris*/

}

Igualqueantestambiénpodemoscombinaridentificadores,conclasesyconetiquetassinproblema:

#cabecerah1{

/*estilosaaplicarah1solocuandoestédentrodelasección#cabecera*/

}

.parrafogrisspan{

/*estilosaaplicaralaetiquetaspansolocuandoestédentrode.parrafogris*/

}

Siqueremospodemoscrearmásnivelesdeprofundidad,porejemplo:

#cabecerap.resaltado{

/*estilosaaplicara".resaltado"solocuandoestédentro

deunaetiqueta"p"queasuvezestédentrodelasección#cabecera*/

}

FiltraretiquetasconestilosTambiénpodemosaplicarestilosfiltrandoporetiquetasquetengaunadeterminadaclase,porejemplo:

etiqueta1.clase1{

/*estilosCSS*/

}

Enestecasosóloseaplicaríaelestiloalasetiquetas"etiqueta1"quesemarquequesondelaclase"clase1",porejemplo:<etiqueta1class="clase1">...</etiqueta1>.Siintentáramosaplicarestaclaseaunaetiquetadiferentenofuncionaría.

Porejemplo,elestilo:

h1.resaltado{

/*estilosCSS*/

}

Identificadoresyclases

49

Page 50: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Soloseaplicaríaalascabecerash1quetenganaplicadalaclase.resaltadodelaforma:<h1class="resaltado">...</h1>

Identificadoresyclases

50

Page 51: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EstilosCSSbásicosLasintaxisbásicaparadefinirunestiloes:

atributo:valor;

Losdiferentesestilossiempreseseparanconpuntoycoma(;),ydespuésdelnombreseponedospuntos(ynounigual"=",queesunerrortípicoalconfundirseconelHTML).Porejemplo,siqueremosdefinirunaclasequeapliquetresestilosusaríamoslanotación:

.estilo_de_ejemplo{

atributo:valor;

atributo:valor;

atributo:valor;

}

Esimportanteusarestanotacióncorrectamenteyaquesisenosolvidaelpuntoycoma(;)onoponemoslosdospuntos(:)losestilosnofuncionarán.

Muchosdelosvaloresquepodemosaplicaraunatributodeestilotendránunidadesdemedida,porejemplo,elvalordeltamañodeunmargenoeltamañodelafuente.Lasunidadesdemedidaquepodemosutilizarson:

pixels(px)puntos(pt)centímetros(cm)pulgadas(in)

AcontinuaciónseincluyeunresumendelosprincipalesestilosCSSylosvaloresqueselespuedenaplicaralossiguienteselementos:

EstilosparatextosEstilosparapárrafosEstilosparafondosEstilosparacajas

EstilosCSSbásicos

51

Page 52: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EstilosparatextosEnestasecciónsedescribenlosprincipalesestilosCSSquepodemosutilizarparacambiarlaaparienciadelostextosdeunaWeb.Paracadaunodeellosseindicaelnombredelatributo,losposiblesvaloresquelepodemosasignar,algunosejemplosyunaexplicacióndeuso.

color:valorRGBonombredecolorEjemplos:color:#009900;color:red;Sirveparaindicarelcolordeltexto.LoadmitencasitodaslasetiquetasdeHTML.Notodoslosnombresdecoloressonadmitidosenelestándar,esaconsejableentoncesutilizarelvalorRGB.Algunosdelosprincipalesnombresdecoloresson:white,black,gray,blue,red,greenoyellow,paramásnombrespodemosconsultarladirección"http://www.w3schools.com/colors/colors_names.asp".

font-size:xx-small|x-small|small|medium|large|x-large|xx-large|UnidadesCSSEjemplos:font-size:12pt;font-size:x-large;Sirveparaindicareltamañodelasfuentesdemaneramásrígidayconmayorexactitud.

font-family:serif|sans-serif|cursive|fantasy|monospace|Etc.Ejemplos:font-family:arial,helvetica;font-family:fantasy;Conesteatributoindicamoslafamiliadetipografíadeltexto.Losprimerosvaloressongenéricos(serif,sans-serif,etc.),esdecir,losnavegadoreslascomprendenyutilizanlasfuentesqueelusuariotengaensusistema.Tambiénsepuedendefinircontipografíasnormales.Sielnombredeunafuentetieneespaciosseutilizancomillasparaqueseentiendabien.

font-weight:normal|bold|bolder|lighter|100|200|300|...|900Ejemplos:font-weight:bold;font-weight:200;Sirveparadefinirlaanchuradeloscaracteres,odichodeotramanera,paraponernegritacontotallibertad.Normaly400sonelmismovalor,asícomoboldy700.

font-style:normal|italic|obliqueEjemplos:font-style:normal;font-style:italic;Eselestilodelafuente,quepuedesernormal,itálicauoblicua.Elestilo"oblique"essimilaral"italic".

Estilosparatextos

52

Page 53: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

text-decoration:none|underline|overline|line-throughEjemplos:text-decoration:none;text-decoration:underline;Estableceladecoracióndeuntexto,siestásubrayado,sobre-rayadootachado.

text-transform:capitalize|uppercase|lowercase|noneEjemplos:text-transform:none;text-transform:capitalize;Nospermitetransformareltexto,paraquetengalaprimeraletraenmayúsculasdetodaslaspalabras,otodoenmayúsculasominúsculas.

Ejemplos

Porejemplo,paradefinirunpárrafoennegrita,cursivayademáscambiarelcolorpodemosdefinirestosestilosinlineenelatributostyledelpropiopárrafo:

<pstyle="font-weight:bold;font-style:italic;color:red">

Textoennegrita,cursivayencolorrojo.

</p>

Siquisieramoscambiarsolamenteelestilodeunaovariaspalabrasdentrodeunpárrafopodemosutilizarlaetiqueta<span>yasignarledichosestilosensuatributostyle:

<p>

Estepárrafocontieneuna

<spanstyle="font-weight:bold">secciónennegrita</span>.

</p>

Ladefinicióndeestilosdentrodelaetiquetastylesesuelehacercuandodichoestilosolosevaaaplicardeformapuntual.PerosiporelcontrarioqueremosdefinirunestiloquelovamosaaplicarvariasvecesenunsitioWeblomásaconsejableesdeclararunaclaseenunahojadeestilosexternaointerna.Porejemplo:

Estilosparatextos

53

Page 54: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

<metacharset="utf-8"/>

<styletype="text/css">

h1{

color:blue;

}

p{

color:black;

font-size:12pt;

}

.parrafo-aviso{

font-weight:bold;

font-style:italic;

color:red;

}

.nota{

text-align:right;

font-size:10pt;

color:gray;

}

</style>

</head>

<body>

<h1>Artículo1</h1>

<p>

Párrafonormalalqueseleaplicaelcolornegroyuntamañode12pt.

</p>

<pclass="parrafo-aviso">

Textodeavisodestacadoencolorrojo,cursivaynegrita.

</p>

<pclass="nota">

Notaalineadaaladerecha,encolorgrisycontamañodeletra10pt.

</p>

</body>

</html>

Estilosparatextos

54

Page 55: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EstilosparapárrafosLosestilosparapárrafosnospermitencambiarpropiedadesdetodounpárrafoobloquedetexto,comoporejemploelespaciadoentrelaslíneas,laalineación,etc.

line-height:normal|unidadesCSSEjemplos:line-height:12px;line-height:normal;Elaltodeunalínea,yportanto,elespaciadoentrelíneas.EsunadeesascaracterísticasquenosepodíanmodificarutilizandoHTML.

text-align:left|right|center|justifyEjemplos:text-align:right;text-align:center;Sirveparaindicarlaalineacióndeltexto.Esinteresantedestacarquelashojasdeestilopermiteneljustificadodetexto,aunquerecuerdaquenotieneporquefuncionarentodoslossistemas.

text-indent:UnidadesCSSEjemplos:text-indent:10px;text-indent:2in;Unatributoquesirveparahacersangradoomárgenesenlaspáginas.

EjemplosParaalineareltextodeunpárrafoaladerechapodemosutilizar:

<pstyle="text-align:right">

Textoalineadoaladerecha

</p>

Enesteotroejemplovamosacolocaruntextocentrado,conuninterlineadomayor,coneltextoencursivaygris.Ademásdefiniremoslahojadeestiloenlacabeceradelapágina:

Estilosparapárrafos

55

Page 56: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<html>

<head>

<title>Ejemplo</title>

<metacharset="utf-8"/>

<styletype="text/css">

h1{

color:#222;

text-align:center;

}

.poema{

text-align:center;

font-style:italic;

line-height:30pt;

font-size:12pt;

color:#222;

}

.autor{

font-weight:bold;

color:gray;

font-size:10pt;

text-align:center;

}

</style>

</head>

<body>

<h1>Megustacuandocallas</h1>

<pclass="poema">

Megustascuandocallasporqueestáscomoausente,<br/>

ymeoyesdesdelejos,ymivoznotetoca.<br/>

Parecequelosojossetehubieranvolado<br/>

yparecequeunbesotecerraralaboca.

</p>

<br/>

<pclass="autor">

PabloNeruda

</p>

</body>

</html>

Conloqueobtendríamosunresultadosimilaralsiguiente:

Estilosparapárrafos

56

Page 57: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Estilosparapárrafos

57

Page 58: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Estilosparafondosbackground-color:Uncolor,consunombreosuvalorRGBEjemplos:background-color:green;background-color:#000055;Sirveparaindicarelcolordefondodeunelementodelapágina.

background-image:ElnombredelaimagenconsucaminorelativooabsolutoEjemplos:background-image:url(mármol.gif);background-image:url(http://www.url.com/fondo.gif)Permitecolocarunaimagendefondoencualquierelementodelapágina.

Estilosparafondos

58

Page 59: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Estilosparacajas(<div>o<table>)

width:UnidadesCSS|Porcentajeheight:UnidadesCSS|PorcentajeEjemplos:width:50px;width:100%;height:15px;Permitenindicarelanchoyalturadeunelemento.Sepuedenaplicarsobremuchoselementos,comotablas,etiquetasdiv,imágenes,párrafos"p",etc.Conalgunasetiquetasnofunciona,tampocosirveparaindicarespaciado(padding),bordesomárgenes.

margin-left:UnidadesCSSEjemplos:margin-left:1cm;margin-left:0,5in;Indicaeltamañodelmargenizquierdo.

margin-right:UnidadesCSSEjemplos:margin-right:5%;margin-right:1in;Defineeltamañodelmargenderecho.

margin-top:UnidadesCSSEjemplos:margin-top:0px;margin-top:10px;Indicaeltamañodelmargensuperior.

margin-bottom:UnidadesCSSEjemplos:margin-bottom:0pt;margin-top:1px;Indicaeltamañodelmargeninferior.

margin:<arriba><derecha><abajo><izquierda>|<arriba><derecha><abajo>|<arriba-abajo><izquierda-derecha>|<los4márgenes>Ejemplos:margin:4px2px1px2px;margin:4px;Tambiénpodemosutilizarelestilo"margin"paraindicartodoslosmárgenesalavez,estaetiquetanospermiteindicarledesde4valores(paracadaunodelosmárgenes),hasta1valor(paraaplicarlosobretodoslosmárgenes).

padding-left:UnidadesCSSEjemplos:padding-left:0.5in;padding-left:1px;Indicaelespacioinsertado,porlaizquierda,entreelbordedelelemento-continenteyelcontenidodeeste.Esparecidoaelatributocellpaddingdelastablas.Elespacioinsertadotieneelmismofondoqueelfondodelelemento-continente.

Estilosparacajas

59

Page 60: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

padding-right:UnidadesCSSEjemplos:padding-right:0.5cm;padding-right:1pt;Indicaelespacioinsertado,enestecasoporladerecha,entreelbordedelelemento-continenteyelcontenidodeeste.Esparecidoaelatributocellpaddingdelastablas.Elespacioinsertadotieneelmismofondoqueelfondodelelemento-continente.

padding-top:UnidadesCSSEjemplos:padding-top:10pt;padding-top:5px;Indicaelespacioinsertado,porarriba,entreelbordedelelemento-continenteyelcontenidodeeste.

padding-bottom:UnidadesCSSEjemplos:padding-bottom:0.5cm;padding-bottom:1pt;Indicaelespacioinsertado,enestecasoporabajo,entreelbordedelelemento-continenteyelcontenidodeeste.

padding:<arriba><derecha><abajo><izquierda>|<arriba><derecha><abajo>|<arriba-abajo><izquierda-derecha>|<los4márgenes>Ejemplos:padding:4px2px1px2px;padding:4px;Aligualquepara"margin",estaetiquetanospermiteindicarledesde4valores(espaciadohastacadaunodelosbordesporseparado),hasta1valor(paraindicarelmismoespaciadohastatodoslosbordes).

border-color:colorRGBonombredecolorEjemplos:border-color:red;border-color:#ffccff;Paraindicarelcolordelbordedelelementodelapáginaalqueseloaplicamos.Sepuedeponercoloresporseparadoconlosatributosborder-top-color,border-right-color,border-bottom-color,border-left-color.

border-style:none|dotted|solid|double|groove|ridge|inset|outsetEjemplos:border-style:solid;border-style:double;Elestilodelborde,losvaloressignifican:none=ningúnborde,dotted=punteado,solid=solido,double=dobleborde,desdegroovehastaoutsetsonbordesconvariosefectos3D.

border-width:UnidadesCSSEjemplos:border-width:10px;border-width:0.5in;Eltamañodelbordedelelementoalqueloaplicamos.

border:<grosor><tipo><color>Ejemplo:border:2pxsolidred;Deestaformapodemosindicarlastrespropiedadesdelbordealavez.Tambiénpodemosutilizarborder-top,border-right,border-bottomyborder-leftparaindicarestastrespropiedadesparaunbordeenconcreto.

Estilosparacajas

60

Page 61: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

float:none|left|rightEjemplo:float:right;Sirveparaalinearunelementoalaizquierdaoladerechahaciendoqueeltextoseagrupealrededordedichoelemento.

clear:none|both|right|leftEjemplo:clear:right;Indicaquenosepermitenelementosporeseladodelobjeto.Porejemplo,sitenemosvariascajasunaacontinuacióndeotra,alponer"clear:left"enlaúltimacaja,estapasaríaalasiguientelínea.

EnlasiguienteimagensepuedeverunesquemadeuncontenedorDIVenelqueserepresentaladiferenciaentremargin,paddingyborder:

Estilosparacajas

61

Page 62: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Pseudo-clasesUnapseudo-clasepermitetenerencuentadiferentescondicionesoeventosaldefinirunapropiedadparaunaetiquetaHTML,porejemplosiunenlacehasidovisitadoosielcursordelratónestásobreunelemento.Algunasdelaspseudo-clasesquepodemosutilizarson:

a:link-enlacequenohasidoexploradoporelusuario.a:visited-serefierealosenlacesyavisitados.a:active-enlaceseleccionadoconelratón.a:hover-enlaceconelpunterodelratónencima,peronoseleccionado.a:focus-enlaceconelfocodelsistema.Tambiénpuedeserusadoparauninput.p:first-letter-primeraletradeunpárrafo.p:first-line-primeralíneadeunpárrafo.

Utilizandoestoselementospodemosconfigurarporejemplo:

a{color:black;}

a:hover{color:blue;}

a:visited{color:darkgreen;}

p:first-letter{color:green;font-size:x-large;}

Enesteejemploseaplicaelcolorazulaltextodelosenlacessolocuandoelratónestéencima.Esdecir,eltextodelenlacetendrápordefectoelcolornegro,perocuandoelcursordelratónpaseporencimaelcolorcambiaráaazul.Ademástambiénseasignaelcolordeltextoverdeoscuroalosenlacesyavisitados,porloqueelusuariopodrávermarcadosdeestecolorlosenlacesqueyahapulsadoanteriormente.Porúltimotambiénseindicaquelaprimeraletradelospárrafostengaelcolorverdeyuntamañomásgrade.

Laspseudo-clasesnosepuedenincluirenelestiloenlíneadeunelemento,porlotantolastendremosquedefinirbienenlahojadeestilosexternaoenlasecciónstyledelacabecera,porejemplo:

Pseudo-clases

62

Page 63: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<html>

<head>

<styletype="text/css">

a{

background-color:white;

}

a:hover{

background-color:blue;

}

</style>

</head>

...

Pseudo-clases

63

Page 64: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

CapasNormalmentelaposicióndeloselementosdeunapáginaesrelativa,esdecir,dependedelosdemáselementosdelapágina.Porejemplo,unpárrafoestarámásabajosiantesdeélhaymáspárrafosoelementos.Debidoaesto,normalmentecuandosequeríacolocarelementosenunsitioconcreto,serecurríaalusodetablas(invisibles,soloparaestructurar).

ConCSSpodemoscolocarloselementosenposiciónabsoluta,esdecir,indicandoeltamañoycoordenadasexactasenlasquequeremosquesecoloque.ParaorganizarladisposiciónenunaWebconCSSsesueleusarelelemento<div>.Ademásselesueledarunidentificadorúnicoacadauno,medianteelcual,desdelahojadeestilo,podemosconfigurarsudisposición.Tambiénpodemoscolocarestoselementosconposiciónrelativaaotroelementoquelocontenga,porejemplo,un<div>dentrodeotro.

EscomúneneldiseñoWebcrearcontenedores<div>generalesenunaposiciónabsolutaocentradosenlapágina,conuntamañodefinido,loscualesseutilizaránparacontenerydisponerelrestodeelementosdenuestraWeb.Estosotroselementossepuedenalineardeformasencillaconunaalineación"relativa"asuscontenedores.Porejemplouncontenedorparalacabeceraquecontengaunpardecontenedoresparaladisposicióndelogotipoyeltextodecabecera.

DistribuciónParaindicareltipodedistribuciónodisposicióndeunelementolohacemosmedianteelatributo"position:valor".Elcualpuedetomarlosvalores:

absolute:Laposicióndelelementonodependedeningunaotraetiqueta.Estaposiciónsecalculadesdelaesquinasuperiorizquierdadelapágina.fixed:Aligualqueelanteriorlaposiciónesabsoluta,peroelelementosequedafijoenelsitioalhacer"scroll".relative:Posiciónrelativaasuelementocontenedor.Eslapropiedadpredeterminada.static:Aligualqueelanteriorlaposiciónesrelativa,peronopodemosredimensionar(porejemplo)elobjeto.

Posición

Capas

64

Page 65: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Paraindicarlaposiciónconcretadeunacapautilizamoslosatributos:top,bottom,leftyright,delaforma:

top:<posición>;

left:<posición>;

Normalmentesóloseutilizanunpardeellos,comotopyleft,obottonyright.LaposiciónseespecificamedianteunidadesdeCSS,comoporejemploen"px",aunquetambiénadmiteporcentajes.

Unejemplodeladefinicióndeunacapasería:

#micapa{

position:absolute;

top:200px;

left:150px;

width:175px;

height:175px;

border:solid1pxblue;

text-align:center;

color:gray;

}

EnnuestrodocumentoHTMLtendremosunelementodefinidodelaforma:<divid="micapa">...</div>,dentrodelcualcolocaremostextouotroselementos.

Laposiciónabsolutalapodemosdefinirrespectoalaventanadelnavegadorodeformarelativaaunelementocontenedor.Enestesegundocasotenemosqueindicarquelaposicióndelelementocontenedoresrelativa(odeotraformanofuncionará).

OrdenAvecestenemosvariascapas,unasporencimadeotras,yqueremosespecificarunorden,parapodercontrolarlasocultacionesentrecapas.Paraestousamoselz-index,delaforma:

z-index:<índice>;

LascapasconuníndicedeZ-indexmayorapareceránporencimadelascapasconunz-indexmenor.

Capas

65

Page 66: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EjemploEnestasecciónseincluyeunejemplomáscompletodeunapequeñapáginawebHTMLalaqueselehanaplicadoestilosdefinidosenunasecciónstyleinternaademásdealgunosestilosinline.

Enlasiguienteimagenseincluyeunacapturadelaaparienciafinaldelcódigodeejemplo.Comosepuedeverlawebconstadeunacabecera,unmenúlateral,unasecciónprincipaldecontenidoyunpiedepágina:

AcontinuaciónseincluyeelcódigoHTMLyCSSutilizadoparacomponerlawebdeejemplo.Enprimerlugar,enlaseccióndecabecera(head),sehaincluidounaseccióndeestilosentrelasetiquetasstyle.EnlasecciónbodyseincluyetodoelcódigoHTMLquedefinelapáginaconlosestilosaplicados:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

<head>

<title>Ejemplo</title>

<styletype="text/css">

body{/*Redefinimoslaetiquetabody*/

padding:0px;

margin:0px;

font-family:arial,helvetica;

width:900px;

margin:0auto;

Ejemplodeuso

66

Page 67: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

}

h1,h2{/*Redefinimoslasetiquetasdecabecera*/

color:navy;

}

#header{/*Estiloparalacabecerausandosuidentificador*/

padding:15px20px;

background-color:#E3DAFF;

border-bottom:1pxsolidsilver;

}

#sidebar{

float:left;

width:15%;

}

#article{

float:left;

width:80%;

}

#footer{

clear:both;

text-align:center;

border-top:1pxsolidsilver;

font-size:small;

color:gray;

background-color:#E3DAFF;

padding:20px;

}

#sidebara{/*Estiloparalosenlacesdelabarralateral*/

text-transform:uppercase;

text-decoration:none;

padding:10px5px;

display:block;

}

#sidebara:hover{/*Pseudo-claseparalosenlaces*/

background-color:navy;

color:white;

}

#articlep{

line-height:20pt;

}

.nota{/*Definimoslaclase.nota*/

background-color:yellow;

}

.alineado-derecha{/*Definimoslaclase.alineado-derecha*/

text-align:right;

}

</style>

</head>

<body>

<divid="header">

<h1>Webdeejemplo</h1>

</div>

<divid="content">

Ejemplodeuso

67

Page 68: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<divid="sidebar"style="padding-top:15px">

<ahref="#">Menu1</a>

<ahref="#">Menu2</a>

<ahref="#">Menu3</a>

<ahref="#">Menu4</a>

<ahref="#">Menu5</a>

</div>

<divid="article">

<h2>Contenidos</h2>

<p>

Loremipsumdolorsitamet,consecteturadipiscingelit,seddoeiusmo

d

temporincididuntutlaboreetdoloremagnaaliqua.

</p>

<p>

Utenimadminimveniam,quisnostrudexercitationullamco

<spanstyle="font-weight:bold;color:red">laborisnisiutaliquipexe

a

commodoconsequat</span>.

</p>

<p>

Duisauteiruredolorinreprehenderitinvoluptate

<spanclass="nota">velitessecillumdoloreeufugiatnullapariatur</

span>.

</p>

<br/>

<pclass="alineado-derecha">

Excepteursintoccaecatcupidatatnonproident,

<br/>

suntinculpaquiofficiadeseruntmollitanimidestlaborum.

</p>

</div>

</div>

<divid="footer">

Webdeejemplo

</div>

</body>

</html>

Ejemplodeuso

68

Page 69: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

IntroducciónaHTML5LaquintarevisióndellenguajedeprogramaciónHTMLpretenderemplazaralactual(X)HTML,corrigiendoproblemasconlosquelosdesarrolladoreswebseencuentran,asícomorediseñarelcódigoyactualizándoloanuevasnecesidadesquedemandalawebdehoyendía.

Actualmenteseencuentraenmodoexperimental,locualindicalamismaW3C;aunqueyaesusadopormúltiplesdesarrolladoreswebporsusavances,mejorasyventajas.

AdiferenciadeotrasversionesdeHTML,loscambiosenHTML5comienzanañadiendosemánticayaccesibilidadimplícitas.Estableceunaseriedenuevoselementosyatributosquereflejanelusotípicodelossitioswebmodernos.Algunosdeellossontécnicamentesimilaresalasetiquetas<div>y<span>,perotienenunsignificadosemántico,comoporejemplo<nav>(bloquedenavegacióndelsitioweb)o<footer>.Otroselementosproporcionannuevasfuncionalidadesatravésdeunainterfazestandarizada,comoloselementos<audio>y<video>.

AlgunoselementosdeHTML4.01hanquedadoobsoletos,incluyendoelementospuramentedepresentación,como<font>y<center>,cuyosefectossedebenderealizarutilizandoCSS.TambiénhayunrenovadoénfasisenlaimportanciadelscriptingDOMparaelcomportamientodelaweb.

IntroducciónaHTML5

69

Page 70: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

NavegadoresquelosoportanActualmente,delosnavegadoresdeescritorio,elquemayorsoportedaesGoogleChrome,seguidomuydecercaporMozillaFirefoxyAppleSafari.ElquemenorcompatibilidadofreceesInternetExplorer.

ParacomprobarlacompatibilidaddeunnavegadorpodemosvisitarlaWeb"http://www.html5test.com/"dondeserealizauntestdetodaslasfuncionalidadesdeHTML5.

Navegadoresquelosoportan

70

Page 71: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

DoctypeEldoctypeeselencargadodeindicarlealnavegadoreltipodedocumentoqueestáabriendo,conelfinderenderizarlapaginademaneracorrecta.Porejemplo,eldoctypedeHTML4es:

<!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01//EN""http://www.w3.org/TR/html4/strict.d

td">

ParaHTML5eldoctypesehasimplificadomuchoyademásescompatibleconlasversionesanterioresdeHTML:

<!DOCTYPEhtml>

Doctype

71

Page 72: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EstructurasemánticaHastaahoraseutilizabadeformaabusivalaetiqueta<div>ylastablasparaestructurarunawebenbloques.ElHTML5nosbrindanuevasetiquetasqueperfeccionanestaestructuración.Estasnuevasetiquetasintroducenunnuevonivelsemánticoquehacequelaestructuradelawebseamáscoherenteyfácildeentender.Ademáslosnavegadorespodrándarlemásimportanciaadeterminadassecciones,facilitándoleademáslatareaalosbuscadores,asícomocualquierotraaplicaciónqueinterpretesitiosWeb.EnlasiguienteimagensepuedeverunacomparaciónentrelaestructuraciónrealizadaconHTML(hastalaversión4)yHTML5:

LasWebssedividiránenlossiguienteselementos:

<section></section>:Seutilizapararepresentarunasección“general”dentrodeundocumentooaplicación,comouncapítulodeunlibro.Puedecontenersubseccionesysiloacompañamosdelasetiquetas<h1>..<h6>podemosestructurarmejortodala

Estructurasemántica

72

Page 73: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

páginacreandojerarquíasdelcontenido,algomuyfavorableparaelbuenposicionamientoweb.Porejemplo:

<section>

<h1>Introducciónalelementosection</h1>

<p>Elelementosectionseusaparaagrupar

contenidorelacionadoentresi.</p>

<p>...</p>

</section>

<article></article>:Seusaparadefinircontenidoautónomoeindependiente,conlaintencióndeserreutilizabledemodoaislado.Elelementoarticlepuedecontenerunoovarioselementossection.SiporejemplonuestrocontenidopuedeserredistribuidocomoRSSysiguemanteniendoíntegrosusignificado,entonces,probablementeesunelementoarticle.Dehecho,elelementoarticleestáespecialmenteindicadoparasindicación.Elelementoarticleesespecialmenteútilparapostsenblogs,noticiasenprensadigital,comentariosypostsenforos.LaespecificacióndeHTML5añadeademásqueelelementoarticledebeserusadoporwidgetsautónomoscomo;calculadoras,relojes,marcosdeclimaycosasporelestilo.Hayqueanalizarsielcontenidodeunwidgetesautónomo,independienteypuedeserreutilizableoinclusosindicado.

<aside></aside>:Representaunaseccióndelapáginaqueabarcauncontenidonodirectamenterelacionadoconelcontenidoquelorodea,porloqueselepuedeconsideraruncontenidoindependiente.Dentrodeesteelementopuedenincluirse:elementospublicitarios,barraslaterales,gruposdeelementosdelanavegación,efectostipográficos,uotrocontenidoqueseconsidereseparadodelcontenidoprincipaldelapágina.

<header></header>:Eslacabeceradelapáginaodeunasección.Existeunadiferenciaclaveentreelelementoheaderyelusohabitualdeltérminoheader(ocabecera)utilizadocomúnmenteparasituarloselementosdelencabezadodeunsitioweb.Unapáginawebdebedefinirunheaderprincipaldondenormalmenteiráellogooelnombredelsitioyseguramenteunmenúdenavegación,peroademáspuede—ydebe—definirotroselementos<header>dentrodeloselementos<section>:

<section>

<header>

<h1>Cabecerasesección</h1>

</header>

<p>...</p>

</section>

Estructurasemántica

73

Page 74: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<nav></nav>:Contieneinformaciónsobrelanavegaciónporelsitioweb,usualmenteunalistadeenlaces.Esteelementodebedeserutilizadosoloparalanavegaciónprincipaldelsitioynoparaenlacesexternosporejemplo.Normalmenteelelementonavaparecedentrodeunelementoheaderofooter.

<footer></footer>:RepresentaelpiédeunasecciónolaparteinferiordeunapáginaWeb,contieneinformaciónacercadelapágina/secciónquepocotienequeverconelcontenidodelapágina,comoelautor,elcopyright,lafechadeúltimamodificación,etc.Igualqueconlaetiqueta<header>,esteelementotambiénsepuedeutilizardentrodeunasecciónparaindicarinformacióncomo:quienlohaescrito,informacióndepropiedadintelectual,enlaces,etc.

EsmuyimportantetenerencuentaqueestasetiquetasnoindicansuposiciónenlapáginaWeb,sinosuvalorsemántico.Porejemplo,lasetiquetasheader,footeroasidenoindicanqueesoselementostenganqueirenlapartesuperior,inferiorolateraldelcontenidoprincipal,sinoqueindicansufunciónenesasecciónoenesapágina.

Ademásdebemostenerencuentaqueestasnuevasetiquetassecomportanigualqueunaetiquetadecaja<div>porloquepodemosaplicarleslosmismosestilosCSS.Podemosredefinirlapropiaetiquetaoaplicarleunaclase,porejemplo:

header{width:100%;padding:10px;margin-bottom:20px;}

.webheader{height:30px;border:1pxsolidgray;background-color:silver;}

.sectionheader{font-size:20px;}

Estructurasemántica

74

Page 75: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

FormulariosLaestructuradelosformulariosconHTML5novaríaconrespectoalasanterioresdeHTML.Perosíqueseañadenmuchosnuevostiposdecamposquepodemosutilizar,cadaunoespecíficoparacadatipodedato.

Enelcasodequeutilicemosestascaracterísticasyelnavegadornoseacompatible,simplementelasignorarásincausarnosmayoresproblemas.TambiénpodemosdetectarsielnavegadorsoportaunadeterminadacaracterísticayencasonegativoemularlamediantecódigoJavaScript(paramásinformaciónverlasección"DetectarfuncionalidadesdeHTML5").

Losnuevostiposdecamposson:

search:seutilizaparacrearcajasdebúsqueda.Tieneunaspectosimilarauncampodetipotexto.Ademáspodemosutilizarelatributoresults="num"paraañadirunhistóricodebúsquedascon"num"resultados.DemomentonofuncionanienFirefoxnienChrome.

<labelfor="busqueda">Búsquedaconhistórico:</label>

<inputtype="search"name="busqueda"id="busqueda"results="5"/>

number:camponumérico,incorporadosbotonesparaparaincrementarodecrementarelvalordelcampo.Ademáspodemosusaratributosparaasignarrestricciones,comomin="",max=""ostep="".Elvaloresalmacenadoenelatributovalue="".

range:camponuméricoquepermiteseleccionarmedianteunabarradedesplazamientounvalorentredosvalorespredeterminados,especificadosmediantemin=""ymax="".Elvaloractualesalmacenadoenelatributovalue="".Ademáspodemosindicarelincrementomínimoaldesplazarlabarraconstep="".

color:permiteseleccionaruncolor.DemomentosolofuncionaenOpera11.

tel:esuncampodetextonormalperovalidasielvalorintroducidoesunnúmerotelefónico(todavíanofunciona).

url:validadireccionesweb.Demomentorequiere"http://"o"http:"simplemente.Enalgunosnavegadorescambiaelaspectodelcambio.

Formularios

75

Page 76: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

email:validadireccionesdeemail.Funcionaenalgunosnavegadores,mostrandoademásunaspectodiferenciado.ParaiPhoneademásadaptaelteclado.

date:seleccionarundíaenuncalendario.Enalgunosnavegadores(paramóvil)apareceuncalendariodesplegable(comoenOpera).

month:selectorparameses.Enalgunosnavegadores(paramóvil)apareceuncalendariodesplegable.

week:selectorparasemanas.Enalgunosnavegadores(paramóvil)apareceuncalendariodesplegable.

time:campoconformatoparahora.

datetime:permiteseleccionarfechayhora.

datetime-local:permiteseleccionarfechasyhoralocal.

output:estecamposeutilizaparavisualizarvalores,porejemploelvalordeuncampo"range".DemomentosolofuncionaenOpera.Sesueleutilizarjuntoconlapropiedad"onformchange"paraactualizarsuvalor:

<outputonformchange="value=rango.value">0</output>

Además,juntoconestosnuevostiposdecampos,tambiénsehanincorporadonuevostiposdeatributos.Estosnuevosatributossonaplicablesalamayoríadeloscampos:

Autocomplete:Lamayoríadelosnavegadoresincorporanlafuncionalidaddeautocompletaralgunoscamposdelosformulariosconvaloresintroducidosanteriormente.Estafuncionalidadnosiempreresultaútil,sobretodosialguiennosrobanuestroportátilodispositivomóvil.LanuevaespecificacióndeHTML5nospermitedesactivarelautocompletadoenunformulariocompletoosoloencamposespecíficos.Elatributoautocompletenospermitedefinirdosvalores:"on"o"off".

Formularios

76

Page 77: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<formaction="formaction.php"autocomplete="off">

...

</form>

Elcódigoanteriordesactivaríaelautocompletadodetodoelformulario.Siporelcontrariosoloqueremosdesactivarelautocompletadodeunsolocampopodemosespecificarloasí:

<inputtype="text"name="cuentadelbancosupersecreta"autocomplete="off"/>

EstafuncionalidadnosepuedeemularmediantecódigoJavaScript.

Placeholder:Elatributoplaceholder="texto"seutilizaparacolocarelvalordesutextodentrodelcampoamododeayuda.Sisefocalizadichocampo,seeliminaelplaceholder.Siabandonamoselcamposinañadirningúnvalor,sevuelveaañadirelplaceholder.EstafuncionalidadsiempreharequeridodelusodeJavaScriptparaserllevadoacabo,peroconlanuevaespecificaciónestecomportamientopuededefinirsedelaforma:

<labelfor="referer">Nombre</label>

<inputid="referer"name="referer"type="text"

placeholder="Escribetunombrecompleto"/>

Obteniendocomoresultado:

Required:Unadelastareasdevalidaciónmásextendidasesladeloscamposrequeridos.LanuevaespecificacióndeHTML5incluyeelatributorequiredquenossirveparadefinirsiuncampoesrequeridoono.Siuncamporequeridoestáenblancoelformularionoseráenviadoyademásavisaráconunmensaje:

<labelfor="username">Sunombredeusuario</label>

<inputid="username"name="username"type="text"required/>

NOTA:Esunerrorgravedeseguridadvalidarlosformulariosúnicamentedesdeelladodelcliente,esimprescindibleademásrealizarlavalidaciónenelservidor.

Autofoco:Elatributodeautofocoasignaelfoco(cursordeescritura)alcampoindicadoencuandolapáginasehacargado.Sólosepuedeasignaraunelementodelapágina.DemomentoesteatributosololosoportanSafari,ChromeyOpera.FirefoxeIE,loignoran,perosepuedeemularfácilmentemediantecódigoJavaScript(verlasiguientesección"DetectarfuncionalidadesdeHTML5").

Formularios

77

Page 78: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<inputname="b"autofocus/>

List:Usandoelatributolistconunelemento<input>podemosespecificarunalistadeopciones.Estopermitealusuarioseleccionarunvalordelalistaoescribirunoquenoestéenella(estetipodeelementosesuelellamarComboBoxes).LoselementosdelalistasedebendeindicarutilizandootronuevoelementodeHTML5,el<datalist>.Elcualsimplementenospermitecrearunalistadevalores.Enalgunosnavegadoresestasfuncionalidadestodavíanofuncionan,comoenChrome.

<labelfor="diasemana">Díadelasemana:</label>

<inputtype="text"name="diasemana"id="diasemana"list="dias"/>

<datalistid="dias">

<optionvalue="Lunes"/>

<optionvalue="Martes"/>

<optionvalue="Miércoles"/>

<optionvalue="Jueves"/>

<optionvalue="Viernes"/>

<optionvalue="Sábado"/>

<optionvalue="Domingo"/>

</datalist>

Conestecódigoobtendríamosunresultadosimilaraldelasiguienteimagen:

Pattern(formatting):Esteatributoseutilizaparavalidarlaentradadelusuariomedianteexpresionesregulares.Enladirección"http://es.wikipedia.org/wiki/Expresi%C3%B3n_regular"podemosobtenermásinformaciónsobrelasexpresionesregulares.Ejemplodeuso(enFirefoxyChromefunciona):

<labelfor="cp">CódigoPostal</label>

<inputid="cp"name="cp"pattern="[\d]{5}(-[\d]{4})"/>

Formularios

78

Page 79: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

MarkHTML5tambiénintroduceunconjuntonuevodeelementosinline,soloqueyanosellamanelementosinlinesinotext-levelsemanticsosemánticaaniveldetexto.Unodeelloseslaetiquetamark.Cuandorealizamosunabúsquedaenciertossitios,loselementosencontradosenlapáginaaparecenremarcadosparafacilitarsulocalización.Hastaahoraelestiloseaplicabaconetiquetas<span>,peroestasoluciónnoessemántica.Esahídondeentraenescenalanuevaetiqueta<mark>:

<h1>Resultadosdelabúsquedadelapalabra’anillo’</h1>

<ol>

<li>Elseñordelos<mark>anillo</mark>s...</li>

<li>elclientecompróeste<mark>anillo</mark></li>

</ol>

SiqueremospodemosredefinirelestilodeestanuevaetiquetadelamismaformaquelohacíamosconlasetiquetasdeHTML,porejemplo,paracambiarelcolordefondoarojo:

mark{background-color:red;}

EtiquetaMark

79

Page 80: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

CanvasElelementocanvaspuededefinirsecomounentornoparacrearimágenesdinámicas.UtilizandosuAPIenJavaScriptpodemosmanipularelelementocanvasparadibujarenélycreargráficosdinámicosdetodotipo(incluidasinterfacesdeaplicacioneswebcompletas).LaAPI,aunquedemomentoestáendesarrollo,lapodemosencontraren:http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html

Paraempezarausarloloúnicoquehayqueespecificarsonsusdimensiones.Eltextoqueescribamosentrelaaperturaycierredelaetiquetacanvassolamenteseráinterpretadopornavegadoresquenosoportenestaetiqueta:

<canvasid="myCanvas"width="360"height="240">

<p>Tunavegadornosoportacanvas</p>

</canvas>

ElrestodetrabajoconcanvassehaderealizarconcódigoJavaScript.Primerodebemosreferenciaresteelementoyadquirirsucontexto(quedemomentosoloestádisponiblepara2D):

varcanvas=document.getElementById(’myCanvas’);

varcontext=canvas.getContext(’2d’);

Unavezadquirimoselcontextopodemosempezaradibujar.LaAPIbidimensionalofrecemuchasdelasherramientasquepodemosencontrarencualquieraplicacióndediseñográfico:trazos,rellenos,gradientes,sombras,formasycurvasBézier.Losprincipalesmétodosdisponiblesson:

fillRect(x,y,width,height):dibujaunrectángulorellenodecolorsegúnelestiloactivado.strokeRect(x,y,width,height):dibujasoloelbordedeunrectángulo,elinteriorserátransparente.clearRect(x,y,width,height):borraeláreaindicada.beginPath():inicializaeldibujadodeun"trazo".closePath():cierralafiguracreandounalíneadesdeelúltimopuntohastaelprimero.moveTo(x,y):mueveelpunterodeltrazohastalascoordenadasindicadas(parapoderseguirdibujando).lineTo(x,y):dibujauntrazodesdelaposiciónactualhastalascoordenadasindicadas.stroke():dibujaeltrazoindicadodesdeelúltimo"beginPath()".

Canvas

80

Page 81: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

fill():cierraeltrazodefinidodesdeelúltimo"beginPath()"ylorellena.arc(x,y,radius,startAngle,endAngle,anticlockwise):dibujaunarcoconcentroen"x,y"yelradiodefinido.Losángulossedefinenenradianes(radianes=(PI/180)*grados)yelúltimoparámetroesunvalorbooleano.quadraticCurveTo(controlx,controly,x,y):dibujaunacurvadebeziercuadrática.bezierCurveTo(control1x,control1y,control2x,control2y,x,y):dibujaunacurvadebeziercúbica.drawImage(x,y):dibujaunaimagen(comoobjetoJavaScript)enelcanvas.createImageData(width,height):creaunobjetoImageDatacomounarraydepíxelesparasermanipuladocomounarraydeenteros.getImageData(x,y,w,h):cargaunobjetoImageDataapartirdeldibujoactualparasermanipulado.putImageData(imageData,x,y):mapealosvaloresdeunobjetoImageDataeneldibujoactual.strokeText(string,x,y):dibujaunacadenadetextousandosolosuborde.fillText(string,x,y):dibujaunacadenadetexto.

Acontinuaciónmostramosunejemplodedibujadoenunobjetocanvasunavezcapturadosucontexto:

//Primerodefinimoslaspropiedadesconlasquevamosadibujar

context.fillStyle=’#0000ff’;//colorderellenoazul

context.strokeStyle=’#ff0000’;//colordeborderojo

context.lineWidth=4;//grosordelínea

//Yacontinuacióndibujaralgunasfiguras

context.fillRect(0,0,150,50);//rectángulorelleno

context.strokeRect(0,60,150,50);//rectángulosoloborde

context.clearRect(30,25,90,60);//borraráreadelcanvas

context.strokeRect(30,25,90,60);//Ordendecoordenadas:izqda,arriba,ancho,

largo

Obteniendofinalmenteunresultadosimilara:

WebsmuyimportantesestáncambiandosuscontenidosacanvasydejandodeusarFlash,comoSlideshare(verhttp://www.slideshare.net/AmitRanjan/slideshare-is-html5-now).

Canvas

81

Page 82: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Canvas

82

Page 83: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

AudioElnuevoelementoaudiopermiteinsertararchivossonorosendiferentesformatos,incluyendomp3yogg.AdemásproveedeunainterfazdecontrolsobrelareproduccióndelmismoconunaAPIenJavaScriptsinnecesidaddepluginsdeningúntipo(comoFlash).AñadirunreproductordeaudioenHTML5esmuysimple:

<audiosrc="archivo.mp3"controls>

<p>Tunavegadornosoportaelelementoaudio</p>

</audio>

EnFirefoxobtendríamosunresultadosimilara:

Eltextoqueseencuentraentrelasetiquetasaudiosoloestenidoencuentapornavegadoresquenosoportenlanuevaetiqueta.Elatributo"controls"indicaalnavegadorquemuestreloscontrolesdereproducción.Encasodenoactivarlonosevisualizaríanada,peropodríamoscontrolarlareproducciónmediantefuncionesJavaScript,delaforma:

<audioid="player"src="archivo.mp3"></audio>

<buttononclick="document.getElementById(’player’).play();">Reproducir</button>

<buttononclick="document.getElementById(’player’).pause();">Pausa</button>

<buttononclick="document.getElementById(’player’).volume+=0.1;">SubirVolumen</butt

on>

<buttononclick="document.getElementById(’player’).volume-=0.1;">BajarVolumen</butt

on>

Tambiénpodemosusarlosatributos"autoplay"y"loop"paraqueseauto-reproduzcayparaquesecreeunbucledereproduccióninfinito:

<audiosrc="archivo.mp3"autoplayloop></audio>

Elformatodeaudioautilizarvendráimpuestoporelnavegadorusadoynoporelestándar:

Audio

83

Page 84: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Códec IE>=9 Firefox Chrome Safari Opera

OggVorbis no sí sí no sí

WAVPCM no sí sí sí sí

MP3 sí no sí sí sí

AAC sí no sí sí sí

Speex no no sí no no

Comopuedeverse,combinandoVorbisyMP3podremosofreceraudioatodoslosnavegadoresmayoritarios.Existeunaformadedefinirmásdeunarchivodeaudioparalaetiquetaaudio,enlugardeusarelatributo"src",utilizaremoslaetiqueta"source"parapoderdefinirmúltiplesarchivos.Estasetiquetasseiránleyendodearribaaabajohastaqueelnavegadorencuentreunformatosoportado.Deestamanerapodremoscomplacerlasnecesidadesdetodoslosusuariossindiscriminaraningúnnavegador.

<audiocontrols>

<sourcesrc="archivo.ogg"type="audio/ogg"/>

<sourcesrc="archivo.mp3"type="audio/mpeg"/>

<objecttype="application/x-shockwave-flash"data="player.swf?soundFile=archivo.mp3"

>

<paramname="movie"value="player.swf?soundFile=archivo.mp3"/>

<ahref="archivo.mp3">Descargaelarchivodeaudio</a>

</object>

</audio>

EnesteejemplohemosañadidoademásunaterceralíneaconunreproductorFlashporsinofuesensoportadosningunodelosformatosanteriores,yunlinkdirectodedescargaparaaquellosquetampocosoportenFlash.Asíestaremosofreciendonuestrocontenidoatodoslosnavegadoresydispositivosmanteniendounasbuenasprácticasencuantoaaccesibilidaddelcontenidoserefiere.

Audio

84

Page 85: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

VídeoLanuevaespecificacióndeHTML5soportalainclusióndevídeoempotradoenlaspáginaswebdeformanativa.Elelementovideonoespecificaelformatodelmismosinoqueelusodeunouotrovendráimpuestoporelfabricantedelnavegador:

Códec IE>=9 Firefox Chrome Safari Opera

OggTheora no sí sí no sí

H.264 sí no no sí no

VP8 no sí sí no sí

Elelementovideodisponedelosatributos"autoplay","loop"y"preload",paraactivarlaauto-reproducción,paraindicarquesereproduzcaenbucleyparaactivar/desactivarlaprecargadelvídeo.AsimismopuedesutilizarloscontrolesqueteofreceelnavegadordeformanativautilizandoelatributocontrolsobienpuedesofrecertuspropioscontrolesenJavaScript.Dadoqueelvídeoocupaunespacio,tambiénpodremosdefinirsusdimensionesconlosatributos"width"y"height".Einclusopodemosindicarunaimagenparaquesemuestreantesdelareproducciónmedianteelatributo"poster":

<videosrc="archivo.mp4"controlswidth="360"height="240"poster="poster.jpg"></video

>

Conloqueobtendríamosunresultadosimilara:

Paradarsoporteatodoslosnavegadores,podemosespecificardiferentesarchivosendiferentesformatos.AdemáspodemosusarelmismotrucoqueusábamosconelelementoaudioparaseguirdandosoportealplugindeFlashatravésdelaetiquetaobject,einclusoincluirunlinkdedescarga:

Vídeo

85

Page 86: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<videocontrolswidth="360"height="240"poster="poster.jpg">

<sourcesrc="archivo.ogv"type="video/ogg"/>

<sourcesrc="archivo.mp4"type="video/mp4"/>

<objecttype="application/x-shockwave-flash"width="360"height="240"

data="player.swf?file=archivo.mp4">

<paramname="movie"value="player.swf?file=archivo.mp4"/>

<ahref="archivo.mp4">Descargalapelícula</a>

</object>

</video>

Vídeo

86

Page 87: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

GeolocalizaciónLageolocalizacióneslaformadeobtenertuposiciónenelmundoysiquieres,compartirestainformación.Existenmuchasmanerasdedescubrirdondeteencuentras,portudirecciónIP,laconexiónderedinalámbrica,latorredetelefoníamóvilporlaqueseconectatumóvil,ousandodirectamenteelposicionadorGPS.

HTML5incorporaunanuevafuncionalidadparafacilitarestatarea,quedependerádequeelnavegadorledesoporte.EstádisponibleapartirdelasversionesdeOpera10.6,Firefox3.5,Chrome5,Safari5eInternetExplorer9.

ParaobtenerlalocalizaciónsimplementetienesqueutilizarelobjetonavigatordeJavaScript.InicialmenteesrecomendablecomprobarsiestádisponiblelalocalizaciónydeserasíyapodemosutilizarelmétodogetCurrentPositiondelaforma:

if(navigator.geolocation)

{

navigator.geolocation.getCurrentPosition(showPosition);

}

functionshowPosition(position)

{

varlat=position.coords.latitude;

varlng=position.coords.longitude;

alert("Latitud:"+lat+",longitud:"+lng);

}

Geolocalización

87

Page 88: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

AlmacenamientoOfflineElalmacenamientowebestáampliamentesoportadoporlosnavegadoresmodernos,tantoenplataformaescritoriocomoenplataformamóvil,Android2.1+,iPhone3.1+,iPad4.2+,OperaMobile11.00+,PalmWebOS1.4+yBlackBerry6.0+,Crome4.0+,Firefox3.5+,IE8.0+,Opera10.5+ySafari4.0+.

TiposdealmacenamientoElalmacenamientowebofrecedosáreasdealmacenamientodiferentes,elalmacenamientolocal(localStorage)yelalmacenamientoporsesión(sessionStorage),quedifierenenalcanceytiempodevida.Losdatosalojadosenunalmacenamientolocalessoloaccesiblepordominioypersisteaúncuandosecierreelnavegador.Elalmacenamientoporsesiónesporventanaysutiempodevidaestálimitadoaloquedurelaventana(opestaña).

Losdatossealmacenandeformamuysencilla,porparesclave/valor,delaforma:

//Paraalmacenamientopersistenteenlocal:

localStorage.setItem("miValor",valor);

//Paraalmacenamientoporsesión:

sessionStorage.setItem("miValor",valor);

Pararecuperarlosposteriormentesolotenemosquehacer:

varmiValor=localStorage.getItem("miValor");

varmiValor=sessionStorage.getItem("miValor");

LasvariablesguardadasconsessionStoragesólosemantendríanencasodequecambiemosdepáginaoqueelnavegadorserefresque,mientrasquelocalStorageguardaríalosdatosaunqueelnavegadorseacerrado.

Tambiénpodemosborrarlosvaloresalmacenados,indicandounvalorenconcretootodosellos:

localStorage.remove("miValor");

localStorage.clear();

AlmacenamientoOffline

88

Page 89: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

OfflineApplicationCache(appCache)EstanuevacaracterísticadeHTML5permiteejecutaraplicacionesWebauncuandonoestamosconectadosaInternet.Alvisitarporprimeravezunapáginaweb(queuseappCache)elnavegadordescargayguardatodoslosarchivosnecesariosparaesapágina.Lasiguientevezquelavisitemoselnavegadorusarádirectamentelosarchivosdescargados(anoserqueestemosconectadosysecompruebequehayunaversiónmásactualdelaWeb).

ElprincipalcomponentedelappCacheeselarchivodemanifiesto(manifestfile),unarchivodetextoconlalistadearchivosqueelnavegadorclientedebealmacenar.Enprimerlugar,parausarestacaracterísticadebemosdeindicarelarchivodemanifiestoenlaetiquetadeaperturaHTML:

<htmlmanifest="app.manifest">

EsteficherodebedeempezarconeltextoCACHEMANIFEST.Acontinuaciónencadanuevalíneaindicaremosunrecursoaalmacenar(usandoURLsabsolutasorelativas),ademáspodemosponercomentariosanteponiendoelsímbolo"#".

CACHEMANIFEST

#Estoesuncomentario

index.html

js/scripts.js

css/estilos.css

imgs/logo.gif

imgs/image1.jpg

Unavezcargadalapágina,laúnicapeticiónquerealizaráelnavegadorseráporelficherodemanifiest.Aunquesolohayacambiadounletradelfichero,sedescargarántodoslosrecursosdenuevo.Paraasegurarnosqueservimoslaúltimaversióndenuestrapáginacuandorealizamoscambios,laformamássencillayseguraesactualizarelficherodemanifiestoconuncomentarioindicandolafechadelaúltimaactualización(ounnúmerodeversión,etc.),delaforma:

CACHEMANIFEST

#Actualizadoel2011-10-12

Paramásinformaciónpodéisconsultarlasfuentes:

http://www.w3.org/TR/offline-webapps/

http://www.w3.org/TR/html5/offline.html

AlmacenamientoOffline

89

Page 90: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

AlmacenamientoOffline

90

Page 91: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

DetectarfuncionalidadesdeHTML5ModernizresunalibreríadeJavaScriptconlicenciaMITdecódigoabiertoquedetectasisoncompatibleselementosdeHTML5yCSS3.Podemosdescargarlalibreríadesde"http://www.modernizr.com/".Parautilizarlasolohayqueincluirenel<head>detupáginadelaforma:

<head>

<scriptsrc="modernizr.min.js"></script>

</head>

Modernizrseejecutaautomáticamente,noesnecesariollamaraningunafunción.Cuandoseejecuta,secreaunaobjetogloballlamadoModernizr,quecontieneunsetdepropiedadesBoleanasparacadaelementoquedetecta.Porejemplosisunavegadorsoportaelementoscanvas,lapropiedaddelalibrería"Modernizr.canvas"será“true”.Situnavegadornosoportaloselementoscanvas,lapropiedadserá“false”,delaforma:

if(Modernizr.canvas){

//síquehaysoporte

}else{

//nohaysoporteparacanvas

}

Paracomprobarelementosdeunformulariotambiénpodemoscrearnosdossimplesfuncionesquevalidanelsoporteparadiferentestiposdeinputsyatributos:

ComprobarsiuninputessoportadoConlasiguientefunciónpodemoscomprobarsiunnavegadorsoportaonolosnuevostiposdeinputs:

functioninputSupports(tipo){

varinput=document.createElement(’input’);

input.setAttribute(’type’,tipo);

if(input.type==’text’){

returnfalse;

}else{

returntrue;

}

}

DetectarfuncionalidadesdeHTML5

91

Page 92: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Porloquepodemosusarlodelasiguienteforma:

if(!inputSupports(’range’)){

//Inputtiporangenosoportado

}

ComprobarsiunatributoessoportadoParacomprobarsihaysoporteparaunatributo

functionattrSupports(el,attr){

vartelement=document.createElement(el);

if(attrintelement){

returntrue;

}else{

returnfalse;

}

}

Porloquepodemosusarloparacomprobar,porejemplo,losatributosautofocus,placeholderorequired:

if(!attrSupports(’input’,’autofocus’)){

document.getElementById(’search_string’).focus();

}

if(!attrSupports(’input’,’placeholder’)){

//Atributoplaceholdernosoportado

}

if(!attrSupports(‘input’,‘required’)){

//Atributorequirednosoportado

}

DetectarfuncionalidadesdeHTML5

92

Page 93: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

IntroducciónaCSS3LaespecificacióndeCSS3vieneconinteresantesnovedadesquepermitiránhacerwebsmáselaboradasymásdinámicas,conmayorseparaciónentreestilosycontenidos.Darásoporteamuchasnecesidadesdelaswebsactuales,sintenerquerecurriratrucosdediseñadoresolenguajesdeprogramación.

AunqueCSS3estátodavíaenfasededesarrollo,lamayoríadenavegadoresyadansoporteacasitodoslosnuevosestilos,comoFirefox,ChromeoSafari.PorelcontrarioInternetExplorernohaempezadoaincorporarestosnuevoselementoshastalaversión9.

LasprincipalespropiedadesnuevasenCSS3son:

SelectoresdeatributosypropiedadesNuevaspseudo-clasesFormatosdecolor:coloresHSL,coloresHSLA,coloresRGBA,OpacidadBordes:border-color,border-image,border-radius,box-shadowFondos:background-origin,background-clip,background-size,capasconmúltiplesimágenesdefondoTexto:text-shadow,text-overflow,roturadepalabraslargas,WebFonts,creacióndemúltiplescolumnasdetextoModelodecajabásico:overflowTransicionesytransformaciones

Acontinuaciónveremosconmásdetallecadaunadeestasnuevaspropiedades.

IntroducciónaCSS3

93

Page 94: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

NuevosselectoresdeatributosEnprimerlugarencontramos3nuevosselectoresdeatributos:

elemento[atributo^="valor"]:Seleccionaloselementosconeseatributoyquesuvalorcomienzaporlacadenadetextoindicadaen"valor".elemento[atributo$="valor"]:Seleccionaloselementosconeseatributoyquesuvalorterminaporlacadenadetextoindicadaen"valor".elemento[atributo*="valor"]:Seleccionaloselementosconeseatributoyquesuvalorcontienelacadenadetextoindicadaen"valor".

Porejemplo:

//Seleccionatodoslosenlacesqueapuntenaunadireccióndecorreo:

a[href^="mailto:"]{...}

//Seleccionatodoslosenlacesqueapuntanapáginas.php

a[href$=".php"]{...}

//Seleccionatodoslosenlacesquellevenaunapáginaquecontengalapalabraejempl

o:

a[href*="ejemplo"]{...}

Tambiénincorporanuevasformasdeseleccionaretiquetasadyacentes:

h1+h2{...}:Etiquetasinmediatamenteadyacentes.h1~h2{...}:Selectorgeneraldehermanos.Válidocuando<h2>seencuentredespuésde<h1>,peropuedehaberotrasetiquetasdepormedio.

Ejemplo:

<h1>Título</h1>

<h2>Subtítuloadyacente</h2>

<h1>Título</h1>

<p>párrafodeseparación</p>

<h2>Subtítuloconselectorgeneraldehermanos</h2>

Tambiénpodemosindicaratributosespecíficosdeunaetiqueta,con:

etiqueta1[atributo1="valor1"]:seleccionaríatodaslasetiquetas"etiqueta1"quecontenganunatributollamado"atributo1"cuyovalorseaiguala"valor1".Porejemplo,siqueremosindicarunestiloparatodaslasetiquetasinputqueseandetipotexto:

Nuevosselectoresdeatributos

94

Page 95: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

input[type="text"]{

background:#eee;

}

Nuevosselectoresdeatributos

95

Page 96: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Nuevaspseudo-clasesUnapseudo-claseesunestadoousopredefinidodeunelementoalqueselepuedeaplicarunestiloindependientementedelestiloaplicadoaldesuestadopordefecto.EnCSS3sehanañadidomuchasnuevaspseudo-clasesparafacilitaralosprogramadoreselusodealgunosestilosavanzadoseneldiseñodepáginasWeb.Lasnuevaspseudo-clasesson:

:nth-child(n)-Fijaelaspectodeunaocurrenciaespecíficadelelementonodohijoespecificado.Porejemplo,eltercerelementonodohijodeunalistasería"li:nth-child(3)".Ademássepuedenusarpequeñasexpresionescomoparámetroparaporejemploseleccionartodosloselementosimpares:"nth-child(2n+1)"lospares"nth-child(2n)",etc.Loselementosimparesyparestambiénsepuedenseleccionarusando"nth-child(odd)"y"nth-child(even)"

:nth-last-child(n)-igualque":nth-child(n)"peroempezandoacontardesdeelfinal.

:nth-of-type(n)-Fijalaaparienciadeunaocurrenciaespecíficadelelementoconeltipodeselectorespecificadoenunelementopadre.Porejemplolasegundalistanoordenadaseríaul:nth-of-type(2).Tambiénpermitelosmismosparámetrosque":nth-child(#)".

:nth-last-of-type(n)-igualque":nth-of-type(n)"peroempezandoacontardesdeelfinal.

:first-child-Fijaelaspectodelprimerelementodeuntipodeselectorsolosieselprimernodohijodesuelementopadre,porejemplolaprimeraetiqueta<li>deunalista<ol>.

:last-child-Ultimoelementodeunalistadeelementosdeuntipodado.

:first-of-type-Seleccionaelprimerelementodeuntipoconcretodentrodelalistadehijos.

:last-of-type-Seleccionaelúltimoelementodeuntipo.

:only-child-Seleccionaelelementosieselúnicoelementohijo.

:only-of-type-Seleccionaelelementosieselúnicoelementohijodeesetipo.

:empty-Seleccionaloselementosquenotienenhijos(incluyendonodosdetexto).

:enabled-Seleccionaloselementosdelainterfazquetenganelestado"enable".

:disabled-Seleccionaloselementosdelainterfazquetenganunestado"disabled".

Nuevaspseudo-clases

96

Page 97: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

:not(s)-Seleccionaloselementosquenocoincidanconelselectorespecificado.

:lang(language)-nospermiteespecificarestilosquedependendelidiomaespecificadoporlapropiedadlanguage(en,sp,etc.)

Ejemplosdeuso:

tr:nth-child(even){

background:silver;

}

tr:nth-child(odd){

background:white;

}

p:lang(en){

color:gray;

font-style:italic;

}

Pseudo-clasesparaformulariosAdemástambiénsehanañadidonuevaspseudo-clasesquepodemosusarenlosformulariosparaaplicarunformatosegúnelestadodeuncampo.EstaspropiedadesvanenconcordanciaconlosnuevoscamposintroducidosenHTML5(verlaseccióndeformulariosdeHTML5).estasson:

:valid-campoválido(dependerádeltipodecampo).:invalid-campoinválido(dependerádeltipodecampo).:required-camporequerido(marcadoconelatributo"required").:optional-campoopcional(camponomarcadoconelatributo"required").:checked-elementomarcado(ochecked,válidopararadiobuttonocheckbox).:in-range-valordentrodelrangoindicado(paracamposnuméricosoderango).:out-of-range-valorfueraderango(paracamposnuméricosoderango).:read-only-campodesololectura.:read-write-campodelectura/escritura.

Algunosejemplosdeuso:

Nuevaspseudo-clases

97

Page 98: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

<head>

<style>

#form1input:valid{background:lightgreen;}

#form1input:invalid{border-color:red;}

#form1specialInputinput:valid{background:green;}

</style>

</head>

<body>

<formid="form1"name="form1"method="post"action="formaction.php">

<p>Nombre:

<inputtype="text"name="nombre"id="nombre"required/>

<p/>

<p>Usuario:

<specialInput>

<inputtype="text"name="usuario"id="usuario"required/>

</specialInput>

<p/>

</form>

</body>

Enesteejemplocabedestacarlaetiqueta"specialInput",quenoesningunaetiquetaexistente,sinounanuevaetiquetaquehemoscreadoparaaplicarunformatoespecial.

Ademáspodemosaplicarestaspseudo-clasesencadenayhacercosascomo:

input:focus:required:invalid{

background:pinkurl(ico_validation.png)379px3pxno-repeat;

}

input:required:valid{

background-color:#fff;background-position:379px-61px;

}

DadoqueInternetExplorer6-8nosoportalamayoríadepseudo-clasessehandesarrolladoalgunaslibreríasdeJavaScriptquerealizanlasmismasfuncionesparaestosnavegadores,como"select[ivizr]"quepodréisdescargardesupáginaoficial"http://selectivizr.com/".

Nuevaspseudo-clases

98

Page 99: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ColorEnCSS3sehanincorporadonuevasformasparadefinirloscolores:

rgba(red,green,blue,opacity);-ColorRGBA.Elvalordeopacidaddebedeestarentre0y1,siendo0totalmentetransparente.Porejemplo,podemosusarlodelaforma:

background-color:rgba(255,115,135,0.5);

color:rgba(255,115,135,0.5);

hsl(hue,saturation,lightness);-ModelodecolorHSL.hsla(hue,saturation,lightness,alpha);-ModelodecolorHSLA.cmyk(cyan,magenta,yellow,black);-ModelodecolorCMYK.opacity:0.5;-Tambiénpodemosindicarelvalordetransparenciauopacidadporseparado,debiendodeestarestevalorentre0y1,siendo0totalmentetransparentey1totalmenteopaco.ParadartambiénsoporteaInternetExplorerusaremos:"filter:alpha(opacity=50);".

Color

99

Page 100: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

BordesEnCSS3sehanincorporadocuatronuevaspropiedadesparadarformatoalosbordesdeunacaja.Estaspropiedadesnoestántodavíaplenamentesoportadasentodoslosnavegadores,porloqueparaquefuncioneenlamayoríadeellostendremosqueusartambiénlaspropiedadesnativasdelnavegador(simplementeañadiremoslosprefijos-webkit-y-moz-).Lasnuevaspropiedadesson:

border-radius:permitecrearcajasconesquinasredondeadas.Hastaahoraestosolosepodíahacerinsertandoimágenesquesimularanestacaracterística.Ahoralopodemoshacerdeunaformamuchomássencilla:

-webkit-border-radius:30px;

-moz-border-radius:30px;

border-radius:30px;

Ademástambiénpodemosindicarcadaunodelosbordesporseparado:

-moz-border-radius-topleft:10px;

-moz-border-radius-topright:20px;

-moz-border-radius-bottomright:30px;

-moz-border-radius-bottomleft:40px;

-webkit-border-radius:10px20px30px40px;

border-radius:10px20px30px40px;

border-image:estenuevoestilonospermiteusarunaimagencomobordedeunacaja.Tenemosqueindicartresatributos:laimagenautilizar,elgrosorylaformadeaplicarlaimagen(stretch,repeat,round,none).Ejemplodeuso:

-webkit-border-image:url(imagen.png)27repeat;

-moz-border-image:url(imagen.png)27repeat;

border-image:url(imagen.png)27repeat;

Elresultadodependerádelaimagenqueutilicemosparaelborde,peroporejemplopodríamosobtenerresultadoscomoelsiguiente:

border-color:Permitecreardegradadosenlosbordesdeunacajaindicandola

Bordes

100

Page 101: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

secuenciadecoloresdeldegradado(píxelapíxelydedentrohaciafuera),delaforma:

-webkit-border-bottom-colors:#555#666#777#888#999#aaa#bbb#ccc;

-webkit-border-top-colors:#555#666#777#888#999#aaa#bbb#ccc;

-webkit-border-left-colors:#555#666#777#888#999#aaa#bbb#ccc;

-webkit-border-right-colors:#555#666#777#888#999#aaa#bbb#ccc;

-moz-border-bottom-colors:#555#666#777#888#999#aaa#bbb#ccc;

-moz-border-top-colors:#555#666#777#888#999#aaa#bbb#ccc;

-moz-border-left-colors:#555#666#777#888#999#aaa#bbb#ccc;

-moz-border-right-colors:#555#666#777#888#999#aaa#bbb#ccc;

border:8pxsolid#000;

Conloqueobtendríamosunresultadosimilara:

box-shadow:Permitedarsombraaelementosdebloque.Tiene4atributos:ladistanciahorizontaldelasombra,ladistanciaverticaldelasombra,eldesenfoque(blur)yelcolordelasombra.Ademáspodemosusarvaloresnegativosparalasdistanciashorizontalyverticalparacrearsombrasenotrossentidos.Unejemplodesombraencolorgris:

-moz-box-shadow:3px3px6px#888888;

-webkit-box-shadow:3px3px6px#888888;

box-shadow:3px3px6px#888888;

Conloqueobtendríamosunresultadosimilara:

Bordes

101

Page 102: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

FondosCSS3tambiénhaintroducidonuevaspropiedadesparadefinirelestilodelasimágenesdefondo:

background-origin:border-box|padding-box|content-box-permitedefinirelorigendecoordenadassobreelquesevaacolocarlaimagendefondo.Aceptatresposiblevalores:"border-box"paraqueelfondoempiecedesdeelmismobordedelelemento,"padding-box"paraquelaimagendefondosecoloqueapartirdelespaciadodepadding,yporúltimo"content-box"paraquelaimagendefondosecoloquedondeempiezaelcontenidodelelemento,sintenerencuentaelbordenielpadding.

background-clip:border-box|padding-box|content-box-defineeláreasobrelaqueseextiendelaimagendefondo,puedetomartresvalores:"border-box"seextiendeportodaeláreadentrodelazonadefinidaapartirdelborde,"padding-box"seextiendeapartirdelespaciadodepaddingy"content-box"elfondoseextiendesolodentrodeláreadecontenido.

background-size:Permiteindicareltamañodelaimagendefondo.Aceptadiferentesatributos:

background-size:200px;//especificaanchoyaltoalavezbackground-size:200px100px;//200pxdeanchoy100pxdealtobackground-size:auto200px;//ajustarlaanchuraautomáticamentebackground-size:50%25%;//Tambiénpodemosindicareltamañoconporcentajesbackground-size:contain;//Escalarlaimagenaltamañomáximoposible(conservandolasproporcionesoriginales)paraquequepadentrodeláreaasignada.background-size:cover;//Escalarlaimagenparaquecubracompletamenteeláreaasignada(conservandolasproporcionesoriginales).Capasconmúltiplesimágenesdefondo:Conlapropiedadbackgroundahorapodemosindicarvariasimágenesdefondo,simplementeseparándolasconcomas.Paracadapropiedadbackgrounddebemosdefinircuatrovalores:imagendefondo,posiciónvertical,posiciónhorizontal,mododerepetición(repeat,repeat-x,repeat-y,no-repeat).Ejemplo:

background:url(imagen1.png)10pxcenterno-repeat,

url(imagen2.png)0centerrepeat-x;

Fondos

102

Page 103: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Dadoqueestaspropiedadesnosonsoportadastodavíaentodoslosnavegadores,deberemosdedefinirlastambiénañadiendolosprefijos"-webkit-"y"-moz-"paradarunmayorsoporte.

Fondos

103

Page 104: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

TextoLasnuevaspropiedadesdeCSS3paradarformatoatextosson:

text-shadow:Permitedarsombraauntexto.Suspropiedadessondistanciahorizontal,distanciavertical,desenfoque(blur)ycolordelasombra.Porejemplo:

text-shadow:2px2px2px#9e9e9e;

filter:dropshadow(color=#9e9e9e,offx=2,offy=2);

Conloqueobtendríamosunresultadosimilara:

word-wrap:break-word;-Permitesepararpalabrasmuylargasdentrodeunelementodebloque.Pordefectotomaelvalor"normal",porloquelaspalabraslargassesaldríandelbordedelelemento.Conelvalor"break-word"indicamosquelaspalabraspuedenserpartidasparaquequepanenelanchodelacaja,delaforma:

text-overflow:clip|ellipsis;-Indicalaformadepartirtextocuandoexcedeeltamañodesucontenedor.Con"clip"eltextosobranteserácortadodirectamenteaunquesequedeunapalabraporlamitad,mientrasque"ellipsis"quitarálaúltimapalabraquenoquepaypondráensulugarunospuntossuspensivos.EstapropiedaddemomentonofuncionaenFirefox.

font-face:Permiteutilizartipografíasdiferentesalasestándar,queseránimportadasdesdeunficheroindicado.Demomentosoportalosformatos:.eot,.ttfy.otf.Paraimportarunafuentehayqueseguirlasiguientesintaxis:

@font-face{

font-family:<nombre-fuente>;

src:<source>;

[font-weight:<weigth>];

[font-style:<style>];

}

Texto

104

Page 105: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Con"font-family"indicamoselnombrequeledamosalafuente,y"src"nospermiteseleccionarelficheroacargar.Losotrosdosparámetrossonopcionalesytendránvalor"normal"pordefecto.Porejemplo:

@font-face{

font-family:’LeagueGothic’;

src:url(LeagueGothic.otf);

}

//Ahorayapodemosusarestafuente:

p{

font-family:’LeagueGothic’;

}

Texto

105

Page 106: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ColumnasSehanañadidonuevaspropiedadesquenospermitencrearcolumnasdirectamenteapartirdeuntexto,estasson:

column-count:Defineelnúmerodecolumnasenelquesevaadividireltexto.Eltextoserádivididodelamejorformaposibleparaqueocupetodoelespacio.column-width:Defineelanchodelacolumna(enunidadesCSS).column-gap:Defineelespacioentrelascolumnas(enunidadesCSS).column-rule:Medianteestapropiedadpodemosañadirunalíneaseparadoraentrelascolumnas,sinoespecificamosestapropiedadnoseañadiráningunalínea.Debemosdeindicarletresvalores:anchodelalínea(enunidadesCSS),estilodelalínea(solid,dotted,double,etc.)ycolordelalínea.

Paradarunmayorsoporteantepondremoslosprefijos-webkit-y-moz-,delaforma:

-webkit-column-count:3;

-webkit-column-rule:1pxsolidsilver;

-webkit-column-gap:10px;

-moz-column-count:3;

-moz-column-rule:1pxsolidsilver;

-moz-column-gap:10px;

column-count:3;

column-rule:1pxsolidsilver;

column-gap:10px;

Conloqueobtendríamosunresultadosimilara:

Columnas

106

Page 107: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ModelodecajabásicoSehanañadidonuevaspropiedadesparaladisposicióndeelementosdentrodeunacaja:

overflow:visible|hidden|scroll|auto;-permiteindicarqueocurrirásielcontenidoexcedeeláreadeunelemento,aceptacuatroposiblesvalores:

visible:Noserecortaelcontenido,lapartequequedefueraserávisible.Eselvalorpordefecto.hidden:Elcontenidoquesobresalgaseráocultadoytampocosemostrarálabarradescroll.scroll:Elcontenidoserecortayelnavegadormuestralabarradescrollparaverelrestodelcontenido.auto:Sielcontenidoserecortaelnavegadormostraráunabarraparaverelrestodelcontenido.

overflow-x:igualqueoverflowperoindicaremossololapropiedadenhorizontal.overflow-y:igualqueoverflowperosoloparavertical.resize:none|horizontal|vertical|both;-habilitalaposibilidadderedimensionar"manualmente"unacaja.Puedetomarlosvalores:none,horizontal(permitirredimensionarsoloenhorizontal),vertical(soloenvertical),oboth(redimensionarambasdimensiones).Serecomiendaademásañadirlapropiedad"overflow:hidden"paraocultarloselementosalredimensionar.Porejemplo:

resize:both;

overflow:auto;

Modelodecajabásico

107

Page 108: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

TransicionesUnadelaspropiedadesmásnovedosasqueincorporaCSS3eslaposibilidaddecrearanimacionesmediantetransicionesytransformaciones.Sepuedenaplicartransicionesalamayoríadepropiedades(posiciones,fondo,color,tamaño,etc.).Desafortunadamente,notodoslosnavegadoresusanlosnombresestándares,porloquetendremosqueañadirlosprefijos"-webkit-","-moz-"y"-o-"paradarunmayorsoporte.Labuenanoticiaesquelasintaxisparalosvaloresentodosellosesconsistente:

transition-property:propertyName;-Indicalapropiedadsobrelaqueseaplicarálatransición.Sepuedeaplicarsobrecasitodaslaspropiedades:background,color,height,width,border,etc.Ademástambiénpodemosusarelvalor"all"paraqueseapliquesobretodaslaspropiedadesdisponibles,porejemplo:

-webkit-transition-property:all;

-moz-transition-property:all;

-o-transition-property:all;

transition-property:all;

transition-duration:duration;-Indicaeltiempoquedebedurarlatransiciónensegundos(0.5s)oenmilisegundos(500ms):

-webkit-transition-duration:1s;

-moz-transition-duration:1s;

-o-transition-duration:1s;

transition-duration:1s;

transition-timing-function:timingFunction;-Eslafuncióndetiempoqueseguirálatransición,indicaloscambiosdevelocidadalolargodelaanimación.Puedetomarcincovaloresdiferentes:ease(valorpordefecto),linear,ease-in,ease-out,ease-in-outycubic-bezier(cp1x,cp1y,cp2x,cp2y).Porejemplo:

-webkit-transition-timing-function:linear;

-moz-transition-timing-function:linear;

-o-transition-timing-function:linear;

transition-timing-function:linear;

transition-delay:delay;-Permiteestablecerunretrasoinicialantesdeejecutarlatransición.Eltiempoderetrasosedebedeindicarensegundos(0.5s)oenmilisegundos(500ms):

Transiciones

108

Page 109: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

-webkit-transition-delay:0.2s;

-moz-transition-delay:0.2s;

-o-transition-delay:0.2s;

transition-delay:0.2s;

transition:propertyNamedurationtimingFunctiondelay;-Tambiénpodemosindicarlascuatropropiedadesexplicadasenunasolalínea:

-webkit-transition:all1slinear0.2s;

-moz-transition:all1slinear0.2s;

-o-transition:all1slinear0.2s;

transition:all1slinear0.2s;

Engeneral,lomejoresdeclararlatransiciónenlapropiedadbase,sinpseudo-clases.Deestaformaconseguiremosqueseejecuteenambasdirecciones,porejemplo:

.btn1{

background:#9c3;

-webkit-transition:background0.3sease;

-moz-transition:background0.3sease;

-o-transition:background0.3sease;

transition:background0.3sease;

}

.btn1:hover{

background:#690;

}

Transiciones

109

Page 110: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

TransformacionesLapropiedad"transform"nospermiteaplicartransformaciones2Do3Daunelemento.Porejemplonospermiterotar,escalar,mover,etc.elelementoindicado.Estapropiedadtodavíanoessoportadaportodoslosnavegadores,porloquetendremosqueañadirlosprefijos"-ms-","webkit-","-moz-"y"-o-"paradarunmayorsoporte.Algunasdelasfuncionesdetransformaciónquepodemosutilizarson:

none:Indicaquenosetienequeaplicarningunatransformación.translate(x,y):Defineunatraslación2D.translateX(x):TraslaciónenlacoordenadaX.translateY(y):TraslaciónenlacoordenadaY.scale(x,y):Defineunatransformacióndeescalado2D,deberemosdeindicarvaloresentre0.1y2.scaleX(x):EscaladoenlacoordenadaX,deberemosdeindicarvaloresentre0.1y2.scaleY(y):EscaladoenlacoordenadaY,deberemosdeindicarvaloresentre0.1y2.rotate(angle):Aplicaunarotación,elángulodebeserindicadoengrados(ejem:"30deg").skew(x-angle,y-angle):Defineunatransformación2Ddesesgo(otorsión),indicadaengrados(deg).skewX(angle):DefineunatransformacióndesesgosobrelacoordenadaX(indicadaengrados).skewY(angle):DefineunatransformacióndesesgosobrelacoordenadaY(indicadaengrados).

Ademástambiénpodemosindicarvariastransformacionesenunamismalínea,delaforma:

#myDIV{

-moz-transform:scale(1.2)rotate(9deg)translate(5px,2px)skew(5deg,5deg);

-webkit-transform:scale(1.2)rotate(9deg)translate(5px,2px)skew(5deg,5deg);

-o-transform:scale(1.2)rotate(9deg)translate(5px,2px)skew(5deg,5deg);

-ms-transform:scale(1.2)rotate(9deg)translate(5px,2px)skew(5deg,5deg);

transform:scale(1.2)rotate(9deg)translate(5px,2px)skew(5deg,5deg);

}

Haymuchosmástiposdetransformaciones,aunquealgunasdeellosnosonfuncionalestodavía(sobretodolasfunciones3D),paramásinformaciónconsulta:"http://www.w3schools.com/cssref/css3_pr_transform.asp".

Transformaciones

110

Page 111: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Transformaciones

111

Page 112: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

IntroducciónaJavaScriptJavaScript(comunmenteabreviadocomo"js")esunlenguajedeprogramaciónqueseutilizaprincipalmenteparacrearpáginaswebdinámicas.Unapáginawebdinámicaesaquellaqueincorporaefectoscomotextoqueapareceydesaparece,animaciones,accionesqueseactivanalpulsarbotonesyventanasconmensajesdeavisoalusuario.

Seutilizaprincipalmenteensuformadelladodelcliente(client-side),aunqueexisteunaformadeJavaScriptdelladodelservidor(Server-sideJavaScriptoSSJS).Suusoenaplicacionesexternasalaweb,porejemploendocumentosPDF,aplicacionesdeescritorio(mayoritariamentewidgets)estambiénsignificativo.

Técnicamente,JavaScriptesunlenguajedeprogramacióninterpretado,porloquenoesnecesariocompilarlosprogramasparaejecutarlos.Enotraspalabras,losprogramasescritosconJavaScriptsepuedenprobardirectamenteencualquiernavegadorsinnecesidaddeprocesosintermedios.

JavaScriptnoesJava,aunqueelnombreincluyelapalabraysusintaxistengaalgodeinfluenciadedicholenguaje(tambiéndeC).Sinembargosonlenguajestotalmentediferentes,diseñadosporpersonasdiferentes,conobjetivosdiferentes.ConceptualmenteJavaesunlenguajeestático,elcompiladorcompruebalostiposdedatos,yademásesunlenguajeinterpretado.JavaScriptesdinámico,existenlostipos,perosoloseresuelvenentiempodeejecución,ynoesunlenguajeinterpretado.

JavaScriptesengeneralunlenguajesencilloaunqueexpresivo,quehatriunfadodondeJavahafallado,enelcliente,ytienelaventajadequenonecesitainstalación,yaqueestápresenteentodoslosnavegadores.

IntroducciónaJavaScript

112

Page 113: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ComoincluirJavaScriptennuestrapáginaWebLaintegracióndeJavaScriptyXHTMLesmuyflexible,yaqueexistenalmenostresformasparaincluircódigoJavaScriptenlaspáginasweb.

IncluirdesdeunarchivoexternoLasinstruccionesJavaScriptsepuedenincluirenunarchivoexternodetipoJavaScriptquelosdocumentosXHTMLenlazanmediantelaetiqueta<script>.

<scripttype="text/javascript"src="/js/codigo.js"></script>

SepuedencreartodoslosarchivosJavaScriptqueseannecesariosycadadocumentoXHTMLpuedeenlazartantosarchivosJavaScriptcomonecesite.LaprincipalventajadeenlazarunarchivoJavaScriptexternoesquesesimplificaelcódigodelapágina,quesepuedereutilizarelmismocódigoJavaScriptentodaslaspáginasdelsitiowebyquecualquiermodificaciónrealizadaenelarchivoJavaScriptsevereflejadainmediatamenteentodaslaspáginasqueloenlazan.

IncluirenelmismodocumentoHTMLElcódigoJavaScriptseencierraentreetiquetas<script>yseincluyeencualquierpartedeldocumento:

<scripttype="text/javascript">

alert("Holamundo!");

</script>

Aunqueescorrectoincluircualquierbloquedecódigoencualquierzonadelapágina,serecomiendadefinirelcódigoJavaScriptdentrodelacabeceradeldocumento(sección<head>)oalfinaldelapágina(antesdelaetiquetadecierre</body>.Conestasegundaopciónseconsiguemejorareltiempodecargadelapágina,yaqueprimerosemostrarátodoelcontenidodelawebyporúltimosecargaránlosjavascript.

IncluirenloselementosHTML

InclusióndeJavaScriptenHTML

113

Page 114: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ConsisteenincluirtrozosdeJavaScriptdentrodelcódigoHTMLdelapágina,porejemplo:

<ponclick="alert('Unmensajedeprueba')">Unpárrafodetexto.</p>

ElprincipalinconvenientedeestemétodoesqueensuciainnecesariamenteelcódigoHTMLdelapáginaycomplicaelmantenimientodelcódigoJavaScript.

InclusióndeJavaScriptenHTML

114

Page 115: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EtiquetanoscriptAlgunosnavegadoresnodisponendesoportecompletodeJavaScript,otrospermitenbloquearloparcialmenteeinclusoalgunosusuariosbloqueancompletamenteelusodeJavaScriptporquecreenqueasínavegandeformamássegura.

Enestoscasos,eshabitualquesilapáginawebrequiereJavaScriptparasucorrectofuncionamiento,seincluyaunmensajedeavisoalusuarioindicándolequedeberíaactivarJavaScriptparadisfrutarcompletamentedelapágina.

<noscript>

<p>BienvenidoaMiSitio</p>

<p>Lapáginaqueestásviendorequiereparasufuncionamientoelusode

JavaScript.Silohasdeshabilitadointencionadamente,

porfavorvuelveaactivarlo.</p>

</noscript>

Etiquetanoscript

115

Page 116: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ConsideracionessobreellenguajeJavaScriptAlgunasconsideracionesatenerencuentasobreellenguajeJavaScriptantesdeempezaraversusintaxisson:

Nosetienenencuentalosespaciosenblancoylasnuevaslíneas.Sedistinguenlasmayúsculasyminúsculas.Nosedefineeltipodelasvariables:unamismavariablepuedealmacenardiferentestiposdedatosdurantelaejecucióndelscript.Noesnecesarioterminarcadasentenciaconelcarácterdepuntoycoma(;),perosíqueesmuyrecomendable.Sepuedenincluircomentarioscon"//"ycon"/**/".Lalistadepalabrasreservadasquenosepuedenutilizarlibrementeparadefinirvariablesofuncionesson:break,case,catch,continue,default,delete,do,else,finally,for,function,if,in,instanceof,new,return,switch,this,throw,try,typeof,var,void,while,with.

Consideracionessobreellenguaje

116

Page 117: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

VariablesLasvariablesenJavaScriptsecreanmediantelapalabrareservadavar,quesolamenteesnecesarioutilizarlalaprimeravez(aldeclararlavariable),delaforma:

varnumero1=2;

varnumero2=3;

varresultado=numero1+numero2;

Enjavascriptnoesnecesariodeclararlasvariablesconvar,yenestecasoloquehaceescrearunavariableglobalalaqueasignaelvalorcorrespondiente.Porestarazónserecomiendadeclararsiemprelasvariablesyllevarcuidadoconestacaracterística.

Elnombredelavariablesolopuedeestarformadoporletas,números,elsímbolodedólar"$"yelguiónbajo"_",ademáslaprimeraletradelnombrenopuedeserunnúmero.Acontinuaciónseincluyenalgunosejemplosdenombresválidoseincorrectos:

//Ejemploscorrectos

var$numero1;

var_$letra;

var$$$otroNumero;

var$_a__$4;

//Ejemplosincorrectos

var1numero;//Empiezaporunnúmero

varnumero;1_12.3;//Contieneloscarácteres";"y"."

TiposdevariablesDadoquetodaslasvariablessecreandelamismaforma(mediantelapalabrareservadavar),eltipodelavariablevendrádefinidosegúnelvalorqueseleasigneoalmaceneenella.Acontinuaciónsedetallanlosdiferentestiposdevariablesposibles:

Variablesnuméricas

Siaunavariableseleasignaunenteroounvalordecimaldichavariableseconvertiráatiponumérico,porejemplo:

varnum1=16;

varnum2=3.1415;

Variables

117

Page 118: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Variablestipocadenasdetexto

Seutilizanparaalmacenarcaracteres,palabrasy/ofrasesdetexto.Paraasignarelvaloralavariable,seencierraelvalorentrecomillasdoblesosimples,paradelimitarsucomienzoysufinal,porejemplo:

varmensaje="Bienvenidoanuestrositioweb";

varnombreProducto='ProductoABC';

varletraSeleccionada='c';

vartexto1_1="Unafrasecon'comillassimples'dentro";

vartexto1_2='Unafrasecon\'comillassimples\'dentro';

vartexto2_1='Unafrasecon"comillasdobles"dentro';

vartexto2_2="Unafrasecon\"comillasdobles\"dentro";

Booleanos

Unavariabledetipobooleanalmacenauntipoespecialdevalorquesolamentepuedetomardosvalores:true(verdadero)ofalse(falso).Porejemplo:

varclienteRegistrado=false;

varivaIncluido=true;

Arrays

Paradefinirunarray,seutilizanloscaracteres[y]paradelimitarsucomienzoysufinalyseutilizaelcarácter,(coma)parasepararsuselementos:

varnombre_array=[valor1,valor2,...,valorN];

Unnuevoarraysepuededeclararasignadovaloresiniciales(comoenelejemploanterior),ovacíohaciendovararray1=newArray();otambiénvararray2=[];ydespuésasignarlevalores:

vararray1=newArray();

array1[0]="hola";

array1[1]="mundo";

varsaludo=array1[0];//Obtenerelvalordeunelementodelarray

Lasposicionesoíndicesdelarrayempiezanen0yterminaneneltamañodelarraymenosuno.

Variables

118

Page 119: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Tipodeunavariable

EnJavaScriptsepuedecomprobareltipodeunavariablemedianteeloperadortypeof,porejemplo:

typeof"John"//string

typeof3.14//number

typeoffalse//boolean

typeof[1,2,3,4]//object

JavaScriptdefinelossiguientestiposprimitivosdevariables:undefined,null,boolean,number,stringyobject.Losdosprimeros(equivalentes)seutilizanparaidentificarcuandoseaccedeaunavariablequeestásindefinir.Lostiposboolean,numberystringyaloshemosvistoenlasseccionesanteriores,perohayquedestacarqueeltipoobjectseutilizaparadefinirtantoalosarrayscomoalosobjectos(loscualesnosetrataránenestemanualdeiniciación).

Variables

119

Page 120: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

OperadoresLosoperadorespermitenmanipularelvalordelasvariables,realizaroperacionesmatemáticasconsusvaloresycomparardiferentesvariables.Deestaforma,losoperadorespermitenalosprogramasrealizarcálculoscomplejosytomardecisioneslógicasenfuncióndecomparacionesyotrostiposdecondiciones.

AsignaciónEsteoperadorseutilizaparaguardarunvalorespecíficoenunavariable.

varnumero1=3;

varnumero2=4;

varnumero3=numero1+numero2;

IncrementoydecrementoEstosdosoperadoressolamentesonválidosparalasvariablesnuméricasyseutilizanparaincrementar(++)odecrementar(--)enunaunidadelvalordeunavariable.

varnumero=5;

++numero;//Pre-incremento

numero++;//Post-incremento

--numero;//Pre-decremento

numero--;//Post-decremento

Sieloperadorseutilizacomoprefijoeldecrementooincrementoserealizaantesdelaoperación,siporelcontrarioseutilizacomosufijoserealizarádespués,porejemplo:

varnumero1=5;

varresultado=2+numero1++;

//resultado=7

varnumero1=5;

varresultado=2+++numero1;

//resultado=8

Operadoreslógicos

Operadores

120

Page 121: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Elresultadodecualquieroperaciónqueutiliceoperadoreslógicossiempreesunvalorlógicoobooleano.

Negación:Seutilizaparaobtenerelvalorcontrarioalvalordelavariable:varnegacion=!valor_booleano;

And:Eloperadorseindicamedianteelsímbolo&&ysuresultadosolamenteestruesilosdosoperandossontrue:varresultado=valor1&&valor2;

Or:Eloperadorseindicamedianteelsímbolo||ysuresultadoestruesialgunodelosdosoperandosestrue:varresultado=valor1||valor2;

OperadoresmatemáticosLosoperadoresdefinidosson:suma(+),resta(-),multiplicación(*),división(/)ymódulo(%).Acontinuaciónseincluyenalgunosejemplos:

varnumero1=10;

varnumero2=5;

varresultado=numero1/numero2;//resultado2

resultado=3+numero1;//resultado13

resultado=numero2–4;//resultado1

resultado=numero1*numero2;//resultado10

resultado=numero1%numero2;//resultado0

Losoperadoresmatemáticostambiénsepuedencombinarconeloperadordeasignaciónparaabreviarsunotación:

varnumero1=5;

numero1+=3;//numero1=numero1+3=8

numero1-=1;//numero1=numero1-1=4

numero1*=2;//numero1=numero1*2=10

numero1/=5;//numero1=numero1/5=1

numero1%=4;//numero1=numero1%4=1

OperadoresrelacionalesodecomparaciónLosoperadoresrelacionalesdefinidosporJavaScriptsonidénticosalosquedefinenlasmatemáticas:mayorque(>),menorque(<),mayoroigual(>=),menoroigual(<=),igualque(==)ydistintode(!=).Elresultadodetodosestosoperadoressiempreesunvalorbooleano:

Operadores

121

Page 122: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

varnumero1=3;

varnumero2=5;

resultado=numero1>numero2;//resultado=false

resultado=numero1<numero2;//resultado=true

numero1=5;

numero2=5;

resultado=numero1>=numero2;//resultado=true

resultado=numero1<=numero2;//resultado=true

resultado=numero1==numero2;//resultado=true

resultado=numero1!=numero2;//resultado=false

Operadores

122

Page 123: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EstructurasdecontroldeflujoLasestructurasdecontrolpermitenmodificarelflujodeejecucióndelasinstruccionesdeunprograma.

EstructuraifSeempleaparatomardecisionesenfuncióndeunacondición.Sudefiniciónformales:

if(condicion){

...

}

Silacondiciónsecumple(esdecir,sisuvalorestrue)seejecutantodaslasinstruccionesqueseencuentrandentrode{...}.Silacondiciónnosecumple(esdecir,sisuvaloresfalse)noseejecutaningunainstruccióncontenidaen{...}yelprogramacontinúaejecutandoelrestodeinstruccionesdelscript.

Lacondiciónseevaluarádeformabooleanayporlotantopodemosutilizarcualquieradelosoperadoresquehemosvistoparaello:!,&&,||,>,<,==,etc.

Estaestructurapermiteañadirunasecciónelsequeseejecutaráencasodequenosecumplalacondiciónanterioreinclusoconcatenarvariassentenciasifpararealizarvariascomprobaciones.Acontinuaciónseincluyenalgunosejemplos:

Estructurasdecontroldeflujo

123

Page 124: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

varnombre="";

if(nombre==""){

alert("Aúnnonoshasdichotunombre");

}

else{

alert("Hemosguardadotunombre");

}

//If...elseifanidado

varvalor=3;

if(valor==1)

alert("Lavariablevale1");

elseif(valor==2)

alert("Lavariablevale2");

elseif(valor==3)

alert("Lavariablevale3");

else

alert("Lavariabletieneotrovalor");

EstructuraswitchLaestructuraswitchseutilizaparaagilizarlatomadedecisionesmúltiples,trabajadelamismamaneraqueloharíansucesivosif,ifelseanidadosenelquesegúnelvalordeunavariableentraríaenunodeloscasosdefinidosoenelcasopordefecto:

Estructurasdecontroldeflujo

124

Page 125: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

switch(variable){//Lavariablepuedesercualquiertipodedato

case"ok":

//sivariable=="ok"

break;

case1:

//sivariable=="1"

break;

default:

//Sinoesigualaningunodeloscasosanteriores

break;

}

´´´

Elejemploanteriorseríaigualahacer:

```javascript

if(variable=="ok"){

//sivariable=="ok"

}

elseif(variable==1){

//sivariable=="1"

}

else{

//Sinoesigualaningunodeloscasosanteriores

}

EstructuraforEstaestructurapermiterealizarunaseriederepeticiones(tambiénllamadobucle)mientrassecumplaunacondición:

for(inicializacion;condicion;actualizacion){

...

}

Donde:

La"inicialización"eslazonaenlaqueseestablecelosvaloresinicialesdelasvariablesquecontrolanlarepetición.La"condición"eselúnicoelementoquedecidesicontinuaosedetienelarepetición.La"actualización"eselnuevovalorqueseasignadespuésdecadarepeticiónalasvariablesquecontrolanlarepetición.

Ejemplodeusoconunarray:

Estructurasdecontroldeflujo

125

Page 126: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

vardias=["Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo"];

for(vari=0;i<7;i++){

alert(dias[i]);

}

EstructurawhileEssimilarafor,repetiráelcontenidodelbuclemientrassecumplalacondicióninicial:

while(condicion){

...

}

Estructurado...whileEstaestructuraessimilaralbucletipowhileperoevalualacondiciónalfinaldelbucle,conloqueseaseguraquealmenosseejecutaráunaiteración:

do{

...

}while(condicion);

Estructurafor...inEstetipodebucle,derivadodelaestructuratipofor,permiteiterarentreloselementosdeunarrayodeunobjeto(notratadosenestaintroducción)deunaformamuysencilla:

vardias=["Lunes","Martes","Miércoles","Jueves","Viernes","Sábado","Domingo"];

for(iindias){

alert(dias[i]);

}

Estructurasdecontroldeflujo

126

Page 127: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

FuncionesútilesdeJavaScriptJavaScriptincorporaunaseriedeherramientasyutilidadesparaelmanejodelasvariables.

FuncionesútilesparamostrarresultadosLafunción"alert(texto);"nospermitemostrarunvalorocadenaenunaventanaemergente.Lafunción"console.log(texto);"nospermitemostrarunvalorocadenaenlaconsoladelsistema.Estafunciónsesueleutilizarparadepuración.

FuncionesútilesparacadenasdetextoLongituddeunacadena:seobtieneapartirdesupropiedad".length"Concatenacióndecadenas:operador"+"Convertirenmayúsculas:toUpperCase()Convertirenminúsculas:toLowerCase()Obteneruncarácterdelacadena:charAt(posicion)

Ejemplos:

varmensaje="HolaMundo";

varnumeroLetras=mensaje.length;//numeroLetras=10

varconcatenacion="¡"+mensaje+"!";

varmayusculas=mensaje.toUpperCase();

varletra=mensaje.charAt(0);//letra=H

FuncionesútilesparaarraysLongituddelarray:seobtieneapartirdesupropiedad".length"Añadirunelementoalfinaldelarray:"push(valor)"

Ejemplos:

vararray=[1,2,3];

varnumeroElementos=array.length;//numeroElementos=3

array.push(4);//contenidodelarray=[1,2,3,4]

Funcionesútiles

127

Page 128: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

FuncionesútilesparanúmerosComprobarposiblesvaloresnuméricosnodefinidos:"isNaN(valor)"Comprobarsielvaloresfinito:"isFinite(valor)"Formatear/redondearnúmerosdecimales:".toFixed(digitos)"

Ejemplos:

varvalor1=3.14159265358979323846;

varvalor2=0;

if(isNaN(valor1/valor2)||!isFinite(result))

alert("Ladivisiónnoestádefinidaparalosnúmerosindicados");

varvalor3=valor1.toFixed(2);//3.14

Funcionesútiles

128

Page 129: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

FuncionesUnafunciónesunconjuntodeinstruccionesqueseagrupanpararealizarunatareaconcretayquesepuedenreutilizarfácilmente.LasfuncionesenJavaScriptsedefinenmediantelapalabrareservadafunction,seguidadelnombredelafunción.Sudefiniciónformaleslasiguiente:

functionnombre_funcion(){

...

}

Elnombredelafunciónseutilizaparallamaraesafuncióncuandoseanecesario.Acontinuaciónseincluyeunejemplodefunciónysullamada:

<script>

functioncalculaSuma(){

varvalor1=3;

varvalor2=7;

varresultado=valor1+valor2;

alert("Elresultadoes"+resultado);

}

calculaSuma();//llamadaalafunción"calculaSuma"

</script>

Igualqueenotroslenguajes,alasfuncionesselepuedenpasarvaloresoargumentosdeentradaypuedendevolverunvalorcomoresultado:

functioncalculaSuma(valor1,valor2){

varresultado=valor1+valor2;

returnresultado;

}

varresultado=calculaSuma(10,4);//llamadaalafunción"calculaSuma"

alert(resultado);

Esimportantesaberque:

Sepuedeutilizarunnúmeroilimitadodeargumentos.Elnúmerodeargumentosquesepasaaunafuncióndeberíaserelmismoqueelnúmerodeargumentosquehaindicadolafunción.Noobstante,JavaScriptnomuestraningúnerrorsisepasanmásomenosargumentosdelosnecesarios.Encasodequeunargumentonoestédefinidotendráelvalor"undefined".

Funciones

129

Page 130: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

ÁmbitodelasvariablesConrespectoalámbitodelasvariablestenemosquetenerencuentalassiguientesconsideraciones:

Siunavariablesedefineconvardentrodeunafunciónelámbitodedichavariableserálocal.Siunavariablesedefinefueradeunafunciónsuámbitoseráglobal,yporlotantoseránaccesiblesdesdedentrodelasfunciones.Siunavariablesedefinedentrodeunafunciónperosinusarlapalabrareservadavarelámbitodedichavariableseráglobal.

Ejemplos:

varglobal1="VariableGlobal1";

functionmostrarMensaje(){

varlocal1="Variablelocal1";

global2="VariableGlobal2";

console.log(global1);//mostrará"VariableGlobal1"

}

mostrarMensaje();

console.log(local1);//error,noexistelavariable"local1"

console.log(global2);//mostrará"VariableGlobal2"

Funciones

130

Page 131: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

DOMElDocumentObjectModeloDOM('ModelodeObjetosdelDocumento'o'ModeloenObjetosparalaRepresentacióndeDocumentos')esesencialmenteunainterfazqueproporcionaunconjuntoestándardeobjetospararepresentardocumentosHTMLyXML,aportandounainterfazestándarparaaccederaellosymanipularlos.AtravésdelDOMsepuedenaccederymodificarelcontenido,estructurayestilodelosdocumentosHTMLyXML,yesparaloquesediseñóprincipalmente.

DOMtransformatodoslosdocumentosXHTMLenunconjuntodeelementosllamadosnodos,queestáninterconectadosyquerepresentanloscontenidosdelaspáginaswebylasrelacionesentreellos.Porsuaspecto,launióndetodoslosnodossellama"árboldenodos".

Porejemplo,lasiguientepáginaHTML:

<htmlxmlns="http://www.w3.org/1999/xhtml">

<head>

<metahttp-equiv="Content-Type"content="text/html;charset=iso-8859-1"/>

<title>Páginasencilla</title>

</head>

<body>

<p>Estapáginaes<strong>muysencilla</strong></p>

</body>

</html>

Setransformaríaenelsiguienteárboldenodos:

DOM

131

Page 132: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

UnavezconstruidoautomáticamenteelárbolcompletodenodosDOM,yaesposibleutilizarlasfuncionesDOMparaaccederdeformadirectaacualquiernododelárbol.Comoaccederaunnododelárbolesequivalenteaaccedera"untrozo"delapágina,porloqueesposiblemanipulardeformasencillalapágina:accederalvalordeunelemento,establecerelvalordeunelemento,moverunelementodelapágina,crearyañadirnuevoselementos,etc.

DOMproporcionadosmétodosalternativosparaaccederaunnodoespecífico:accesoatravésdesusnodospadreyaccesodirecto.

LasfuncionesqueproporcionaDOMparaaccederaunnodoatravésdesusnodospadreconsistenenaccederalnodoraízdelapáginaydespuésasusnodoshijosyalosnodoshijosdeesoshijosyasísucesivamentehastaelúltimonododelaramaterminadaporelnodobuscado.

Sinembargo,cuandosequiereaccederaunnodoespecífico,esmuchomásrápidoaccederdirectamenteaesenodoynollegaraéldescendiendoatravésdetodossusnodospadre.

AccesoanodosdelárbolDOM

getElementsByTagName()

ObtienetodosloselementosdelapáginaHTMLcuyaetiquetaseaigualqueelparámetroqueselepasaalafunción,porejemplo:

DOM

132

Page 133: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

varparrafos=document.getElementsByTagName("p");

Elvalorqueseindicadelantedelnombredelafunción(enestecasodocument,queseríalaraízdelárbolDOM)eselnodoapartirdelcualserealizalabúsquedadeloselementos.Enestecaso,comosequierenobtenertodoslospárrafosdelapágina,seutilizaelvalordocumentcomopuntodepartidadelabúsqueda.

Elvalorquedevuelvelafunciónesunarraycontodoslosnodosquecumplenlacondicióndequesuetiquetacoincideconelparámetroproporcionado.ElvalordevueltoesunarraydenodosdelDOM,nounarraydecadenasdetextoounarraydeobjetosnormales.

Deestemodo,sepuedeobtenerelprimerpárrafodelapáginadelasiguientemanera:

varprimerParrafo=parrafos[0];

Delamismaforma,sepodríanrecorrertodoslospárrafosdelapáginaconelsiguientecódigo:

for(vari=0;i<parrafos.length;i++){

varparrafo=parrafos[i];

}

LafuncióngetElementsByTagName()sepuedeaplicardeformarecursivasobrecadaunodelosnodosdevueltosporlafunción.Enelsiguienteejemplo,seobtienentodoslosenlacesdelprimerpárrafodelapágina:

varparrafos=document.getElementsByTagName("p");

varprimerParrafo=parrafos[0];

varenlaces=primerParrafo.getElementsByTagName("a");

getElementsByName()

Estafunciónessimilaralaanterior,peroenestecasosebuscanloselementoscuyoatributonameseaigualalparámetroproporcionado.Enelsiguienteejemplo,seobtienedirectamenteelúnicopárrafoconelnombreindicado:

varparrafoEspecial=document.getElementsByName("especial");

<pname="prueba">...</p>

<pname="especial">...</p>

<p>...</p>

DOM

133

Page 134: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

InternetExplorer6.0noimplementadeformacorrectaestafunción,yaquesólolatieneencuentaparaloselementosdetipo<input>y<img>.Además,tambiéntieneenconsideraciónloselementoscuyoatributoidseaigualalparámetrodelafunción.

getElementById()

Estaeslafunciónmásutilizadacuandosedesarrollanaplicacioneswebdinámicasyaquepermiteaccederdirectamenteaunnodoypoderleeromodificarsuspropiedades.

LafuncióngetElementById()devuelveelelementoHTMLcuyoatributoidcoincideconelparámetroindicadoenlafunción.Comoelatributoiddebeserúnicoentodalapágina,lafuncióndevuelveúnicamenteelnododeseado.

varcabecera=document.getElementById("cabecera");

<divid="cabecera">

<ahref="/"id="logo">...</a>

</div>

InternetExplorer6.0tambiéninterpretaincorrectamenteestafunción,yaquedevuelvetambiénaquelloselementoscuyoatributonamecoincidaconelparámetroproporcionadoalafunción.

CreaciónyeliminacióndenodosConJavaScripttambiénsepuedenañadiryeliminarelementosdinámicamentedelárbolDOM.ParaestoseutilizanlasfuncionescreateElement(etiqueta),createTextNode(text),appendChild(child)yremoveChild(child).

Dadoquesuusosequedafueradeloscontenidosdeestecurso,sisedeseaobtenermásinformaciónsepuedeconsultarlaweb:

http://www.w3schools.com/jsref/met_document_createelement.asphttp://www.w3schools.com/jsref/met_document_createtextnode.asphttp://www.w3schools.com/jsref/met_node_appendchild.asphttp://www.w3schools.com/dom/met_element_removechild.asp

AccesoaatributosdeunnodoUnavezquesehaaccedidoaunnodo,elsiguientepasonaturalconsisteenaccedery/omodificarsusatributosypropiedades.MedianteDOM,esposibleaccederdeformasencillaatodoslosatributosytodaslaspropiedadesCSSdecualquierelementodelapágina.

DOM

134

Page 135: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Losatributosdeloselementosdelapáginasetransformanautomáticamenteenpropiedadesdelosnodos.Paraaccederasuvalor,simplementeseindicaelnombredelatributodetrásdelnombredelnodo.

Elsiguienteejemploobtienedeformadirectaladirecciónalaqueenlazaelenlace:

//HTML

<aid="enlace"href="http://www.ua.es">UniversidaddeAlicante</a>

<imgid="imagen"style="margin:0;border:0;"src="logo.png"/>

<pid="parrafo"style="font-weight:bold;"class="destacado">Texto</p>

//JavaScript

varenlace=document.getElementById("enlace");

varimagen=document.getElementById("imagen");

varparrafo=document.getElementById("parrafo");

console.log(enlace.id);//muestra"enlace"

console.log(enlace.href);//muestra"http://www.ua.es"

console.log(enlace.innerHTML);//muestra"UniversidaddeAlicante"

console.log(imagen.id);//muestra"imagen"

console.log(imagen.src);//muestra"logo.png"

console.log(imagen.style.margin);//muestra"0px"

console.log(imagen.style.border);//muestra"0pxnone"

console.log(parrafo.id);//muestra"parrafo"

console.log(parrafo.innerHTML);//muestra"Texto"

console.log(parrafo.style.fontWeight);//muestra"bold"

console.log(parrafo.className);//muestra"destacado"

Esimportantedestacarquesielnombredeunapropiedadoestiloescompuesto,como"font-weight",quetieneunguión"-"enelmedio,paraaccederdichoguiónseeliminayademásseescribeenmayúsculaslaprimeraletraselasiguientepalabra,porejemplo:

font-weightsetransformaenfontWeightline-heightsetransformaenlineHeightborder-top-stylesetransformaenborderTopStylelist-style-imagesetransformaenlistStyleImage

TambiénesimportantedestacarquecomolapalabraclassestáreservadaporJavaScript,noesposibleutilizarlaparaaccederalatributoclassdelelementoXHTML.Ensulugar,DOMutilizaelnombreclassNameparaacceder.

DOM

135

Page 136: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EventosLoseventospermitenejecutaraccionescuandosucedeundeterminadoeventooserealizaunadeterminadaacciónsobreunelementoHTMLdenuestrapáginaWeb.LaformadedefinirlosessimilaralosatributosHTML(evento="acción"),dondelaacciónharáreferenciaaunafunciónométodoenlenguajeJavaScript:

<divonclick="CODIGO-JAVASCRIPT"></div>

Algunosdeloseventosquepodemosutilizarson:

onload:seactivacuandoelnavegadorterminadecargartodosloselementosdelapágina.

onunload:seactivaalcerrarunapágina.

onclick:cuandosepresionaelbotóndelratónsobreunelemento.

ondblclick:seactivaalhacerdobleclicsobreunelemento.

onmousedown:seactivaalpresionarelbotóndelratón(mientrasqueestápresionado).

onmouseup:cuandoelbotóndelratónesliberado.

onmouseover:sedisparacuandoelcursordelratónpasasobreunelemento.

onmousemove:cuandosemueveelcursordelratónmientrasestásobreunelemento.

onmouseout:seactivacuandoelcursordelratónsalefueradeunelemento(sobreelqueestaba).

onfocus:ocurrecuandounelementorecibeelenfoque(elcursordeescritura),yaseaconelpunterooconmediantelateclatabulador.

onblur:sedisparacuandounelementopierdeelenfoque(yaseaporhacerclicfueraoporpresionarlateclatabulador).

onkeypress:ocurrecuandosepresionaunatecla(dentrodeunelemento,porejemplouncampodeescritura).

onkeydown:sedisparacuandounateclaespresionada(dentrodeunelemento)

onkeyup:cuandounateclaessoltada.

Eventos

136

Page 137: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

onsubmit:seactivacuandounformularioesenviado.

onreset:ocurrecuandounformularioesreseteado.

onselect:cuandoelusuarioseleccionauntextoenuncampodetexto.

onchange:ocurrecuandouncontrolpierdeelenfoqueysuvalorhasidomodificadodesdequerecibióelenfoque.

Ejemplosdeuso:

<!--Doseventosenunamismaetiqueta...-->

<divonclick="alert('Hashechoclick');"onmouseover="alert('Acabasdepasarporencim

a');">

Puedespincharsobreesteelementoosimplementepasarelratónporencima

</div>

<!--Comprobarquelapáginasehacargado...-->

<bodyonload="alert('Lapáginasehacargadocompletamente');">

...

</body>

<!--Tambieńsepuedenllamarafuncionesdesdeloseventos...-->

<scripttype="text/javascript">

functionsaveText(){

//accionesJavaScript

}

</script>

<textareaid="myarea"cols="80"rows="15"onkeyup="saveText()"></textarea>

EventosylavariablethisJavaScriptdefineunavariableespecialllamadathisquesecreaautomáticamenteyqueseempleaenalgunastécnicasavanzadasdeprogramación.Enloseventos,sepuedeutilizarlavariablethisparareferirsealelementoquehaprovocadoelevento.

Estavariableesmuyútilparaejemploscomoelsiguiente:queremosquealpasarporencimadeun<div>elcolordelbordecambie,yalsalirdelcontenedorrestablezcaelcolorinicial.Sinousamoslavariablethiselcódigoseríaelsiguiente:

<divid="contenidos"style="width:150px;height:60px;border:thinsolidsilver"

onmouseover="document.getElementById('contenidos').style.borderColor='black';"

onmouseout="document.getElementById('contenidos').style.borderColor='silver';">

Seccióndecontenidos...

</div>

Eventos

137

Page 138: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Sinembargo,usandolavariablethisquedaríamuchomásclaro:

<divid="contenidos"style="width:150px;height:60px;border:thinsolidsilver"

onmouseover="this.style.borderColor='black';"

onmouseout="this.style.borderColor='silver';">

Seccióndecontenidos...

</div>

Siquisieramosllamaraunafunciónexterna,tambiénesposibleusarlavariablethisparapasarlecomoparámetroelelementosobreelcualsequiereactuar,porejemplo:

<script>

functionsetColor(element,color){

element.style.borderColor=color;

}

</script>

<divid="contenidos"style="width:150px;height:60px;border:thinsolidsilver"

onmouseover="setColor(this,'black');"onmouseout="setColor(this,'silver');">

Seccióndecontenidos...

</div>

Eventos

138

Page 139: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

DeteccióndeerroresconFirefoxyChromeFirefoxyChromeproporcionanherramientasparaayudaaldesarrolladorqueestánincluidaspordefectoyquesondegranutilidadalahoradedepurarydetectarerroresenunawebendesarrollo.

Paraabrirestasutilidadessepuedepulsarsobrelaopcióncorrespondientedelmenú(enlasección"Herramientas")odirectamentepulsandolatecladefunciónF12.

Laconsoladeerrorespermitediferenciarlosmensajesdeinformación,losmensajesdeavisoylosmensajesdeerror.Además,permitevisualizartodosloserroresdelapáginasimultáneamente.Porcadaerrordetectadoseindicalaposiblesoluciónmedianteunmensajeeninglésysemuestraeltrozodecódigodelscriptdondesehaproducidoelerror.Además,pulsandosobreelenlaceincluidoseaccedealalíneaconcretadelarchivoconcretodondesehaproducidoelerror.

Firefoxpermiteinstalarpequeñasmejorasyampliacionesenelnavegador,queseconocenconelnombredeextensiones.UnadelasextensionesmásinteresantesparalosdesarrolladoresdeaplicacioneswebesFirebug,quesepuededescargargratuitamentedesdehttp://www.getfirebug.com/

Deteccióndeerrores

139

Page 140: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

MásinformaciónParaobtenerunareferenciamuchomáscompletasobrelashojasdeestilopodemosconsultaralgunadelassiguientesWebs:

Referenciadetalladadetodoslosestilos:http://www.w3schools.com/cssref/default.aspEspecificaciones:http://www.w3.org/Style/CSS/Tutoriales:http://www.desarrolloweb.com/manuales/manual-css-hojas-de-estilo.html

SobreCSS3podemosobtenermásinformaciónen:

http://www.w3schools.com/css3/default.asphttp://www.w3.org/TR/2001/WD-css3-roadmap-20010523/

Además,existenalgunaspáginasWebqueproporcionan"generadoresdeestilosCSS"quenospuedenayudar,como:

http://css3generator.com/http://www.colorzilla.com/gradient-editor/

Másinformación

140

Page 141: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Ejercicios1-EjerciciossobreHTML,HTML5,CSSyCSS3EnestaprimerasesiónvamosarealizaralgunosejerciciosparapracticarconlasdistintasversionesdeHTML,HTML5,CSSyCSS3.Descargalaplantillaparalosejerciciosdelosmateriales.

Ejercicio1-EstructuraenHTML(0.6puntos)EnesteprimerejerciciovamosahacerunapequeñaWebdeejemploutilizandolasetiquetasDIVparaestructurarelcontenido.NuestraWebvaestardivididaencuatroapartados,cadaunotendráunidentificadorúnico:header,nav,content,footer.Elresultadofinaltendráquesersimilaraldelasiguienteimagen:

EnlapartesuperiorvamosacrearuncampoDIVconidentificador"header",enelqueincluiremosellogodelcurso(logo.jpg,conunaltode50px)yeltexto"PHDM"(colorblancocontamañode16puntos).Acontinuaciónincluiremoslabarradenavegación,otrocampoDIVconidentificador"nav".Dentrodeesteasuvezcrearemos3cajastioDIVconlaclase

Ejercicios1

141

Page 142: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

"navElement".Lascajastendránlostextos"Inicio","Contenidos"y"Profesorado".Comoestiloindicaremosquelaclase"navElement"tengaelcolordefondo"#f0f0f0"yquecambiealcolor"#005682"cuandoelratónpaseporencima.

LaseccióncentrallacrearemostambiénmedianteunaetiquetaDIVconelidentificador"content".Estaseccióncontendráunalistanoordenada(deltipoUL),elcontenidodeestalistalopodemosobtenerdelficheroconlaplantillaparaesteejercicio.

ElpiedepáginalocrearemostambiénutilizandounaetiquetaDIVconelidentificador"footer"yeltexto"Dept.CienciadelaComputacióneIA".Comoestiloleaplicaremoselcolordetextogris.

PorúltimotenemosqueterminardeajustarlosestilosCSSparaquelapáginaseveacorrectamente.Paraloselementos"header","nav","content"y"footer"definiremosunanchodel100%eindicaremosquenosepermitenelementosporsuladoizquierdo(esdecir,quedebendeestarenunanuevalínea,estoloharemosmedianteclear:left;).Paraelestilo"navElement"indicaremosquesetienequesituaracontinuacióndelanterior(enlamismalínea,estoloharemosmediantefloat:left;).

Ejercicio2-TerminandolaWebdeejemplo(0.6puntos)Enesteejerciciovamosaterminarlawebdelejercicio1,añadiéndoleelcontenidodelosenlacesquefaltan.Enprimerlugarcopiamoselficheroresultadodelejercicioanteriorylorenombramosa"ejercicio2.html".EnesteficherovamosamodificarlasopcionesdemenúparaañadirenlacesaInicio(unenlaceaestemismofichero),Contenidos(enlacea"ejercicio2_contenidos.html")yProfesorado(enlacea"ejercicio2_profesorado.html").

Alañadirestosenlacessemodificarásuapariencia,porloquetendremosquemodificarlahojadeestilo.Añadimosdosnuevosestilos".navElementa"paraindicarqueelcolordelosenlacesesnegroyquenosedibujelalíneadesubrayadodelenlace(text-decoration:none;).Yotroestilo".navElementa:hover"paraqueelenlacecambieacolorblancocuandoelratónpaseporencima.

Elsiguientepasoespasartodosestosestilosaunficheroindependiente,llamado"ejercicio2_css.css".Simplementetendremosquecrearesteficheroycortarypegarenéltodoslosestilosqueyatenemoscreados.EnelficheroprincipalHTMLtendremosquecargarestahojadeestilo,quedandosolounalínea(<linkhref="ejercicio2_css.css"rel="stylesheet"type="text/css"/>).

Ejercicios1

142

Page 143: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

AhoravamosacrearlosdosficherosHTMLquefaltan.ParaestorealizamosdoscopiasdelficheroHTMLprincipalylasrenombraremosa"ejercicio2_contenidos.html"y"ejercicio2_profesorado.html".Encadaunadeestascopiassolotendremosquecambiarelcontenidodelazonacentral.Paraelficherodecontenidosbuscaremoselíndicegeneraldecontenidosdelcursoyloañadiremosenunalistanonumerada(UL).Yparaelficherodeprofesoradoañadiremostambiénenunalistanonumeradalosnombresdelosprofesores.

Porúltimovamosahacerquealcambiardesecciónsequedemarcadoelenlacecorrespondiente.Estoloharemosañadiendolaclase"visited"soloalenlacedelasecciónactual,esdecir,encadapágina(inicio,contenidosoprofesorado),añadiremoslaclase"visited"soloalaopcióndelmenúqueestáabiertaenesemomento.

Nota:ParaañadirmásdeunclaseaunelementoHTMLlopodemoshacerseparandolasclasesconespacios,delaforma:<divclass="navElementvisited">.Finalmentedefinimoselestilo".visited"enlahojadeestiloconelcolordefondo"#005682"yelcolordetextoblanco.

Ejercicio3-EstructuradeHTML5(0.6puntos)EnesteejerciciovamosamodificarlawebquehemoshechoenelejercicioanteriorparaaplicarlelasnuevasetiquetassemánticasdeHTML5.Paraestoseguiremoslossiguientespasos:

Copiamoslosficherosdelejercicioanteriorylosrenombramospor"ejercicio3".CambiamosladireccióndelosenlacesylainclusióndelficheroCSSenlacabeceraparaqueapuntencorrectamentealosnuevosficheros.EncadaunodelosficherosHTMLcambiamoslasetiquetasDIVprincipales(conidentificadoresheader,nav,content,footer)ylassustituimosporlasetiquetassemánticasdeHTML5(header,nav,articleyfooter).ModificamoselficheroCSSparaaplicarlosestilossobrelasnuevasetiquetassemánticasdeHTML5(simplementetendremosquecambiarlosidentificadoresporlosnombresdeestasetiquetas,porejemplo:"#header"por"header").

Ejercicio4-Canvas(0.2puntos)ParapracticarconelelementoCanvasvamosadibujarunassencillasfigurasgeométricas.Enprimerlugar,enelcuerpodeldocumento,tenemosquecrearelcanvasconidentificador"myCanvas"ydimensionesde360x240.

Ejercicios1

143

Page 144: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EnelcódigoJavaScriptbtendremoslainstanciadelcanvasapartirdesuidentificador"myCanvas"yadquiriremossucontexto2D.Definiremosunestiloderellenoconcolor'#0000ff',uncolordeborde'#ff0000'yungrosordelíneade4píxeles.

Dibujamosunrectángulorellenoenlascoordenadas(0,0,150,50),yotrorectángulousandosoloelbordeenlascoordenadas(0,60,150,50).Porúltimodibujaremosuntriángulousandolaherramientatrazo(path).Iniciamoseltrazo(beginPath),definimoselprimerpuntoen(160,0)ylossiguientespuntosen(270,0),(160,110)y(160,0).Porúltimoindicamosquerellenelafigurayquecierreeltrazo.

Ejercicio5-Geolocalización(0.2puntos)Enesteejerciciosolotenemosqueañadirunalínea,yeselcomandonecesarioparaobtenerlaposiciónactual,alcuallepasaremoscomoparámetroelnombredelafunción"showPosition".Estafunciónserálaencargadademostrarnuestrascoordenadas(utilizandolaAPIdeGoogleMaps).

Nota:sinofuncionacorrectamenteesposiblequeseaporproblemasdepermisossiabrimoselficherohtmldirectamente.Parasolucionarlopodemoscolocarelejercicioenunservidorweblocalyaccederaélatravésdellocalhost.

Ejercicio6-AlmacenamientoOffline(0.3puntos)ParapracticarconlanuevafuncionalidaddealmacenamientoOfflinevamosahacerunpequeñoejemploqueguardedeformaautomáticaunanota.Siabrimoslaplantillacorrespondientesolotenemosquedefinirlasfuncionesdecargar,guardaryborrarlanota.Paraestoutilizaremoselalmacenamientoenlocal(localStorage)yelidentificador'savedNote',yparaelborradoeliminaremostodoelcontenidodirectamente(clear).AdemásenlaseccióndeestiloCSSindicaremosparael"contenedor-nota"queutilicelaimagendefondo"imgs/stickynote.jpg".

Nota:sinofuncionacorrectamenteesposiblequeseaporproblemasdepermisossiabrimoselficherohtmldirectamente.Parasolucionarlopodemoscolocarelejercicioenunservidorweblocalyaccederaélatravésdellocalhost.

Ejercicio7-CSS3(0.5puntos)

Ejercicios1

144

Page 145: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

EnesteejerciciovamosaprobaralgunasdelasfuncionalidadesnuevasdeCSS3.Paratodoslosejemplosrecuerdaindicarlosnombresdelaspropiedadesusandotambiénlosnombresnativosdelosnavegadoresconlosprefijos-webkit-,-moz-y-o-.

Enelprimerejemplo"borderRadius"vamosaindicarqueelcuadrotengabordesredondeadosconunradiode30píxeles.

Enelsegundoejemplo(borderShadow)crearemosunasombraparaelborde,conlossiguientesatributos:distanciahorizontaldelasombrade5px,distanciaverticaldelasombra5px,desenfoquede6pxycolordelasombragrisáceo(#888888).

Eneltercerejemplo(textShadow)vamosacrearunasombraparaeltextode2pxparasusdistanciashorizontalyvertical,de2píxelesparaeldesenfoquey"#9e9e9e"comocolordesombra.

Enelcuartoejemplo(multiColumn)vamosaprobarlafuncionalidaddecolumnas.Aquísolotendremosqueindicarqueelnúmerodecolumnasesde2yqueelespacioentrelascolumnasesde15px.

Enelúltimoejemplo(boxTransition)vamosacrearunefectodetransición.Usandolapropiedad"transition"(paraestablecertodoslosvaloresenunasolalínea),indicaremosquevamosarealizarlatransiciónsobre"margin-left",conunaduraciónde3s,yusandolafuncióndetiempo"ease-in-out".

Ejercicios1

145

Page 146: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Ejercicios2-EjerciciossobreJavaScript

Ejercicio1-Calculadorasencilla(1punto)Parapracticarconjavascriptvamosacrearunacalculadorasencillacomolaquesemuestraenelsiguienteesquema:

Paraellosseguiremoslospasos:

EnprimerlugarescribiremoselcódigoHTMLparadiseñarunacalculadoracomolaquesemuestraenelesquemadelaimagen.Esimportantequeasignemosunidentificadorúnicoaloscampostipo"input"deentradadedatosyalcampoenelquesemostraráelresultado(paraestecampopodemosasignarunidentificadoraunaetiquetaspanvacía).Crearemosunafunciónparacadaoperaciónquesellamaráenelevento"onclick"decadabotón.Lasfuncionesdebencomprobarquesehayaescritoalgúnvalorenloscamposyencasodeerrormostrarunaviso.Además,enlafuncióndedivisiónsedeberádecomprobarqueelresultadoseacorrecto(finito)yencasodeerrorsemostarátambiénunmensaje.

Paraobteneroasignarvaloraloscampostipoinputusaremossupropiedad.value,mientrarqueparaasignarunvaloraotrotipodeelementosHTML(comopárrafos(p),cajas(div),span,etc.)utilizaremossupropiedad.innerHTML.

Alobtenerelvalordeuninputseobtienecontipocadena,pararealizarlasoperacionescorrectamentetendréisqueconvertirloadecimalmediantelafunciónparseFloat(valor).

Ejercicio2-Calculadoraavanzada(1punto)

Ejercicios2

146

Page 147: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Enesteejerciciovamosacrearunacalculadoraunpocomásavanzadaqueladelejercicioanterior.EnprimerlugarescribiremoselcódigoHTMLparacrearunacalculadoraconundiseñosimilaraldelasiguientefigura:

NospodemosayudardeunatabladeHTMLparaladisposicióndeloselementos.LapantalladelacalculadoraseráuncampoDIValcualasignaremosvaloresmediantelafunción.innerHTML.

ElcódigoJavaScriptconstaráde3funciones:

Unafunción"limpiar()"quesellamaráalpulsarlatecla"C"yqueborraráelcontenidodelapantalla.Unafunción"setValue(valor)"queañadiráelvalorpasadoporparámetroalcontenidoyaexistenteenlapantalla.Estafunciónseutilizarátantoparaañadirnúmeros(setValue(2))comoparaañadirlasoperaciones(setValue('+'))yelseparadordecimal(setValue('.')).Unafunción"calcular()"quecalcularálaoperaciónintroducidaenlapantallaymostraráelresultadodelamisma.Pararealizarloscálculosharemosusodelafuncióndejavascripteval,lacualevalualaexpresiónquerecibeporparámetroydevuelveelresultado.Además,dadoquelaexpresiónpuedecontenererroresesnecesariointroducirlaenunbloquetry...catchcomoelsiguiente:

try{

pantalla.innerHTML=eval(expr);

}catch(e){

//error

}

Notas:

Esnecesariocontrolarlossiguienteserrores:Cuandosellamea"calcular()"ynohayanadaintroducidoenlapantalla.

Ejercicios2

147

Page 148: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Siseproduceunaexcepciónalevaluarlaexpresión.Sielresultadodelaoperaciónnoesunnúmeroonoesfinito.

Encasodeerrorsemostraráelaviso"ERROR"porlapantalla.Despuésdeunerror,sisepulsalimpiaroseintroduceunvalorseborraráelaviso.

Ejercicio3-Validacióndeunformulario(1punto)Enesteúltimoejerciciovamosacrearunformularioparaelaccesoalasecciónprivadadeunawebmedianteusuarioycontraseña,estonosvaldráparapracticarconlafuncionalidaddejavascriptvalidandosuscampos.

EnprimerlugarcrearemoselHTMLdelformulariodelogin,elcualdeberásersimilaraldelasiguienteimagen:

Elfondodelawebtendráelcolor"gray".Lacajacontenedoratendráunanchode400pxyestarácentradaenlapantalla.Sucolordefondoserá#cccytendráunborderde2pxdecolorsilver.Ademástendráunespaciadointeriorde30px.Setendráqueadaptartambiénelrestodeelementosparaquesemuestrenconunaspectoydisposiciónsimilaraldelafigura.

SeaconsejacrearunaseccióndeestilosCSSparaagruparlosestilosdelformulario.

AcontinuacióncrearemosunafuncióndeJavaScriptpararealizarlavalidacióndelformulario,lacualmostaráloserroresquehubieraoindicaráquesehavalidadocorrectamente.ParaincluirlosmensajesdeerrorsepuedenincluirdirectamenteenelHTMLinicialdelformulario,perosemarcaráncomoocultosusandolapropiedadCSS:display:noneycuandosequierdanmostrarsecambiaráadisplay:block.

Ejercicios2

148

Page 149: Table of Contentseduteka.icesi.edu.co/gp/upload/1538608962_web-47.pdf · Estilos CSS básicos Pseudo-clases Capas Ejemplo Introducción a HTML 5 Navegadores que lo soportan Doctype

Nota:paracambiarelestilodeuncampoenJavaScriptsepuedehaceraccediendoasupropiedadstyledelaforma:campo.style.display='block';

Alpulsarsobreelbotón"Entrar"sellamaráaunafunción"validar()"querealizarálassiguientesacciones:

Sialgunodeloscamposestávacíomostraráunmensajedeerrorindicándolo.Sielcamponoestávacíoperolalongitudesinferiora3caracterestambiénsemostaráunerrorindicándolo(verlaimageninferior).Sinoseproduceningúnerrorapareceráelaviso:"¡Validacióncorrecta!

Notas:

Sisepulsavariasveceselbotón"Entrar"hayqueactualizarloserrores:siunerroranterioryanoseproduceelavisotendráquedesaparecer.Solosepodrámostrarunmensajedeerrorporcadacampo:camporequeridoolongitudmínimaincorrecta.

Ejercicios2

149