Fecha de publicación: 2007/05/06
Son tres las DTD de HTML: Strict, Transitional y Frameset.
Fecha de publicación: 2007/05/01
Actualizado 18 septiembre 2007
A veces para un elemento se define un fondo que cambia según el estado de dicho elemento.
¿Varios fondos suponen varias imágenes? No.
Pongamos por ejemplo un listado de enlaces en una barra de navegación vertical, en la que los enlaces de los elementos de lista (li) tienen tres fondos distintos:
Se pueden crear esos fondos por separado, de forma que al cargar la página solo se descargarán el primer y el tercer fondo. El del estado hover se descargará cuando algún enlace sufra ese estado, por lo que al pasar el puntero sobre un enlace con ese fondo para el estado hover, el fondo no aparecerá de inmediato.
O se puede crear una imagen que contenga al mismo tiempo todos los fondos. Antes había tres reglas CSS para definir los fondos de los enlaces de los elementos de lista, y ahora también, con la diferencia que se pondrá la misma imagen en las tres reglas. La diferencia estará en el posicionamiento del fondo. Con la propiedad background-position (o en background) se seleccionará que parte de la imagen se mostrará como fondo. ¿Como? Jugando con posiciones negativas.
La imagen utilizada:
![]()
Este es el XHMTL utilizado para la lista:
<ul>
<li><a href="#">Opción 1</a></li>
<li class="seleccionado"><a href="#">Opción 2</a></li>
<li><a href="#">Opción 3</a></li>
<li><a href="#">Opción 4</a></li>
<li><a href="#">Opción 5</a></li>
</ul>
Y este el CSS:
ul {
list-style:none;
width:160px;
}
ul li a {
display:block;
width:142px;
height:18px;
line-height:18px;
padding-left:18px;
text-decoration:none;
background:#D4DDED url(bg_css_sprites.gif) no-repeat 0 0;
color:#003596;
font-weight:bold;
font-family:verdana,arial,sans-serif;
font-size:12px;
}
ul li.seleccionado a {
background:#CCE5A2 url(bg_css_sprites.gif) no-repeat 0 -18px;
color:#4A601C;
}
ul li a:hover {
background:#F8A1BE url(bg_css_sprites.gif) no-repeat 0 -36px;
color:#762938;
}
Fecha de publicación: 2007/04/17
Actualizado 2011-03-10.
Lo primero que hay que saber es en que elementos puede utilizarse el atributo accesskey:
aareabuttoninputlabellegendtextareaExcepto a y area se trata de elementos de formulario.
Activando las teclas de acceso y pulsando la tecla de acceso (depende de cada navegador):
Pressing an access key assigned to an element gives focus to the element. The action that occurs when an element receives focus depends on the element. For example, when a user activates a link defined by the A element, the user agent generally follows the link. When a user activates a radio button, the user agent changes the value of the radio button. When the user activates a text field, it allows input, etc.
Se puede probar con la tecla de acceso 7. Enlace de prueba con la tecla de acceso 7.
Fecha de publicación: 2007/03/27
Para casos en los que el principio de un párrafo tenga importancia suficiente para ser un encabezado (h1-h6) en lugar de un mero strong.
¿Qué hacer para que un encabezado y un párrafo situado a continuación (p) aparezcan al mismo nivel (en la misma línea del texto)?
Definir una regla CSS con display: run-in;. Tiene la pega de funcionar solamente en Opera (probado en la versión 9.10), y parece ser que funciona de mala manera en Safari 1.3.2, y de muy mala manera en Internet Explorer 5.2 de Mac, lo que indica que su uso no es muy recomendable.
El código XHTML utilizado es el siguiente (yo he utilizado un h2, pero valen todos):
<h2>A run-in heading.</h2>
<p>And a paragraph of text that follows it.</p>
Aplicar la regla display con el valor run-in al encabezado, con el siguiente código CSS:
h2 {display: run-in;}
h2:after{content: ". ";} /*para no tener que incluir el punto en el encabezado*/
p {background:lime; margin-left:20px;
width:200px; display:block;}/*Para darle forma al ejemplo*/
Viendo el resultado la caja del encabezado queda insertada en la del párrafo, cosa que no ocurre si la regla aplicada al párrafo (la última de todas) se aplicase al encabezado.
Fecha de publicación: 2007/02/19
Cuando se quiere una viñeta personalizada para listas desordenadas en XHTML no hay más que crear la imagen para la viñeta, y después adaptar la hoja de estilo para hacer la personalización.
Primero hay que definir las reglas para la etiqueta ul:
ul {
padding-left: 0; /*Limpieza de márgenes (se puede cambiar)*/
margin-left: 36px; /*Indentado de la lista (se puede cambiar)*/
list-style-type: none; /*Quitar estilo de viñeta*/
}
Y después las reglas para la etiqueta li:
li {
background: url(imagen.gif) left center no-repeat;
margin-bottom: 10px;
padding-left: 15px;
}
Ver ejemplo de viñetas personalizadas
Si no dispones de una imagen o no se te ocurre como hacerla puedes encontrar un montón de imágenes en Bullet Madness (la imagen utilizadas en el ejemplo procede de ese sitio).
Fecha de publicación: 2007/02/18
Documento basado en Properly Using CSS and JavaScript in XHTML Documents (Mozilla Developer Center), distribuido bajo licencia Creative Commons Reconocimiento-Compartir igual.
Una de las principales confusiones con XHTML es considerarlo como una nueva versión de HTML, cuando en realidad se trata de XML.
XHTML debe llevar el tipo MIME text/xml o application/xhtml+xml.
XHTML tiene algunas peculiaridades:
<!CDATA...>.<!-- ... -->) no deben incluirse guiones dobles: –.Las etiquetas style y script dentro del propio documento XHTML pueden causar problemas cuando es tratado como XML en lugar de HTML.
El lenguaje Javascript suele contener caracteres que no pueden existir en XHTML fuera de las secciones CDATA:
<script type="text/javascript">
var i = 0;
while (++i < 10) { // ... }
</script>
El ejemplo anterior no es XHTML correcto, puesto que contiene el caracter <, que solo es permitido para el marcado en XHTML o XML.
Los desarrolladores que están familiarizados con HTML, habitualmente insertan esos estilos y scripts dentro de comentarios con el objetivo de ocultar sus contenidos a los navegadores que no los entiendan:
<style type="text/css">
<!--
body {background-color: blue; color: yellow;}
-->
</style>
<script type="text/javascript">
<!--
var i = 0;
var sum = 0;
for (i = 0; i < 10; ++i) { sum += i; }
alert('sum = ' + sum);
// -->
</script>
Resultados en diferentes navegadores:
Este código causará problemas, debido a los guiones dobles dentro de los comentarios:
<script type="text/javascript">
<!--
var i;
var sum = 0;
for (i = 10; i > 0; --i) { sum += i; }
// -->
</script>
La forma apropiada para introducir un script es dentro de secciones CDATA, pero esto puede causar problemas en navegadores antiguos que no son capaces de entender XML. Sin embargo, es posible combinar comentarios con secciones CDATA, para asegurar la compatibilidad hacia atrás:
<script type="text/javascript">
//<![CDATA[
var i = 0;
while (++i < 10) { // ... }
//]]>
</script>
La mejor forma de evitar el uso de estas etiquetas es la utilización de CSS y Javascript contenidos en archivos externos, de forma que no importará si el documento XHTML es servido como text/html, text/xml o application/xhtml+xml.
Las pautas de compatibilidad de XHTML 1.0 con HTML ayudarán a consegir documentos XHTML compatibles con navegadores antiguos sin soporte de XML.
Fecha de publicación: 2007/02/12
Cuando dentro de la etiqueta select hay muchos elementos option resulta muy interesante su categorización, pero con alguna etiqueta que permita que esas categorías no se puedan seleccionar. La solución es la etiqueta optgroup:
<select>
<optgroup label="Historia">
<option value ="e_antigua">Edad Antigua</option>
<option value ="e_media">Edad Media</option>
<option value ="e_moderna">Edad Moderna</option>
</optgroup>
<optgroup label="Geografía">
<option value ="europa">Europa</option>
<option value ="america">América</option>
<option value ="asia">Asia</option>
</optgroup>
</select>
Resultado del ejemplo:
Tiene dos atributos (aparte de los predeterminados), label, que es obligatorio, y deberá rellenarse con el texto que se quiere obtener, y disabled, cuyo valor será “disabled” (en XHTML todos los atributos han de tener un valor, por eso se repite).
Fecha de publicación: 2007/02/10
Se trata de etiquetas para marcar énfasis en las partes importantes de un texto.
strongDe las dos etiquetas es la que concede mayor importancia al texto contenido en ella.
Con frecuencia es confundida con la etiqueta b, que aparentemente conduce al mismo resultado (y escribiendo menos): tipografía en negrita.
La etiqueta strong es un estado lógico, y b es un estado físico. El estado lógico separa la presentación del contenido, por ello la presentación dependerá del navegador (strong suele representarse en negrita) o de la hoja de estilo CSS. Utilizando b no se da énfasis al texto, sino que se especifica que ese texto va en negrita: es un elemento de presentación visual.
Para conseguir un texto en negrita sin utilizar b se puede recurrir a las hojas de estilo:
.negrita {
font-weight:bold;
}
emDa menor énfasis que la etiqueta strong. Los navegadores suelen representar el texto que contiene en cursiva.
En la etiqueta em también hay lugar a la confusión, esta vez con la etiqueta i, que sirve para delimitar texto en cursiva, siendo, igual que la etiqueta b, un elemento de presentación.
Para conseguir texto en cursiva también se debe recurrir a las hojas de estilo:
.cursiva {
font-style: italic;
}
Ejemplo de uso de las etiquetas de énfasis y de los estilos visuales en negrita y cursiva (con las clases CSS especificadas anteriormente):
<p>
En este párrafo hay texto con
<em>poco énfasis</em>,
texto con <strong>bastante énfasis</strong>,
texto <span class="cursiva">en cursiva</span>
y texto <span class="negrita">en negrita</span>.
</p>
EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ABBR, and ACRONYM (HTML 4.01 W3C Recommendation)TT, I, B, BIG, SMALL, STRIKE, S, and U elements (HTML 4.01 W3C Recommendation)