Descarga la aplicación para disfrutar aún más
Esta es una vista previa del archivo. Inicie sesión para ver el archivo original
apuntesAplicacionesWeb/AW_Tema1 2.2.pdf Índice: Tema 2.4 (Parte 2) 2.4 Hojas de estilo en cascada CSS 2.4.1 El lenguaje XHTML 2.4.2 Hojas de estilo CSS 2.4.3 Reglas de estilo 2 4 4 El d l d j2.4.4 El modelo de cajas 2.4.5 Propiedades de los elementos básicos Índice: Tema 2.4 (Parte 2) 2.4 Hojas de estilo en cascada CSS 2.4.1 El lenguaje XHTML 2.4.2 Hojas de estilo CSS 2.4.3 Reglas de estilo 2 4 4 El d l d j2.4.4 El modelo de cajas 2.4.5 Propiedades de los elementos básicos 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS El modelo de cajas El modelo de cajas o box model es seguramente la característica más importante del lenguaje de hojas de estilos CSS, ya que condiciona el diseño de todas las páginas web. El box model es la característica que hace que todos los elementos incluidos en una página HTML se representen mediante cajas rectangulares cuyo aspecto se d l é d CSSpuede controlar a través de CSS. El diseño de cualquier página XHTML está compuesto por cajas rectangulares. CSS i d fi i l l h d d j l i jpermite definir la altura y anchura de cada caja, el margen existente entre cajas y el espacio de relleno interior que muestra cada caja. d á l l f l l l Además, CSS permite controlar la forma en la que se visualizan las cajas: se pueden ocultar, desplazar respecto de su posición original y fijarlas en una posición específica dentro del documento. 3APLICACIONES WEB posición específica dentro del documento. TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Elementos del modelo de cajas Las cajas de una página se crean automáticamente. Cada vez que se inserta una etiqueta o elemento en la página, se crea una nueva caja rectangular que encierra los contenidos del elemento. El siguiente esquema muestra la creación automática de cajas: 4APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina crea varias caja Mario99 Texto escrito a máquina 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades (1) A continuación se muestran las propiedades que controlan cada uno de los elementos de la caja relacionados con sus dimensiones: • Anchura: width: 200px • Altura: height: 60px • Margen superior: margin-top: 2em • Margen derecho: margin-right: 2em • Margen inferior: margin-bottom: 2em M i i d i l ft 2• Margen izquierdo: margin-left: 2em • Margen en general: margin: sup der inf izq (notación {1,4}) Tomando como referencia el margen (margin), se pueden definir propiedades similares para el relleno (padding), la anchura (border-*-width), el estilo (border-*-style) y el color (border-*-color) de los bordes 5APLICACIONES WEB (border style) y el color (border color) de los bordes. TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades (2) La anchura y altura de la caja de un elemento no solamente se calculan teniendo en cuenta sus propiedades width y height. El margen, el relleno y los bordes establecidos a un elemento determinan la anchura y altura final del elemento. En el siguiente ejemplo se muestran los estilos CSS de un elemento <p> cuya anchura de caja en pantalla sería de 480: p { width: 300px; padding-left: 50px; padding-right: 50px; margin-left: 30px; <p>...</p> margin-right: 30px; border: 10px solid black; } 6APLICACIONES WEB } TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades (3) El fondo puede ser un color simple o una imagen. El fondo solamente se visualiza en el área ocupada por el contenido y su relleno (padding), ya que el color de los bordes se controla directamente desde los bordes y las zonas de los márgenes i t tsiempre son transparentes. CSS define cinco propiedades para establecer el fondo de cada elemento: • Color de fondo: background-color: blue • Imagen de fondo (idf): background-image: url(images/fondo.gif)g ( ) g g ( g / g ) • Repetición de la idf: background-repeat: repeat (-x, -y, no-) • Posición de la idf: background-position: left,top,… ó {x% y%} • Comportamiento de la idf: background-attachment: scroll ó fixed • Fondo en general: background: blue url() repeat-x fixed 7APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina sube y baja 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.4 EL MODELO DE CAJAS EJERCICIO 39 Propiedades (4) Utilizar las propiedades básicas de las cajas para dar formato a la siguiente web: 8APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (1) El estándar de CSS define cinco modelos diferentes para posicionar una caja mediante el atributo position: • static: Este es el modo de posicionamiento normal (por defecto). • relative: La caja se coloca con el posicionamiento normal, pero se desplaza según los atributos left, right, top, bottom. • absolute: La caja se coloca de manera absoluta con respecto a la caja que la contiene según los atributos left, right, top, bottom. • fixed: Es un tipo de posicionamiento absoluto, pero que convierte la caja en un elemento inamovible. • float: Se trata del modelo más especial de posicionamiento, ya que desplaza las cajas todo lo posible hacia la izquierda o hacia la derecha de la línea en la que se encuentran. 9APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (2) El static o posicionamiento normal es el modelo que utilizan por defecto los navegadores para mostrar los elementos de las páginas. • Las cajas de los elementos de bloque se muestran una tras otra verticalmente comenzando en la parte superior del bloque contenedor y siguiendo el orden en el que aparecen los elementos correspondientes en el documento. • Las cajas de los elementos de línea se muestran una detrás de otra de forma horizontal comenzando desde la posición más a la izquierda de su elemento contenedor. 10APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (3) El relative o posicionamiento relativo permite desplazar una caja respecto de su posición original establecida mediante el posicionamiento normal. • Una vez establecido position: relative, la propiedad left desplaza la caja hacia su derecha de acuerdo al valor establecido, la propiedad right la desplaza hacia su izquierda, la posición top desplaza la caja de forma descendente y la propiedad bottom desplaza la caja de forma ascendente. Además, los valores negativos tienen el efecto p j , g inverso, es decir left=-right y top=-bottom. • En el posicionamiento relativo, el resto de cajas no modifican su posición original. 11APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (4) El absolute o posicionamiento absoluto se emplea para establecer de forma precisa la posición en la que se muestra la caja de un elemento. Tiene dos diferencias respecto al relativo: • La caja se coloca de manera absoluta con respecto a la caja que la contiene. Por tanto los atributos para posicionarla dependen ahora de la posición de su elemento contenedor. • Cuando se posiciona una caja de forma absoluta, el resto de elementos ignoran que esa caja exista. Por este motivo, en el siguiente ejemplo, la caja 3 deja su lugar original y pasa a ocupar el hueco dejado por la caja 2. 12APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (5) El estándar CSS considera que el fixed o posicionamiento fijo es un caso particular del posicionamiento absoluto, ya que sólo se diferencian en el comportamiento de las cajas posicionadas. La principal característica de una caja posicionada de forma fija es que su posición es inamovible dentro de la ventana del navegador. El posicionamiento fijo hace l j difi i ió i l i b b j l á ique las cajas no modifiquen su posición ni aunque el usuario suba o baje la página en la ventana de su navegador. Si l á i i li di i d ( j l i ) l Si la página se visualiza en un medio paginado (por ejemplo en una impresora) las cajas posicionadas de forma fija se repiten en todas las páginas. Así, esta característica puede ser útil para crear encabezados o pies de página en páginascaracterística puede ser útil para crear encabezados o pies de página en páginas HTML preparadas para imprimir. 13APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (6) El float o posicionamiento flotante es el más difícil de comprender pero al mismo tiempo es el más utilizado. Como se verá más adelante, la mayoría de estructuras de las páginas web complejas están diseñadas con el posicionamiento fl t t C d j i i fl t tflotante. Cuando una caja se posiciona como flotante: • Se desplaza hasta la zona más a la izquierda (con float:left) o más a la derecha (con float:right) de la posición en la que originalmente se encontrabafloat:right) de la posición en la que originalmente se encontraba. • Deja de pertenecer al flujo normal de la página, lo que significa que el resto de cajas ocupan el lugar dejado por la caja flotante.p g j p j 14APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (7) Si existen otras cajas flotantes, al posicionar de forma flotante otra caja, se tiene en cuenta el sitio disponible. En el siguiente ejemplo se posicionan de forma flotante hacia la izquierda las tres cajas: • Como la caja 1 ya estaba posicionada lo más a la izquierda posible, la caja 2 sólo puede colocarse al lado del borde derecho de la caja 1, que es el sitio más a la izquierda posible respecto de la zona en la que se encontrabarespecto de la zona en la que se encontraba. • Si no existe sitio en la línea actual, la caja flotante baja a la línea inferior hasta que encuentra el sitio necesario para mostrarse lo más a la izquierda o lo más a la derecha posible en esa nueva línea. 15APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina Div etiqueta que sirve para acer una caja a p img title form tiene su propia ca Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina spam format a element a nivel de linea Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina <spam class="mi esti "> Mario99 Texto escrito a máquina Arial aaa <spam> aoa norma </p> Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina css <style> .mi esti { color : red } Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina movemes div : mueve td MMMM Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina a tdas Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina clear left para pner una caja que no siga Mario99 Texto escrito a máquina 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (8) Uno de los principales motivos para la creación del posicionamiento flotante fue la posibilidad de colocar imágenes alrededor de las cuales fluye el texto. Así: • Los elementos que se encuentran alrededor de una caja flotante adaptan sus contenidos para que fluyan alrededor del elemento posicionado. • Si se desea que el contenido de algún elemento no fluya alrededor de una caja flotante, debe utilizarse la propiedad clear que permite modificar el comportamiento por defecto del posicionamiento flotante para forzar a que el elemento correspondiente se muestre bajo la caja flotante: 16APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.4 EL MODELO DE CAJAS EJERCICIO 40 Posicionamiento de las cajas (9) Utilizar la propiedad float de las cajas para dar formato a la siguiente web: 17APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina con float y clear 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Posicionamiento de las cajas (10) • Con clear:left la caja se posiciona debajo de cualquier caja que flote a la izquierda que aparezca antes en el documento. • Con clear:right la caja se posiciona debajo de cualquier caja que flote a la derecha l dque aparezca antes en el documento. • Con clear:both la caja se posiciona debajo de cualquier caja que flote que aparezca antes en el documentoantes en el documento. • Como se verá más adelante, la propiedad clear es imprescindible cuando se crean las estructuras de las páginas web complejas.p g p j #contenedor { border: 1px solid #CCC; background-color: #E0E0E0; padding: .5em; } .anterior{ float: left; } .siguiente{ float: right; } 18APLICACIONES WEB .debajo{ clear: both; } TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.4 EL MODELO DE CAJAS EJERCICIO 41 Posicionamiento de las cajas (11) Utilizar la propiedad clear de las cajas para dar formato a la siguiente web: 19APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Visualización (1) Además de las propiedades que controlan el posicionamiento de los elementos, CSS define otras cuatro propiedades para controlar su visualización: display, visibility, overflow y z-index. La propiedad displaymodifica la forma en la que se visualiza un elemento. • El valor blockmuestra un elemento como si fuera de bloque, y el valor inline visualiza un elemento en forma de elemento en línea, independientemente del tipo de elemento que se trate. 20APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Visualización (2) • El valor none oculta un elemento y hace que desaparezca de la página. El resto de elementos de la página se visualizan como si no existiera el elemento oculto, es decir, pueden ocupar el espacio en el que se debería visualizar el elemento. Por otra parte, la propiedad visibility permite hacer invisible un elemento, lo que significa que el navegador crea la caja del elemento pero no la muestra. En este caso, el resto de elementos de la página no modifican su posición, ya queeste caso, el resto de elementos de la página no modifican su posición, ya que aunque la caja no se ve, sigue ocupando sitio. 21APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Visualización (3) CSS define la propiedad overflow para controlar la forma en la que se visualizan los contenidos que sobresalen de sus elementos. • visible: el contenido no se corta y se muestra sobresaliendo la zona reservada para visualizar el elemento. Este es el comportamiento por defecto. • hidden: el contenido sobrante se oculta y sólo se visualiza la parte del contenido que cabe dentro de la zona reservada para el elemento. • scroll: solamente se visualiza el contenido que cabe dentro de la zona reservada para el elementocabe dentro de la zona reservada para el elemento, pero también se muestran barras de scroll que permiten visualizar el resto del contenido. • auto: el comportamiento depende del navegador, aunque normalmente es el mismo que la propiedad scroll 22APLICACIONES WEB scroll. TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Visualización (4) Además de posicionar una caja de forma horizontal y vertical, CSS permite controlar la posición tridimensional de las cajas posicionadas. De esta forma, es posible indicar las cajas que se muestran delante o detrás de otras cajas cuando se d l i tproducen solapamientos. La posición tridimensional de un elemento se establece sobre un tercer eje ll d “Z” l di l i d d U ili dllamado “Z” y se controla mediante la propiedad z-index. Utilizando esta propiedad es posible crear páginas complejas con varios niveles o capas. C á l l l é i á d l i l j Cuanto más alto sea el valor numérico, más cerca del usuario se muestra la caja. La propiedad z-index sólo tiene efecto en los l d l blelementos posicionados, por lo que es obligatorio que la propiedad z-index vaya acompañada de la propiedad position. 23APLICACIONES WEB propiedad position. TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.4 EL MODELO DE CAJAS EJERCICIO 42 Visualización (5) Utilizar la propiedad z-index de las cajas para dar formato a la siguiente web: 24APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Diseño de Layouts (1) El diseño de las páginas web habituales se divide en bloques: cabecera, menú, contenidos y pie de página. Visualmente, los bloques se disponen en varias filas y columnas. Por este motivo, hace varios años la estructura de las páginas HTML se definía mediante tablas o marcos. El desarrollo de CSS ha permitido que se puedan realizar los mismos diseños sin utilizar tablas HTML. Las principales ventajas de diseñar la estructura de las á i b CSS d bl l i i lpáginas web con CSS en vez de con tablas HTML son el mantenimiento, la accesibilidad, la velocidad de carga y la semántica. l b d bl h d d l Por estos motivos, la estructura basada en tablas ha dado paso a la estructura basada exclusivamente en CSS. Aunque crear la estructura de las páginas sólo con CSS presenta en ocasiones retos importantes, en general es más sencilla y flexible. 25APLICACIONES WEB CSS presenta en ocasiones retos importantes, en general es más sencilla y flexible. TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Diseño de Layouts (2): Centrado horizontal El centrado horizontal del diseño de una web se suele utilizar para evitar las situaciones siguientes: • Con resoluciones superiores a 1024 x 768 píxel, las líneas de texto son demasiado largas como para leerlas con comodidad. • Aunque se opte por un diseño de anchura fija, los navegadores alinean por defecto las páginas web a la izquierda de la ventana, provocando una sensación de vacío a la derecha. #contenedor { width: 300px; (ó 70%)p ; ( ) margin: 0 auto 0 auto; } <body>y <div id="contenedor"> <h1>Lorem ipsum...</h1> <p>Lorem ...</p> </div> 26APLICACIONES WEB /d </body> TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Diseño de Layouts (3): Centrado vertical El centrado vertical del diseño de una web no suele utilizarse dado que el contenido de una web suele ser mayor que la altura del navegador: • A continuación se muestra la forma de centrar una página web respecto de la ventana del navegador, es decir, centrarla tanto horizontalmente como verticalmente. #contenedor {#contenedor { width: 300px; height: 200px; position: absolute; top: 50%; left: 50%; margin-left: -150px; margin-top: -100px; } 27APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.4 EL MODELO DE CAJAS EJERCICIO 43 Diseño de Layouts (4): Ejemplo de centrado Utilizar las propiedades de centrado para dar formato a la siguiente web: 28APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Diseño de Layouts (5): Diseño a dos columnas El objetivo de este diseño es definir una estructura de página con cabecera y pie, un menú lateral de navegación y una zona de contenidos. La anchura de la página se fija en 700px, la del menú en 150px y la de los contenidos en 550px: • La solución CSS se basa en el uso de la propiedad float para los elementos posicionados como el menú y los contenidos, y el uso de la propiedad clear en el pie de página para evitar los solapamientos ocasionados por los elementos posicionados con floatevitar los solapamientos ocasionados por los elementos posicionados con float. 29APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.4 EL MODELO DE CAJAS 2.4 HOJAS DE ESTILO EN CASCADA CSS Diseño de Layouts (6): Diseño a tres columnas Además del diseño a dos columnas, el diseño más utilizado es el de tres columnas con cabecera y pie de página. • En este caso, los contenidos se dividen en dos zonas diferenciadas: zona principal de contenidos y zona lateral de contenidos auxiliares. • La solución CSS emplea la misma estrategia del diseño a dos columnas y se basa en utilizar las propiedades float y clear. 30APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.4 EL MODELO DE CAJAS EJERCICIO 44 Diseño de Layouts (7): Diseño a tres columnas Generar un diseño a tres columnas similar al siguiente: 31APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO Índice: Tema 2.4 (Parte 2) 2.4 Hojas de estilo en cascada CSS 2.4.1 El lenguaje XHTML 2.4.2 Hojas de estilo CSS 2.4.3 Reglas de estilo 2 4 4 El d l d j2.4.4 El modelo de cajas 2.4.5 Propiedades de los elementos básicos 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de texto (1) CSS define numerosas propiedades para modificar la apariencia del texto: • Color: color: blue • Tipo de letra: font-family: Arial • Tamaño de letra: font-size: 12ptp • Anchura de letra: font-weight: bold • Estilo de letra: font-style: italic • Estilo alternativo de letra: font-variant: small-caps • Todas las propiedades: font: blue, Arial, 12pt, etc... • Alineado de texto: text-align: left • Interlineado: line-height: 6pt • Decoración de texto: text-decoration: underline • Transformación de texto: text-transform: uppercase • Alineación vertical: vertical-aling: top • Tabulación de texto: text-indent: 12pt • Espaciado entre letras: letter-spacing: normal • Espaciado entre palabras: word-spacing: inherit 33APLICACIONES WEB • Uso de espacios en blanco: white-spacing: nowrap TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS EJERCICIO 45 Propiedades de texto (2) Utilizar las propiedades de texto para generar las reglas con las que dar formato a los siguientes párrafos: 34APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS Propiedades de enlaces (1) Los estilos más sencillos que se pueden aplicar a los enlaces son los que modifican su tamaño de letra, su color y la decoración del texto del enlace. Así, se tienen por ejemplo las siguientes propiedades para modificar el estilo original de los enlaces: • Utilizando la propiedad border-bottom es posible añadir cualquier tipo de subrayado para los enlaces de las páginas. • Utilizando la propiedad background se puede incluir un pequeño icono al lado de un enlace para indicar el tipo de contenido que enlaza. L i d d d fi id CSS it t l l l t d• Las propiedades definidas por CSS permiten mostrar los enlaces con el aspecto de un botón, lo que puede ser útil en formularios en los que no se utilizan elementos específicos para crear botones. • CSS también permite aplicar diferentes estilos a un mismo enlace en función de su estado mediante el uso de pseudo-clases (botón activado o no). 35APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS EJERCICIO 46 Propiedades de enlaces (2) Utilizar las propiedades de los enlaces para generar las reglas con las que dar formato a los siguientes enlaces: 36APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de imágenes (1) CSS y CSS3 contemplan diversas propiedades que pueden ayudar a mejorar el aspecto de las imágenes originales. Así, se tienen por ejemplo las siguientes: • Las dimensiones de la imagen en pantalla se pueden modificar a través de su altura y anchura: img { width: 100px; } • Se pueden aplicar las propiedades de los bordes para poner las esquinas redondeadas: img { border-radius: 25px; } • El nivel de transparencia de una imagen se puede controlar a través de la opacidad:• El nivel de transparencia de una imagen se puede controlar a través de la opacidad: img { opacity: 0.5; } • La propiedad box-shadow de CSS3 permite añadir un efecto de sombra sobre una a p op edad bo s ado de CSS3 pe te a ad u e ecto de so b a sob e u a imagen: img { border-radius: 10px 20px 5px red; } 37APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS EJERCICIO 47 Propiedades de imágenes (2) Utilizar las propiedades de imágenes para generar las reglas con las que dar formato a la siguiente web: Original width border shadowopacity 38APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de listas (1) CSS define numerosas propiedades para modificar la apariencia de las listas: • Tipo de viñeta: list-style-type: disc • Posición de la viñeta: list-style-position: inside • Imagen de la viñeta: list-style-image: <url> • Estilo global de la lista: list-style: disc, inside, <url> Las listas HTML se suelen emplear, además de para su función natural, para la creación de menús de navegación verticales y horizontales. Para verlo, supóngase la siguiente lista: <ul> <li><a href="#">Elemento 1</a></li><li><a href= # >Elemento 1</a></li> <li><a href="#">Elemento 2</a></li> <li><a href="#">Elemento 3</a></li> <li><a href="#">Elemento 4</a></li> 39APLICACIONES WEB </ul> TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de listas (2) El proceso de transformación de la lista en un menú vertical requiere de los siguientes pasos: • Definir la anchura del menú. • Eliminar las viñetas automáticas y todos los márgenes y espaciados aplicados por defecto. • Añadir un borde al menú de navegación y establecer el color de fondo y los bordes de cada elemento del menú. • Aplicar estilos a los enlaces mostrándolos como un elemento de bloque para que ocupen todo el espacio de cada <li> del menú añadir un espacio de relleno y modificar los colorestodo el espacio de cada <li> del menú, añadir un espacio de relleno y modificar los colores y la decoración por defecto. Los tipos de menús verticales que se pueden definir mediante las propiedades CSS Los tipos de menús verticales que se pueden definir mediante las propiedades CSS son innumerables, como se puede observar en la página: • http://www exploding‐boy com/images/EBmenus/menus html 40APLICACIONES WEB • http://www.exploding‐boy.com/images/EBmenus/menus.html TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de listas (3) A partir de un menú vertical sencillo, es posible crear un menú horizontal sencillo aplicando las propiedades CSS conocidas hasta el momento. El proceso de transformación del menú vertical en un menú horizontal consta de los siguientes pasos: • Eliminar la anchura y el borde de <ul> y aplicar las propiedades float y clear. • Establecer el valor de la propiedad float de los <li> del menú a left. • Modificar el padding y los bordes de los enlaces que forman el menú. • Añadir un borde izquierdo en el elemento <ul> para homogeneizar el aspecto de los elementos del menú. Algunos ejemplos de menús horizontales pueden encontrarse en la página: • http://exploding‐boy.com/images/cssmenus/menus.html 41APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS EJERCICIO 48 Propiedades de listas (4) Probar los estilos de las páginas sugeridas para generar diferentes menús verticales y horizontales: 42APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS Propiedades de listas (5): Menús avanzados http://alvit.de/css‐showcase/css‐navigation‐techniques‐showcase.php 43APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de tablas (1) Cuando se aplican bordes a las celdas de una tabla, el aspecto por defecto con el que se muestra en un navegador es el siguiente: El estándar CSS define dos modelos diferentes para el tratamiento de los bordes de las celdas: • Fusión de bordes: border-collapse: collapse E i d b d• Espaciado entre bordes: border-spacing: 10px 44APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de tablas (2) CSS define otras propiedades específicas para el control del aspecto de las tablas: • Una de ellas es el tratamiento que reciben las celdas vacías de una tabla, que se controla mediante la propiedad empty-cells (show, hide). Esta propiedad sólo se aplica d l d l d b d d l bl ( ) dcuando el modelo de bordes de la tabla (border-collapse) es de tipo separate. • Se puede establecer un título para la tabla usando el elemento <caption> dentro de <table> La propiedad caption-side (top bottom) permite controlar la posición<table>. La propiedad caption side (top, bottom) permite controlar la posición del título de la tabla (que por defecto se muestra encima de la tabla). .tabla { width: 250px; border: 1px solid #000; border-collapse: separate; empty-cells: hide; caption-side: bottom; } .tabla th, .tabla td { border: 1px solid #000; 45APLICACIONES WEB border: 1px solid #000; } TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS EJERCICIO 49 Propiedades de tablas (3) Las pseudo‐clases también funcionan con los elementos <tr> de las tablas. Por ejemplo, se puede utilizar dicha pseudo‐clase como selector de las filas, para que estas cambien de color al pasar el ratón por encima: 46APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de formularios (1) Así como el estilo por defecto de los enlaces se puede modificar para que se muestren como botones de formulario, los botones de formulario también se pueden modificar para que parezcan enlaces. .enlace { border: 0; padding: 0; background-color: transparent; color: blue; border-bottom: 1px solid blue; } <input type="button" value="Boton normal" /> <input class="enlace" type="button" value="Boton como enlace" /> Añadiendo un pequeño padding a cada elemento <input>, se mejora notablemente el aspecto del formulario. 47APLICACIONES WEB p TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de formularios (2) Utilizando la propiedad display se pueden convertir los elementos de línea en elementos de bloque para conseguir el siguiente aspecto sin insertar <br>: .btn, label { display: block;display: block; margin: 1em 0 0 0; } <label for="nombre">Nombre</label> <input type="text" id="nombre" /> ... 48APLICACIONES WEB <input class="btn" type="submit" value="Darme de alta" /> TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de formularios (3) Insertando cada pareja <label>-<input> dentro de un <div> se pueden alinear las etiqueta con los campos del formulario: div {div { margin: 0.4em; } di l b l {div label { float: left; width: 25%; } 49APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS 2.4 HOJAS DE ESTILO EN CASCADA CSS Propiedades de formularios (4) Haciendo flotantes las cajas de los <fieldset> de los formularios pueden conseguirse diseños a dos (o más) columnas para simplificar la visualización de formularios complejos con decenas de opciones que pueden agruparse: form fieldset { float: left; width: 48%; } <form>o <fieldset> ... Finalmente, la pseudo‐clase :focus puede utilizarse como selector en un input lt l d f l i d l i ti l l t 50APLICACIONES WEB para resaltar el campo de un formulario cuando el usuario activa el elemento. TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO 2.4 HOJAS DE ESTILO EN CASCADA CSS 2.4.5 PROPIEDADES DE LOS ELEMENTOS BÁSICOS EJERCICIO 50 Propiedades de formularios (5) Utilizar las propiedades de los formularios para generar las reglas con las que dar formato a los siguientes formularios: 51APLICACIONES WEB TEMA 2: LENGUAJES DE PRESENTACIÓN Y ESTILO apuntesAplicacionesWeb/AW_Tema3.3.pdf Índice: Temas 3.3 y 3.4 3.3 El modelo de objetos del Documento 3.3.1 Introducción al DOM 3.3.2 Acceso a los nodos 3.3.3 Manipulación de nodos 3 3 4 A l t ib t3.3.4 Acceso a los atributos 3.4 El modelo de objetos del Navegador 3 4 1 El objeto window3.4.1 El objeto window 3.4.2 Otros objetos de utilidad Índice: Temas 3.3 y 3.4 3.3 El modelo de objetos del Documento 3.3.1 Introducción al DOM 3.3.2 Acceso a los nodos 3.3.3 Manipulación de nodos 3 3 4 A l t ib t3.3.4 Acceso a los atributos 3.4 El modelo de objetos del Navegador 3 4 1 El objeto window3.4.1 El objeto window 3.4.2 Otros objetos de utilidad 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM Modelo de Objetos del Documento (1) El Modelo de Objetos del Documento (DOM) es un interfaz que permite acceder y modificar la estructura y contenido de una página web. Especifica cómo se puede acceder desde los lenguajes de script a los distintosEspecifica cómo se puede acceder desde los lenguajes de script a los distintos elementos (enlaces, imágenes, formularios, etc…) de una página web y cómo se pueden modificar. Para lograrlo, se crean una serie de objetos que representan dichos elementos, y que guardan entre ellos unas relaciones de parentesco (jerarquía) que refleja la estructura lógica de una página HTML. Una página se presenta en una ventana que posee un documento el cual a su vez Una página se presenta en una ventana, que posee un documento, el cual a su vez puede tener una serie de formularios, que pueden contener elementos como botones, cuadros de texto, etc…, a su vez con una serie de propiedades, etc… 3APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM Modelo de Objetos del Documento (2) A continuación se muestran las clases de objetos del navegador en un diagrama que indica sus relaciones de contenido. 4APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM Modelo de Objetos del Documento (3) Considérese la siguiente página web sencilla: <!DOCTYPE html> <html> <head> h i /h l h f 8<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Página sencilla</title> </head> <body> <p>Esta página es <strong>muy sencilla</strong></p> </body></body> </html> 5APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM Modelo de Objetos del Documento (4) Antes de poder utilizar las funciones de DOM, los navegadores convierten automáticamente la página HTML en una estructura de árbol con nodos. Dichas funciones permiten añadir, eliminar, modificar y reemplazar cualquier nodo de cualquier documento de forma sencilla y sin necesidad de recargar la página. 6APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina crea un objet de tip Document Mario99 Texto escrito a máquina crea un objet de tip Element son etiquetas p head img.. Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina codig pagina anterior esquema : Mario99 Texto escrito a máquina el navegador lee y crea este esquema Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina desde js podem acceder aqui para modificar Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina element Mario99 Texto escrito a máquina document Mario99 Texto escrito a máquina raiz Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM Tipos de nodos La especificación completa de DOM define 12 tipos de nodos. A continuación se detallan los tipos más importantes de nodos en los que DOM transforma los documentos HTML: • Document Nodo raíz del que derivan todos los demás nodos del árbol. • DocumentType Es el nodo que contiene la representación del DTD empleado en laDocumentType Es el nodo que contiene la representación del DTD empleado en la página (indicado mediante el DOCTYPE). • Element Representa cada una de las etiquetas HTML. Es el único nodo que puede tener tanto nodos hijos como atributos. • Attr Representa cada uno de los atributos de las etiquetas HTML, es decir, d t ib t luno por cada par atributo=valor. • Text Nodo que contiene el texto encerrado por una etiqueta HTML. C R l i i l id l á i HTML 7APLICACIONES WEB • Comment Representa los comentarios incluidos en la página HTML. TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina cuand cargam una pagina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM La interfaz NODE (1) Una vez que DOM ha creado de forma automática el árbol completo de nodos de la página, ya es posible utilizar sus funciones para obtener información sobre los nodos o manipular su contenido. JavaScript crea el objeto Node para definir las propiedades y métodos necesarios para procesar y manipular los documentos. En primer lugar, el objeto Node define las siguientes constantes para la identificación de cada uno de los 12 tipos de nodos existentes: Node.ELEMENT_NODE = 1 Node.ATTRIBUTE_NODE = 2 ... Node.COMMENT_NODE = 8 Node.DOCUMENT_NODE = 9 ... d 12 8APLICACIONES WEB Node.NOTATION_NODE = 12 TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina acceder al nodo y modificar que querem Mario99 Texto escrito a máquina eliminar un parrafo... 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM La interfaz NODE (2) Además de estas constantes, Node proporciona las siguientes propiedades y métodos: 9APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina borra el parrafo body.removeChild(p) Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.1 INTRODUCCIÓN AL DOM La interfaz NODE (3) 10APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Índice: Temas 3.3 y 3.4 3.3 El modelo de objetos del Documento 3.3.1 Introducción al DOM 3.3.2 Acceso a los nodos 3.3.3 Manipulación de nodos 3 3 4 A l t ib t3.3.4 Acceso a los atributos 3.4 El modelo de objetos del Navegador 3 4 1 El objeto window3.4.1 El objeto window 3.4.2 Otros objetos de utilidad Mario99 Texto escrito a máquina cambiar color... 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.2 ACCESO A LOS NODOS Tipos de acceso DOM proporciona dos métodos alternativos para acceder a un nodo específico: • Acceso relativo: También conocido como acceso a través de nodos padre, consiste en acceder al nodo raíz de la página y después a sus nodos hijos y a los nodos hijos de esos h í h l d b dhijos y así sucesivamente hasta el nodo buscado. • Acceso directo: Cuando se quiere acceder a un nodo específico, es mucho más rápido acceder directamente a ese nodo a tener que llegar hasta él descendiendo a través deacceder directamente a ese nodo a tener que llegar hasta él descendiendo a través de todos sus nodos padre. Por último, es importante recordar que el acceso a los nodos, su modificación y su , p q , y eliminación solamente es posible cuando el árbol DOM ha sido construido completamente, es decir, después de que la página HTML se cargue por completo (evento onload). Más adelante se verá cómo asegurar que un código JavaScript solamente se 12APLICACIONES WEB ejecute cuando el navegador ha cargado entera la página HTML. TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina cm acceder a los elementos de esquema de las primera pagina de este dcument Mario99 Texto escrito a máquina este debem queda Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina document.body.firstChild.lastChild. text para acceder al strong del esquema, en cascada ay que meterse en cada una Mario99 Texto escrito a máquina <p id="1 uno" > dand nombre a atributo es una funcion geElement by ide alg asi 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.2 ACCESO A LOS NODOS Acceso relativo (1) La operación básica consiste en obtener el objeto que representa el elemento raíz de la página, para luego utilizar los diferentes métodos de la interfaz node para acceder al nodo deseado. Por ejemplo, se pueden hacer cosas del tipo: var objeto_html = document.documentElement; // html (elemento raiz) var objeto_head = objeto_html.firstChild; // head var objeto_body = objeto_html.lastChild; // body var objeto_head = objeto_html.childNodes[0]; // alternativa para obtener head var objeto_body = objeto_html.childNodes[1]; // alternativa para obtener body D di t bj t ht l hildN d l th // l it d li tvar numeroDescendientes = objeto_html.childNodes.length; // longitud lista objeto_head.parentNode; // devuelve el objeto_html objeto_body.parentNode; // devuelve el objeto_html objeto body.previousSibling; // devuelve el objeto headobjeto_body.previousSibling; // devuelve el objeto_head objeto_head.nextSibling; // devuelve el objeto_body objeto_head.ownerDocument; // devuelve el document document nodeType; // 9 (tipo del nodo document) 13APLICACIONES WEB document.nodeType; // 9 (tipo del nodo document) document.documentElement.nodeType; // 1 (tipo del nodo html) TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina no lo vam a utilizar 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.2 ACCESO A LOS NODOS EJERCICIO 16 Acceso relativo (2) Comprobar el acceso a los diferentes nodos de una página mostrando el resultados mediante alertas por pantalla: 14APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.2 ACCESO A LOS NODOS Acceso directo (1) Cuando se trabaja con una página web real, el árbol DOM tiene miles de nodos de todos los tipos. Por este motivo, no es eficiente acceder a un nodo descendiendo a través de todos los ascendentes de ese nodo. Para solucionar este problema, DOM proporciona una serie de métodos para acceder de forma directa a los nodos deseados. getElementsByTagName(“etiqueta”) • Dicha función obtiene todos los elementos de la página cuya etiqueta coincida con la especificada como argumento de la función: var parrafos =document.getElementsByTagName("p"); • El resultado se devuelve en un objeto de tipo NodeList, similar a un array de nodos:El resultado se devuelve en un objeto de tipo NodeList, similar a un array de nodos: var primerParrafo = parrafos[0]; var numeroParrafos = parrafos.length; • Se puede aplicar de forma recursiva sobre cada uno de los nodos devueltos por la función: 15APLICACIONES WEB var enlaces = primerParrafo.getElementsByTagName("a"); TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina este es importante Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina var imagenes =document.getElementsByTagName("img") arai con tda imagen de una pagina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina var imagen1= imagenes[0] ; para ver la primera imagen Mario99 Texto escrito a máquina < img name = "image2" > 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.2 ACCESO A LOS NODOS Acceso directo (2) getElementsByName(“name”) • Dicha función obtiene todos los elementos de la página cuyo atributo name coincida con el especificado como argumento de la función. <p name="especial">Contenido del párrafo</p> var parrafoEspecial = document.getElementsByName("especial"); getElementById(“id”) • Dicha función obtiene todos el elemento de la página cuya atributo id se especifica como argumento de la función: <div id="cabecera"> var cabecera = document.getElementById("cabecera"); getAttribute(“atributo”): El acceso a los atributos se verá más adelante. 16APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina <img name = " imagen2 "> Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina imagen2 le pasam est dnd pne especial 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.2 ACCESO A LOS NODOS EJERCICIO 17 Acceso directo (3) Dada la página web ejercicio17.html, obtener: 1) el número de enlaces de la página; 2) la dirección a la que enlaza el penúltimo enlace; 3) el número de enlaces que enlazan a http://prueba; 4) el número de enlaces del tercer párrafo. 17APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina meter una funcion que cuand puls el bton aga l de arriba Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina en js Mario99 Texto escrito a máquina acceder y poder modificar Mario99 Texto escrito a máquina examen Índice: Temas 3.3 y 3.4 3.3 El modelo de objetos del Documento 3.3.1 Introducción al DOM 3.3.2 Acceso a los nodos 3.3.3 Manipulación de nodos 3 3 4 A l t ib t3.3.4 Acceso a los atributos 3.4 El modelo de objetos del Navegador 3 4 1 El objeto window3.4.1 El objeto window 3.4.2 Otros objetos de utilidad Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.3 MANIPULACIÓN DE LOS NODOS Creación de nodos (1) La interfaz node proporciona métodos para la crear (createNode()) y añadir (appendChild()) nuevos nodos al árbol de la página. Veámoslo con un ejemplo. Supóngase que se desea añadir de forma dinámica un nuevo párrafo (<p>Párrafo 1</p>) a la siguiente página: <html> <head><title>Página sencilla</title></head><head><title>Página sencilla</title></head> <body></body> </html> Para ello, se deben seguir los siguientes pasos: 1. Crear un nodo de tipo elemento (para el párrafo). 2. Crear un nodo de tipo texto (para el contenido). 3. Asociar el nodo texto al nodo párrafo. ñ di l d á f l d b d 19APLICACIONES WEB 4. Añadir el nodo párrafo al nodo body. TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina cuand pulsa el usuari Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina en js Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.3 MANIPULACIÓN DE LOS NODOS Creación de nodos (2) El código correspondiente sería: 1. var p = document.createElement("p"); 2. var texto = document.createTextNode("Párrafo 1"); 3. p.appendChild(texto); 4. document.body.appendChild(p); Y el resultado: <html> <head><title>Página sencilla</title></head> <body><body> <p>Párrafo 1</p> </body> </html> 20APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina cream el nod p en la estructura de esquema Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina este texto es un nodo que detiene el parrafo 1 que está entre parente Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.3 MANIPULACIÓN DE LOS NODOS Creación de nodos (3) Además, se puede añadir un segundo párrafo: 1. var p2 = document.createElement("p"); 2. var texto = document.createTextNode("Párrafo 2"); 3. p2.appendChild(texto); D á d l i Detrás del primero: 4. document.body.appendChild(p2); O delante: 4 var p = document getElementsByTagName("p")[0];4. var p = document.getElementsByTagName("p")[0]; 5. document.body.insertBefore(p2,p); 21APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.3 MANIPULACIÓN DE LOS NODOS Reemplazo de nodos (1) La interfaz node proporciona el método replaceChild() para reemplazar cualquier nodo existente originalmente en la página o creado dinámicamente. Supongamos que queremos reemplazar el nodo anteriormente añadido (primer párrafo de la página) por otro. Para ello se deben seguir los siguientes pasos: Para ello, se deben seguir los siguientes pasos: 1. Crear un nodo de tipo elemento (para el párrafo). 2 C d d ti t t ( l t id )2. Crear un nodo de tipo texto (para el contenido). 3. Asociar el nodo texto al nodo párrafo. 4. Acceder al nodo que se pretende reemplazar. 5. Ejecutar desde su nodo padre el reemplazo del nodo antiguo por el nuevo. 22APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.3 MANIPULACIÓN DE LOS NODOS Reemplazo de nodos (2) El código correspondiente sería: 1. var pnew = document.createElement("p"); 2. var texto = document.createTextNode("Párrafo 2"); 3. pnew.appendChild(texto); 4. var pold = document.getElementsByTagName("p")[0]; 5. pold.parentNode.replaceChild(pnew,pold); Y el resultado: Y el resultado: <html> <head><title>Página sencilla</title></head> <body> <p>Párrafo 2</p> </body> 23APLICACIONES WEB </html> TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina esta particularizad a esa pagina l pdem quitar Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.3 MANIPULACIÓN DE LOS NODOS Eliminación de nodos La interfaz node proporciona el método removeChild() para eliminar cualquier nodo existente originalmente en la página o creado dinámicamente. Supongamos que queremos eliminar el nodo anteriormente añadido (primer párrafo de la página). Para ello, se deben seguir los siguientes pasos: 1. Acceder al elemento a eliminar. 2. Eliminarlo desde su elemento padre. El código correspondiente sería: 1. var p = document.getElementsByTagName("p")[0]; 2. document.body.removeChild(p); O, en el caso de que no se conozca su padre: 24APLICACIONES WEB 2. p.parentNode.removeChild(p); TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.3 MANIPULACIÓN DE LOS NODOS EJERCICIO 18 Ejercicio de manipulación de nodos Programar las funciones necesarias para crear nuevos párrafos con el texto “Párrafo 1”, crear párrafos delante del primero con el texto“Párrafo 2”, reemplazar el primero (por “Párrafo 3”) y eliminar el primero. 25APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Índice: Temas 3.3 y 3.4 3.3 El modelo de objetos del Documento 3.3.1 Introducción al DOM 3.3.2 Acceso a los nodos 3.3.3 Manipulación de nodos 3 3 4 A l t ib t3.3.4 Acceso a los atributos 3.4 El modelo de objetos del Navegador 3 4 1 El objeto window3.4.1 El objeto window 3.4.2 Otros objetos de utilidad 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.4 ACCESO A LOS ATRIBUTOS Acceso a los atributos Además del tipo de etiqueta HTML y su contenido de texto, DOM permite el acceso directo a todos los atributos de cada etiqueta. Los atributos de los elementos de la página se transforman automáticamente en propiedades de los nodos. Para acceder a su valor, simplemente se indica el nombre del atributo HTML detrás del nombre del nodo. Ejemplo: <a href="http://www.paginaweb.com">Enlace</a> var a document getElementsByTagName("a");var a = document.getElementsByTagName("a"); alert(a.href); // muestra http://www.paginaweb.com a.href = www.otrapaginaweb.com // modifica el enlace 27APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina var parafo= document.getElementbyID("p1") paraf.size=" 20 px" mdifica el tama 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.4 ACCESO A LOS ATRIBUTOS Acceso a las propiedades CSS (1) El acceso a las propiedades CSS no es tan directo y sencillo como el acceso a los atributos HTML, dado que los estilos CSS se pueden aplicar de varias formas diferentes sobre un mismo elemento HTML. El acceso a las propiedades CSS establecidas mediante el atributo style se realiza a través de la propiedad styledel nodo que representa a ese elemento. Ejemplo: <p id="parrafo1" style="color:#C00">Párrafo</a> var p = document.getElementById("parrafo1"); var color = p.style.color; Aunque el funcionamiento es homogéneo entre distintos navegadores, los resultados no son exactamente iguales: Firefox y Safari muestran el valor rgb(204, 0, 0) , Internet Explorer 28APLICACIONES WEB muestra el valor #c00, etc… TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.4 ACCESO A LOS ATRIBUTOS Acceso a las propiedades CSS (2) Si el nombre de una propiedad CSS es compuesto, se accede a su valor modificando ligeramente su nombre. La transformación del nombre de las propiedades CSS compuestas consiste en eliminar todos los guiones medios (‐) y escribir en mayúscula la letra siguiente a cada guión medio. Ejemplos: • font-weight se transforma en fontWeight • border-top-style se transforma en borderTopStyle Como la palabra l está reservada por JavaScript no es posible utilizarla para Como la palabra class está reservada por JavaScript, no es posible utilizarla para acceder al atributo class del elemento HTML. En su lugar, DOM utiliza el nombre className para acceder al atributo class de HTML. 29APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.4 ACCESO A LOS ATRIBUTOS Acceso a las propiedades CSS (3) Para obtener el valor de las propiedades CSS independientemente de cómo se hayan aplicado, es necesario utilizar otras propiedades de JavaScript. <p id="parrafo1">Párrafo</p> // Código HTML #parrafo1 { color: #008000; } // Regla CSS Si se utiliza un navegador de la familia Internet Explorer, se hace uso de la i d dpropiedad currentStyle: var p = document.getElementById("parrafo1"); var color = p.currentStyle['color'];var color p.currentStyle[ color ]; Si se utiliza cualquier otro navegador, se puede emplear la función getComputedStyle():g p y () var p = document.getElementById("parrafo1"); var color = document.defaultView.getComputedStyle(p,''). 30APLICACIONES WEB getPropertyValue('color'); TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.4 ACCESO A LOS ATRIBUTOS Acceso a las propiedades CSS (4) La propiedad currentStyle requiere el nombre de las propiedades CSS según el formato de JavaScript (sin guiones medios), mientras que la función getPropertyValue() exige el uso del nombre original de la propiedad CSS. Por este motivo, la creación de aplicaciones compatibles con todos los navegadores se puede complicar en exceso. Existen funciones compatibles con todos los navegadores, como la función getStyle() creada por el programador Robert Nyman y publicada en su blog lpersonal: http://www.robertnyman.com/2006/04/24/get‐the‐rendered‐style‐of‐an‐element/ var parrafo = document.getElementById("parrafo"); var color = getStyle(parrafo, 'color'); 31APLICACIONES WEB g y (p , ) TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.4 ACCESO A LOS ATRIBUTOS EJERCICIO 19 Ejercicio sobre acceso a los atributos Dada la página web ejercicio19.html, programar las funciones capaces de mostrar y cambiar el color y tamaño de letra de los dos primeros párrafos, y cambiar el estilo de la pseudo‐clase a:hover del enlace del tercero a verde. 32APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.3 EL MODELO DE OBJETOS DEL DOCUMENTO 3.3.4 ACCESO A LOS ATRIBUTOS EJERCICIO 20 Generador‐comparador de números aleatorios Diseñar una web con la que generar de forma aleatoria dos números entre 0 y 9 a través de un botón “generar”, y que obtenga el menor de ellos a través de un botón “comparar”. 33APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina exame Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Índice: Temas 3.3 y 3.4 3.3 El modelo de objetos del Documento 3.3.1 Introducción al DOM 3.3.2 Acceso a los nodos 3.3.3 Manipulación de nodos 3 3 4 A l t ib t3.3.4 Acceso a los atributos 3.4 El modelo de objetos del Navegador 3 4 1 El objeto window3.4.1 El objeto window 3.4.2 Otros objetos de utilidad 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW Modelo de Objetos del Navegador (1) El Modelo de Objetos del Navegador (BOM) es un interfaz a través de la cual es posible: • Crear, mover, redimensionar y cerrar ventanas de navegador. • Modificar el texto que se muestra en la barra de estado. • Obtener información sobre el propio navegador. • Acceder a propiedades de la página. • Gestión de cookies. • Y realizar muchas otras manipulaciones no relacionadas con el contenido de la página HTML, como: • Utilización de temporizadores‐ • Etc… 35APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW Modelo de Objetos del Navegador (2) A continuación se muestran las clases de objetos del navegador en un diagrama que indica sus relaciones de contenido. 36APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW El objeto Window Se trata del objeto de más alto nivel, y representa la ventana completa del navegador. Tiene métodos para: • Mostrar mensajes al usuario • Mover, redimensionar y manipular la ventana actual del navegador. • Utilizar temporizadores. • Abrir y cerrar nuevas ventanas de navegador. Algunas propiedades del objeto window: status Barra de estado window.status name Nombre de la ventana window.name Dado que se trata del elemento de mayor nivel, todas sus propiedades y métodos pueden ser accedidos sin necesidad de colocar su nombre delante del punto. 37APLICACIONES WEB p p TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW Mensajes de JavaScript (1) JavaScript tiene tres tipos de cuadros de mensaje con los que interaccionar con el usuario mostrando o pidiendo algún tipo de información mediante diferentes métodos del objeto window: alert(mensaje) Muestra un cuadro de mensaje. window.alert("Hola") confirm(mensaje) Muestra un cuadro de confirmación. Devuelve true si el usuario pulsa el botón Aceptar y false si pulsa Cancelar. window.confirm("¿Terminar?") prompt(mensaje,inicial) Para leer un dato. Muestra un cuadro con el mensaje, un cuadro de texto (con valor inicial) y botones Aceptar y Cancelar. Devuelve el valor introducido. window.prompt("Introduce tu edad","20") window.prompt("Introduce tu edad","") 38APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVETADOR 3.4.1 EL OBJETO WINDOW EJERCICIO 21 Mensajes de JavaScript (2) Utilizar los métodos anteriores para solicitar y mostrar información mediante cuadros de texto: 39APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW Manejo de la ventana en JavaScript (1) BOM define cuatro métodos para manipular el tamaño y la posición de la ventana: moveBy(x,y) Desplaza la posición de la ventana x píxeles hacia la derecha e y píxeles hacia abajo. Se permiten desplazamientos negativos (izquierda y arriba). window.moveBy(10,10) moveTo(x,y) Desplaza la esquina superior izquierda a la posición (x, y). Se permiten desplazamientos negativos. window.moveTo(200,100)window.moveTo(200,100) resizeBy(x,y) Redimensiona la ventana aumentando su anchura y altura en x e y respectivamente. Valores negativos reducen. window.resizeBy(50,-50) resizeTo(ancho,alto) Establece el tamaño de la ventana. 40APLICACIONES WEB window.resizeTo(300,200) TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW EJERCICIO 22 Manejo de la ventana en JavaScript (2) Desarrollar una página web que contenga seis botones, dos para hacer la ventana un poco mayor o menor y cuatro más para desplazar la ventana un poco hacia cada dirección. 41APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW Temporización en JavaScript (1) JavaScript proporciona diferentes métodos para controlar la ejecución de código en intervalos específicos de tiempo: setTimeout(código,x) Evalúa el código después de x milisegundos. l d f d l óDevuelve un identificador para su cancelación. id=window.setTimeout(funcion,1000) clearTimeout(id) Cancela la tarea programada establecida conclearTimeout(id) Cancela la tarea programada establecida con setTimeout() identificada con id. window.clearTimeout(id) setInterval(código,x) Evalúa el código cada x milisegundos. Devuelve un identificador para su cancelación. id=window.setInterval(funcion,1000)id window.setInterval(funcion,1000) clearInterval(id) Cancela la tarea periódica establecida con setInterval() identificada con id. 42APLICACIONES WEB window.clearInterval(id) TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW EJERCICIO 23 Temporización en JavaScript (2) Desarrollar una página que contenga tres botones y un segundero: • El botón Mostrar lanza un mensaje que no aparecerá hasta transcurridos 5 segundos desde la pulsación. La aparición de dicho mensaje puede interrumpirse si se pulsa el botón l d l d d lOcultar antes de que transcurran los 5 segundos. Hay un segundero que muestra el tiempo transcurrido, y éste se puede parar en cualquier momento mediante el botón parar. 43APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW EJERCICIO 24 Temporización en JavaScript (3) Desarrollar una página que contenga dos botones, uno para hacer que la ventana se balancee lateralmente, y otro para parar dicho balanceo: • El balanceo consiste en mover la ventana 100 píxeles hacia la derecha de uno en uno cada 10 milisegundos, repetir el mismo movimiento hacia la izquierda, etc… 44APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW Ventanas emergentes (1) JavaScript proporciona el método open() del objeto window para abrir documentos en nuevas ventanas con unas determinadas características: open(url,windowName,windowFeatures) url URL de la página a abrir en la ventana. windowName Nombre de la ventana. windowFeatures Características de la ventana. La cadena de características contiene, separadas por comas, asignaciones de valores a las características (característica=valor) para las que el valor por defecto no resulte adecuado. La ventana se cierra con el método close(): ventana=window.open("http://www.ucm.es","VentanaUCM","status=1"); 45APLICACIONES WEB ventana.close(); TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW Ventanas emergentes (2) Características más usuales: width Anchura en píxeles. height Altura en píxeles. left Desplazamiento desde el marco izquierdo (coordenada x). top Desplazamiento desde el marco superior (coordenada y). location Barra de direcciones (valores posibles: yes/1 o no/0). menubar Barra de menús (valores posibles: yes/1 o no/0). / /directories Barra de vínculos (valores posibles: yes/1 o no/0). toolbar Barra de herramientas (valores posibles: yes/1 o no/0). scrollbars Barras de desplazamiento (yes/1 no/0 o auto)scrollbars Barras de desplazamiento (yes/1, no/0 o auto). status Barra de estado (valores posibles: yes/1 o no/0). resizable Redimensionable (yes/1 o no/0). 46APLICACIONES WEB resizable Redimensionable (yes/1 o no/0). TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.1 EL OBJETO WINDOW EJERCICIO 25 Ventanas emergentes (3) Desarrollar una página web que cree una nueva ventana en donde se muestre la página principal de la Complutense y sólo contenga barras de desplazamiento. 47APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Índice: Temas 3.3 y 3.4 3.3 El modelo de objetos del Documento 3.3.1 Introducción al DOM 3.3.2 Acceso a los nodos 3.3.3 Manipulación de nodos 3 3 4 A l t ib t3.3.4 Acceso a los atributos 3.4 El modelo de objetos del Navegador 3 4 1 El objeto window3.4.1 El objeto window 3.4.2 Otros objetos de utilidad 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.2 OTROS OBJETOS DE UTILIDAD Los objetos history y location (1) El objeto history contiene la lista de las URL de las páginas visitadas. Su propiedad length contiene el número de entradas. Algunos de sus métodos son: • back() Carga la página anterior. • forward() Carga la página siguiente. • go(pos) Carga la página en la posición indicada dentro de la lista de historial. El objeto location proporciona información de la URL de la página actual. Se puede modificar mediante el método assign(). Algunas propiedades son: • href URL completo. • hostname Nombre del dominio. • pathname Ruta al recurso. • port Puerto de acceso (normalmente 80 pero no se especifica). 49APLICACIONES WEB • protocol Protocolo (normalmente http:). TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.2 OTROS OBJETOS DE UTILIDAD EJERCICIO 26 Los objetos history y location (2) Probar las propiedades y métodos de los objetos history y location subiendo el ejercicio 26 al servidor. • Navegar a alguna web desde esta para almacenar algo en el historial y así probar los métodos y propiedades del objeto history. • El botón location lanza una función que muestra todas las propiedades del objeto location mediante alertas El botón AW GIE carga la web de la asignatura modificando la URL actualmediante alertas. El botón AW‐GIE carga la web de la asignatura modificando la URL actual mediante el método assign(). 50APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.2 OTROS OBJETOS DE UTILIDAD Los objetos navigator y screen (1) El objeto navigator contiene información sobre el navegador: • appName Nombre del navegador. • appVersion Versión del navegador. • cookieEnabled Si están habilitadas las cookies. • platform Plataforma (win, linux, mac, etc…) • plugins Array con los plugins soportados. • systemLanguage Lenguaje del sistema. El objeto screen contiene información sobre el monitor: ilWidth A h di ibl l it• availWidth Anchura disponible en el monitor. • availHeight Altura disponible en el monitor. 51APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.4 EL MODELO DE OBJETOS DEL NAVEGADOR 3.4.2 OTROS OBJETOS DE UTILIDAD EJERCICIO 27 Los objetos navigator y screen (2) Probar las propiedades y métodos de los objetos navigator y screen mostrando la siguiente información en un párrafo vacío. • Para mostrar la información correspondiente a cada botón, se puede generar una cadena de texto con la misma e incluirla como contenido del párrafo, accesible mediante la propiedad innerHTML del mismo. 52APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE apuntesAplicacionesWeb/AW_Tema3.pdf APLICACIONES WEBAPLICACIONES WEBAPLICACIONES WEBAPLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Objetivos Introducir lenguaje de programación JavaScript (JS) Mostrar el Modelo de Objetos del Documento (DOM) Mostrar el modelo de eventos de JS Mostrar la utilización de JS para la validación de formularios Índice: Temas 3.1 y 3.2 3.1 Lenguajes de Script 3.1.1 El lenguaje JavaScript 3.1.2 Primeros pasos con JavaScript 3.2 La sintaxis del lenguaje JavaScript 3.2.1 Variables 3.2.2 Objetos 3 2 3 Instrucciones de control3.2.3 Instrucciones de control 3.2.4 Funciones Índice: Temas 3.1 y 3.2 3.1 Lenguajes de Script 3.1.1 El lenguaje JavaScript 3.1.2 Primeros pasos con JavaScript 3.2 La sintaxis del lenguaje JavaScript 3.2.1 Variables 3.2.2 Objetos 3 2 3 Instrucciones de control3.2.3 Instrucciones de control 3.2.4 Funciones 3.1 LENGUAJES DE SCRIPT 3.1.1 EL LENGUAJE JAVASCRIPT Motivación HTML ofrece una funcionalidad básica para la construcción de páginas web. Para dotar de un mayor dinamismo a las páginas web se puede complementar HTML con otros lenguajes: los lenguajes de Script. Los lenguajes de Scripts son lenguajes de programación interpretados con los que se pueden crear secuencias de instrucciones (scripts) para insertarlos entre el código HTML de las páginas web. El código de los scripts se ejecuta a medida que se encuentra durante la construcción de la página web. Con ese código se pueden dinamizar las páginas, mostrar controles o conectar con bases de datos. Hay varios lenguajes de script: VBScript, JavaScript, PHP, etc… 4APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.1 LENGUAJES DE SCRIPT 3.1.1 EL LENGUAJE JAVASCRIPT Ejecución de Scripts Las secuencias de órdenes que constituyen un script se pueden ejecutar en el cliente o en el servidor: Programación en el lado del clienteProgramación en el lado del cliente • La secuencia de órdenes se ejecuta en la máquina cliente, aquella en la que se está usando el navegador.g • Se usa para añadir comportamiento a la página web en la que se encuentra el script. P ió l l d d l id Programación en el lado del servidor • La secuencia de órdenes se ejecuta en el servidor antes de enviar la página web al d li tnavegador cliente. • Se usa para construir dinámicamente la página con posibles accesos a bases de datos que determinan el contenido de la página 5APLICACIONES WEB determinan el contenido de la página. TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE 3.1 LENGUAJES DE SCRIPT 3.1.1 EL LENGUAJE JAVASCRIPT El lenguaje JavaScript Aquí nos vamos a ocupar de la programación en el lado del cliente utilizando el lenguaje JavaScript. Con JavaScript se puede, por ejemplo:Con JavaScript se puede, por ejemplo: • Dinamizar las páginas con efectos: texto que aparece y desaparece, animaciones, etc… • Controlar el navegador: crear ventanas emergentes, mostrar mensajes al usuario, etc…Controlar el navegador: crear ventanas emergentes, mostrar mensajes al usuario, etc… • Validar la información suministrada por el usuario en un formulario. • Responder a los sucesos generados al interactuar el usuario con el navegador, etc…Responder a los sucesos generados al interactuar el usuario con el navegador, etc… Con JavaScript no se puede, por ejemplo: • Leer o modificar las preferencias del navegador. • Acceder a los archivos del ordenador del usuario. 6APLICACIONES WEB • Comunicarse con recursos que no pertenezcan al mismo dominio del script. TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina escribir un archivo Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina base de datos... 3.1 LENGUAJES DE SCRIPT 3.1.1 EL LENGUAJE JAVASCRIPT Características (1) Sintaxis basada en el lenguaje Java (¡y ahí acaban las similitudes!). Es un lenguaje interpretado: no se compila. Es un lenguaje débilmente tipado: no se define el tipo de las variables sino que se Es un lenguaje débilmente tipado: no se define el tipo de las variables, sino que se deduce por el contexto. Distingue las mayúsculas y minúsculas Distingue las mayúsculas y minúsculas. No se tienen en cuenta los espacios en blanco y las nuevas líneas, por lo que podemos sangrar nuestros scripts para que sean más legiblespodemos sangrar nuestros scripts para que sean más legibles. No es necesario terminar cada sentencia con el carácter de punto y coma (;), aunque si es recomendableaunque si es recomendable. Se pueden incluir comentarios al estilo C/C++ o Java. 7APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina el navegador tiene un interprete que lee el codig 3.1 LENGUAJES DE SCRIPT 3.1.1 EL LENGUAJE JAVASCRIPT Características (2) Tiene algunas características de orientación a objetos: • Elementos que se pueden manipular: ventanas, formularios, elementos de formularios, … • Cada objeto es de una clase (tipo de objeto): un objeto es un ejemplar de su clase con j ( p j ) j j p nombre único, que tiene propiedades y métodos. • Propiedades (atributos): Características de los objetos descritas en sus clases y que conforman el contenido de los objetos, siendo valores sencillos u objetos de otras clases. • Métodos: Acciones que los objetos pueden realizar y que están descritas en las clases en forma de funciones. Para que un objeto realice una acción, se le pasa un mensaje al objeto con el nombre del método deseado • Ya están predefinidas muchas clases de objetos con sus propiedades y métodos específicos, cuyo acceso se hace uso de la sintaxis de punto: window.status , window close() 8APLICACIONES WEB window.close(). TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina iiiii permite programar funci 3.1 LENGUAJES DE SCRIPT 3.1.1 EL LENGUAJE JAVASCRIPT Características (3) También se pueden definir funciones propias: • Bloques de código que se definen como una unidad independiente con nombre, y que se invocan colocando su nombre seguido de paréntesis. • Pueden recibir valores u objetos en forma de argumentos y pueden devolver valores u objetos como resultado de su ejecución. Se puede responder a eventos: • Sucesos que se producen en el navegador debidos a la interacción del usuario, tales como la pulsación o movimiento del ratón, el envío de los datos de un formulario, etc… • A cada evento posible se le asocia un manejador de evento, función con el código a ejecutar cuando se produce el evento: onClick, onMouseover, onSubmit, ... • No todos los eventos han de tener asociado un manejador, sino tan sólo aquellos a los que d 9APLICACIONES WEB se quiera responder. TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Índice: Temas 3.1 y 3.2 3.1 Lenguajes de Script 3.1.1 El lenguaje JavaScript 3.1.2 Primeros pasos con JavaScript 3.2 La sintaxis del lenguaje JavaScript 3.2.1 Variables 3.2.2 Objetos 3 2 3 Instrucciones de control3.2.3 Instrucciones de control 3.2.4 Funciones 3.1 LENGUAJES DE SCRIPT 3.1.2 PRIMEROS PASOS CON JAVASCRIPT ¿Dónde colocar scripts en una página HTML? En la cabecera de la página (<head>): Se ejecutan al abrir la página. En el cuerpo de la página (<body>): Se ejecutan a medida que se encuentran durante la construcción de la página web. Puede haber múltiples scripts en un archivo HTML. ¿Cómo se invocan los scripts en una página HTML? Usando la etiqueta <script>: • Permite incluir código de script directamente en la página. • Permite incluir una referencia que apunte a un fichero externo con el código. Usando los atributos de etiquetas HTML que soportan scripts: Manejadores de eventos, enlaces, etc… 11APLICACIONES WEB TEMA 3: PROGRAMACIÓN EN EL LADO DEL CLIENTE Mario99 Texto escrito a máquina .js <head> <script> codigo </script> head> <body> </body> Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina alert("Mensaje Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99 Texto escrito a máquina Mario99
Compartir