domingo, 29 de noviembre de 2020
martes, 10 de noviembre de 2020
Hojas de Estilo
Qué es una hoja de estilo
En las primeras versiones del HTML, el código fuente de una página web contenía tanto la información (el contenido) como la forma de representarse (el diseño o formato). Actualmente, estos dos aspectos se pueden separar. La página web (el documento html) sólo debe contener información, mientras que el formato se debe definir en las llamadas hojas de estilo (en inglés, CSS, Cascading Style Sheets, es decir, Hojas de Estilo en Cascada).
El funcionamiento de las hojas de estilo es el siguiente:
- En la página web (archivo .html) se escriben las etiquetas que definen categorías o elementos.
- En la hoja de estilo (archivo .css) se escribe cómo queremos que sea el estilo de presentación de las etiquetas (color, tamaño, fuente, bordes, márgenes, posición, etc).
- En la página web se escribe qué hoja de estilo queremos utilizar.´
Las ventajas de utilizar hojas de estilo son muchas, sobre todo permiten hacer un diseño consistente y fácil de modificar. Si varias páginas web hacen referencia a la misma hoja de estilo, para cambiar la apariencia de todas las páginas es suficiente con hacer los cambios en un único lugar, en la hoja de estilo.
Sintaxis de las hojas de estilo
Una hoja de estilo es un fichero de texto plano (sin formato) en el que se define el aspecto de las etiquetas de una página web:
Información de estilo en línea
Definiciones de atributos
La sintaxis del valor del atributo style viene determinada por el lenguaje de hojas de estilo por defecto. Por ejemplo, para los estilos [[CSS2]] en línea, se usa la sintaxis de bloque de declaraciones descrita en la sección 4.1.8 (sin las llaves).
Este ejemplo CSS establece información sobre el color y el tamaño de la fuente del texto de un párrafo específico.
<P style="font-size: 12pt; color: fuchsia">¿No son maravillosas las hojas de estilo?
En CSS, las declaraciones de propiedades son de la forma "nombre : valor" y están separadas por un punto y coma.
Para especificar información de estilo en línea para más de un elemento, los autores deberían usar el elemento STYLE. Para lograr una flexibilidad óptima, los autores deberían definir los estilos en hojas de estilo externas.
14.2.3 Información de estilo en cabecera: el elemento STYLE
<!ELEMENT STYLE - - %StyleSheet -- información de estilo --> <!ATTLIST STYLE %i18n; -- lang, dir, para usar con title -- type %ContentType; #REQUIRED -- tipo de contenido del lenguaje de estilos -- media %MediaDesc; #IMPLIED -- diseñado para usar con estos medios -- title %Text; #IMPLIED -- título consultivo -- >
Etiqueta inicial: obligatoria, Etiqueta final: obligatoria
Definiciones de atributos
- type = tipo de contenido [CI]
- Este atributo especifica el lenguaje de hojas de estilo de los contenidos del elemento y prevalece sobre el lenguaje de hojas de estilo por defecto. El lenguaje de hojas de estilo se especifica como un tipo de contenido (p.ej., "text/css"). Los autores deben proporcionar un valor para este atributo; no hay valor por defecto para este atributo.
- media = descriptores de medios [CI]
- Este atributo especifica el medio destino al que se dirige la información de estilo. Puede ser un solo descriptor de medios, o una lista de ellos separados por comas. El valor por defecto de este atributo es "screen" (pantalla).
Atributos definidos en otros lugares
El elemento STYLE permite a los autores poner reglas de hojas de estilo en la cabecera del documento. HTML permite cualquier número de elementos STYLE en la sección HEAD de un documento.
Los agentes de usuario que no soporten hojas de estilo, o que no soporten el lenguaje de hojas de estilo utilizado por un elemento STYLE en particular, deben ocultar los contenidos del elemento STYLE. Es un error representar el contenido como parte del texto del documento. Algunos lenguajes de hojas de estilo soportan sintaxis para ocultar el contenido a agentes de usuarios no conformes.
La sintaxis de los datos de estilo depende del lenguaje de hojas de estilo.
Algunas implementaciones de hojas de estilo pueden permitir una gama más amplia de reglas en el elemento STYLE que en el atributo style. Por ejemplo, con CSS, pueden declararse reglas dentro de un elemento STYLE para:
- Todas las apariciones de un elemento de HTML específico (p.ej., todos los elementos P, todos los elementos H1, etc.)
- Todas las apariciones de un elemento de HTML que pertenezcan a una clase específica (es decir, cuyo atributo class tome cierto valor).
- Las apariciones únicas de un elemento de HTML (es decir, cuyo atributo id tome cierto valor).
Las reglas de precedencia y herencia de las reglas de estilo dependen del lenguaje de hojas de estilo.
La siguiente declaración STYLE CSS pone un borde alrededor de todos los elementos H1 del documento y los centra en la página.
<HEAD> <STYLE type="text/css"> H1 {border-width: 1px; border: solid; text-align: center} </STYLE> </HEAD>
Para especificar que esta información de estilo sólo debería aplicarse a los elementos H1 de una clase específica, la modificamos como sigue:
<HEAD> <STYLE type="text/css"> H1.miclase {border-width: 1px; border: solid; text-align: center} </STYLE> </HEAD> <BODY> <H1 class="miclase"> Este H1 está afectado por nuestro estilo </H1> <H1> Este no está afectado por nuestro estilo </H1> </BODY>
Finalmente, para limitar el alcance de la información de estilo a una sola aparición de H1, establecemos el atributo id:
<HEAD> <STYLE type="text/css"> #miid {border-width: 1px; border: solid; text-align: center} </STYLE> </HEAD> <BODY> <H1 class="miclase"> Este H1 no está afectado </H1> <H1 id="miid"> Este H1 está afectado por el estilo </H1> <H1> Este H1 no está afectado </H1> </BODY>
Aunque se puede especificar información de estilo prácticamente para cualquier elemento, hay dos elementos, DIV y SPAN, que son particularmente útiles en el sentido de que no imponen ningún significado presentacional (aparte de la distinción en bloque/en línea). Combinados con hojas de estilo, estos elementos permiten a los usuarios extender el HTML indefinidamente, en especial si se utilizan junto con los atributos class e id.
En el siguiente ejemplo, utilizamos el elemento SPAN para especificar que el estilo de fuente de las primeras palabras de un párrafo sea versalitas ("small-caps").
<HEAD> <STYLE type="text/css"> SPAN.ver-ex { font-variant: small-caps } </STYLE> </HEAD> <BODY> <P><SPAN class="ver-ex">Las primeras</SPAN> palabras de este párrafo van en versalitas. </BODY>
En el siguiente ejemplo, utilizamos el elemento DIV y el atributo class para establecer la justificación del texto de una serie de párrafos que constituyen el abstracto de un artículo científico. Esta información de estilo podría reutilizarse para otras secciones de abstracto especificando el valor correspondiente del atributo class en cualquier otro lugar del documento.
<HEAD> <STYLE type="text/css"> DIV.Abstracto { text-align: justify } </STYLE> </HEAD> <BODY> <DIV class="Abstracto"> <P>La gama de productos Gran Jefe es nuestra apuesta para el año que viene. Este informe sienta las bases para confrontar a Gran Jefe con los productos de la competencia. <P>Gran Jefe reemplaza a nuestra gama "Commander", si bien ésta seguirá de momento en catálogo. </DIV> </BODY>
14.2.4 Tipos de medios
HTML permite a los autores diseñar documentos que saquen partido de las características de los medios en los que el documento vaya a ser representado (p.ej., pantallas gráficas, pantallas de televisión, dispositivos de mano, navegadores basados en voz, dispositivos táctiles Braille, etc.). Al especificar el atributo media, los autores permiten a los agentes de usuario cargar y aplicar las hojas de estilo de manera selectiva. Consulte la lista de descriptores de medios reconocidos.
Las siguientes declaraciones de ejemplo se aplican a elementos H1. Cuando se proyecten en una reunión de negocios, todos ellos aparecerán en azul. Cuando se impriman, aparecerán centrados.
<HEAD> <STYLE type="text/css" media="projection"> H1 { color: blue } </STYLE> <STYLE type="text/css" media="print"> H1 { text-align: center } </STYLE>
Este ejemplo añade efectos de sonido a los vínculos para su uso en salidas por voz:
<STYLE type="text/css" media="aural"> A { cue-before: uri(bell.aiff); cue-after: uri(dong.wav)} </STYLE> </HEAD>
El control de medios es particularmente interesante cuando se aplica a hojas de estilo externas, ya que los agentes de usuario pueden ahorrar tiempo si obtienen de la red únicamente aquellas hojas de estilo que se apliquen el dispositivo actual. Por ejemplo, los navegadores basados en voz pueden evitar la descarga de hojas de estilo diseñadas para la representación visual. Veáse la sección sobre cascadas dependientes del medio para más información.
14.3 Hojas de estilo externas
Los autores pueden separar las hojas de estilo de los documentos HTML. Esto ofrece varias ventajas:
- Los autores y los administradores de sitios web pueden compartir hojas de estilo entre varios documentos (y sitios).
- Los autores pueden cambiar la hoja de estilo sin necesidad de hacer modificaciones en el documento.
- Los agentes de usuario pueden cargar hojas de estilo selectivamente (en función de los descriptores de medios).
14.3.1 Hojas de estilo preferentes y alternativas
HTML permite a los autores asociar cualquier número de hojas de estilo externas a un documento. El lenguaje de hojas de estilo define el modo en que interaccionan varias hojas de estilo (por ejemplo, las reglas de "cascada" de CSS).
Los autores pueden especificar cualquier número de hojas de estilo mutuamente excluyentes llamadas hojas de estilo alternativas. Los usuarios pueden seleccionar su hoja favorita según sus preferencias. Por ejemplo, un autor puede especificar una hoja de estilo diseñada para pantallas pequeñas y otra para usuarios con poca visión (p.ej., con fuentes grandes). Los agentes de usuario deberían permitir a los usuarios seleccionar las hojas de estilo alternativas.
El autor puede especificar que una de las alternativas es una hoja de estilo preferente. Los agentes de usuario deberían aplicar la hoja de estilo preferente del autor a menos que el usuario haya seleccionado una alternativa diferente.
Los autores pueden agrupar varias hojas de estilo alternativas (incluyendo las hojas de estilo preferentes del autor) bajo un nombre de estilo común. Cuando un usuario selecciona un nombre de estilo, el agente de usuario debe aplicar todas las hojas de estilo con ese nombre. Los agentes de usuario no deben aplicar hojas de estilo alternativas con un nombre de estilo diferente. La sección sobre especificación de hojas de estilo externas explica cómo dar un nombre a un grupo de hojas de estilo.
Los autores también pueden especificar hojas de estilo persistentes que los agentes de usuario deben aplicar además de cualquier hoja de estilo alternativa.
Los agentes de usuario deben respetar los descriptores de medios al aplicar cualquier hoja de estilo.
Los agentes de usuario también deberían permitir a los usuarios deshabilitar completamente las hojas de estilo del autor, en cuyo caso el agente de usuario no debería aplicar ninguna hoja de estilo persistente ni alternativa.
14.3.2 Especificación de hojas de estilo externas
Los autores especifican hojas de estilo externas mediante los siguientes atributos del elemento LINK:
- Haciendo el valor de href igual a la localización del fichero de la hoja de estilo. El valor de href es un URI.
- Haciendo que el valor del atributo type indique el lenguaje del recurso (hoja de estilo) vinculado. Esto permite al agente de usuario evitar la descarga de una hoja de estilo cuyo lenguaje no soporte.
- Especificando si la hoja de estilo es persistente, preferente, o alternativa:
- Para hacer una hoja de estilo persistente, se hace el atributo rel igual a "stylesheet" y no se establece el atributo title.
- Para hacer una hoja de estilo preferente, se hace el atributo rel igual a "stylesheet" y se da un nombre a la hoja de estilo mediante el atributo title.
- Para especificar una hoja de estilo alternativa, se hace el atributo rel igual a "alternate stylesheet" y se da un nombre a la hoja de estilo mediante el atributo title.
Los agentes de usuario deberían posibilitar a los usuarios ver la lista de estilos alternativos y escoger uno de ellos. Se recomienda que el nombre de cada opción sea el valor del atributo title.
En este ejemplo, especificamos en primer lugar una hoja de estilo persistente localizada en el fichero miestilo.css:
<LINK href="miestilo.css" rel="stylesheet" type="text/css">
Si establecemos el atributo title la convertimos en la hoja de estilo preferente del autor:
<LINK href="miestilo.css" title="compacto" rel="stylesheet" type="text/css">
Si añadimos la palabra clave "alternate" al atributo rel la convertimos en una hoja de estilo alternativa:
<LINK href="miestilo.css" title="Medium" rel="alternate stylesheet" type="text/css">
Para más información sobre hojas de estilo externas, consulte la sección sobre vínculos y hojas de estilo externas.
Los autores también pueden usar el elemento META para establecer la hoja de estilo preferente del documento. Por ejemplo, para especificar que la hoja de estilo preferente sea "compacto" (ver el ejemplo precedente), los autores pueden incluir la siguiente línea en el HEAD:
<META http-equiv="Default-Style" content="compacto">
La hoja de estilo preferente también se puede especificar mediante encabezados HTTP. La declaración META precedente es equivalente a este encabezado HTTP:
Default-Style: "compacto"
Si hay dos o más declaraciones META o encabezados HTTP que especifiquen la hoja de estilo preferente, la que prevalece es la última. A estos efectos, se considera que los encabezados HTTP aparecen antes que la sección HEAD del documento.
Si hay dos o más elementos LINK que especifiquen una hoja de estilo preferente, el que prevalece es el primero.
Las hojas de estilo preferentes especificadas con un elemento META o con encabezados HTTP prevalecen sobre las especificadas con el elemento LINK.
14.4 Hojas de Estilo en Cascada
Los lenguajes de hojas de estilo en cascada, tales como CSS, permiten que se pueda combinar la información de varias fuentes. Sin embargo, no todos los lenguajes de hojas de estilo soportan la cascada. Para definir una cascada, los autores especifican una secuencia de elementos LINK y/o STYLE. La información de estilo se combina en cascada según el orden en que aparecen los elementos en la sección HEAD.
Nota. Esta especificación no especifica cómo se combinan en cascada hojas de estilo de lenguajes de hojas de estilo distintos. Los autores deberían evitar mezclar lenguajes de hojas de estilo.
En el siguiente ejemplo, especificamos dos hojas de estilo alternativas llamadas "compacto". Si el usuario selecciona el estilo "compacto", el agente de usuario debe aplicar ambas hojas de estilo externas, así como la hoja de estilo persistente "comun.css". Si el usuario selecciona el estilo "tipos grandes", sólo se aplicarán la hoja de estilo alternativa "tgrandes.css" y "comun.css".
<LINK rel="alternate stylesheet" title="compacto" href="peq-base.css" type="text/css"> <LINK rel="alternate stylesheet" title="compacto" href="peq-extras.css" type="text/css"> <LINK rel="alternate stylesheet" title="tipos grandes" href="tgrandes.css" type="text/css"> <LINK rel="stylesheet" href="comun.css" type="text/css">
Aquí tenemos un ejemplo de cascada que incluye tanto al elemento LINK como al STYLE.
<LINK rel="stylesheet" href="empresa.css" type="text/css"> <LINK rel="stylesheet" href="informe.css" type="text/css"> <STYLE type="text/css"> p.especial { color: rgb(230, 100, 180) } </STYLE>
14.4.1 Cascadas dependientes del medio
Una cascada puede incluir hojas de estilo aplicables a medios diferentes. Tanto LINK como STYLE pueden usarse con el atributo media. El agente de usuario es por tanto responsable de filtrar aquellas hojas de estilo que no se apliquen al medio actual.
En el siguiente ejemplo, definimos un cascada en la cual se incluyen varias versiones de la hoja de estilo "empresa": una diseñada para su impresión, otra para la pantalla y otra para navegadores basados en voz (útil, por ejemplo, para leer correo electrónico en el coche). La hoja de estilo "informe" se aplica a todos los medios. La regla de color definida por el elemento STYLE se usa para impresoras y pantallas, pero no para la representación auditiva.
<LINK rel="stylesheet" media="aural" href="empresa-aural.css" type="text/css"> <LINK rel="stylesheet" media="screen" href="empresa-screen.css" type="text/css"> <LINK rel="stylesheet" media="print" href="empresa-print.css" type="text/css"> <LINK rel="stylesheet" href="informe.css" type="text/css"> <STYLE media="screen, print" type="text/css"> p.especial { color: rgb(230, 100, 180) } </STYLE>
14.4.2 Herencia y cascada
Cuando el agente de usuario quiere representar un documento, necesita encontrar valores para las propiedades de estilo, p.ej., la familia tipográfica, el tamaño de fuente, la altura de línea, el color del texto, etc. El mecanismo exacto depende del lenguaje de la hoja de estilo, pero en general es válida la descripción siguiente:
Se utiliza el mecanismo de cascada cuando varias reglas de estilo se aplican directamente a un mismo elemento. El mecanismo permite al agente de usuario ordenar las reglas según su especificidad para determinar la regla a aplicar. Si no encuentra ninguna regla, el siguiente paso depende de si la propiedad de estilo puede ser heredada o no. No todas las propiedades se heredan. Para estas propiedades el lenguaje de la hoja de estilo proporciona unos valores por defecto que son los que se usan cuando no hay reglas explícitas para un elemento en particular.
Si la propiedad puede ser heredada, el agente de usuario examina el elemento contenedor inmediato para ver si hay alguna regla que se aplique a él. Este proceso continúa hasta que se encuentra alguna regla aplicable. Este mecanismo permite que las hojas de estilo puedan definirse de una manera compacta. Por ejemplo, los autores pueden especificar la familia tipográfica de todos los elementos contenidos en BODY con una sola regla que se aplique al elemento BODY.
14.5 Ocultar datos de estilo a los agentes de usuario
Algunos lenguajes de hojas de estilo soportan sintaxis pensada para permitir a los autores ocultar el contenido de los elementos STYLE a los agentes de usuario no conformes.
Este ejemplo ilustra cómo comentar en CSS el contenido de los elementos STYLE para asegurarse de que los agentes de usuario antiguos y no conformes no lo representarán como texto.
<STYLE type="text/css"> <!-- H1 { color: red } P { color: blue} --> </STYLE>
14.6 Vinculación de hojas de estilo mediante encabezados HTTP
Esta sección sólo se aplica a los agentes de usuario conformes con las versiones de HTTP que definan un campo de encabezado Link. Obsérvese que HTTP 1.1, tal y como se define en [RFC2616], no incluye un campo de encabezado Link (ver sección 19.6.3).
Los administradores de servidores web pueden creer conveniente configurar un servidor de modo que una hoja de estilo se aplique a un grupo de páginas. El encabezado HTTP Link tiene el mismo efecto que un elemento LINK con los mismos atributos y valores. Varios encabezados Link corresponderían a varios elementos LINK que aparecieran en el mismo orden. Por ejemplo,
Link: <http://www.acme.com/empresa.css>; REL=stylesheet
corresponde a:
<LINK rel="stylesheet" href="http://www.acme.com/empresa.css">
Es posible especificar varias hojas de estilo alternativas especificando varios encabezados Link, y a continuación utilizar el atributo rel para determinar el estilo por defecto.
En el ejemplo siguiente, se aplica "compacto" por defecto, ya que omite la palabra clave "alternate" del atributo rel.
Link: <compacto.css>; rel="stylesheet"; title="compacto" Link: <tgrandes.css>; rel="alternate stylesheet"; title="tipos grandes"
Esto debería funcionar cuando se envían documentos HTML por correo electrónico. Algunos agentes de correo pueden alterar el orden de los encabezados de [RFC822]. Para evitar que esto afecte al orden de cascada de las hojas de estilo especificadas con encabezados Link, los autores pueden usar la concatenación de encabezados para combinar varias apariciones del mismo campo de encabezado. Las comillas sólo se necesitan si los valores de los atributos contienen algún espacio en blanco. Utilice entidades SGML para hacer referencia a caracteres que no se permitan en encabezados de HTML o de correo electrónico, o que sean susceptibles de resultar afectados por el tránsito a lo largo de la red.
Los elementos LINK y META declarados implícitamente por encabezados HTTP aparecen antes de cualquier elemento explícito LINK o META en el HEAD del documento.
Insertar Editar Eliminar Registros con Función PHP MySQLi
Insertar Editar Eliminar Registros con Función PHP MySQLi a) Insertar Registros INSERT INTO tabla_name ( column1 , column2 ,...) VALUES (...
-
Insertar Editar Eliminar Registros con Función PHP MySQLi a) Insertar Registros INSERT INTO tabla_name ( column1 , column2 ,...) VALUES (...
-
Herencia en Java La herencia es un pilar importante de OOP (Programación Orientada a Objetos). Es el mecanismo en Java por el cual u...
-
Como crear un proyecto en Netbeans de Java debe instalar los archivos JDK y el editor de Netbeeans ,teniendo en cuenta que tipo de aplica...