2010-01-29 11 views

Respuesta

37

caminos CSS son siempre (excepto cuando IE6 está libre de errores y estúpida e intenta cargar .htc archivos especificado en CSS behavior atributos relativos al documento) relativo a la hoja de estilos en sí y no dependen de la ubicación HTML. Para otras cosas, <base> afectará el directorio actual percibido del HTML como si el archivo estuviera ubicado en el directorio definido por base. En consecuencia, afecta cosas como location.href=...;. Por cierto, los estilos en línea y la información de estilo en el elemento <style> se cargan en relación con la ubicación del documento. Aquellos se ven afectados por la etiqueta <base>, por supuesto.

+0

a fondo y concise.Thanks. –

12

La etiqueta base solo es respetada por los enlaces relativos dentro del documento HTML en sí.

Sin embargo, hay un error específico de IE6 que realmente debe tener en cuenta al usar la etiqueta <base> en HTML (no en XHTML). La etiqueta <base> está en HTML documentado como no tener una etiqueta final </base>, pero IE6 incorrectamente asumió que la verdadera lo que provocará que todo el contenido después la etiqueta <base> se coloca como niño de la etiqueta <base> en su árbol DOM HTML . Esto puede causar a primera vista problemas inexplicables en Javascript/jQuery/CSS, es decir, los elementos son completamente inalcanzables en selecciones específicas (por ejemplo, html>body) hasta que descubra que en realidad hay un base en el medio.

Una solución normal de IE6 está utilizando comentarios condicionales incluir la etiqueta final:

<base href="http://example.com/"><!--[if lte IE 6]></base><![endif]--> 
+0

+1 para la aclaración IE6. –

+0

¿Hay alguna razón para no hacer ? –

+1

@Marcus: no es válido para HTML4 (aunque los navegadores lo aceptan). Pero en HTML5 puedes hacerlo perfectamente. – BalusC

Cuestiones relacionadas