2010-02-14 17 views
6

¿Cuál es el significado real de la separación del contenido y la presentación?¿Cuál es el significado real de la separación del contenido y la presentación?

¿Es solo para evitar el css en línea?

¿Significa que el diseño debería poder manipularse sin cambiar el código HTML?

¿Podemos realmente hacer cualquier cambio en el diseño de CSS solamente?

  • Si queremos cambiar el tamaño de imágenes a continuación, vamos a tener que ir en código HTML
  • Si wan para agregar una más salto de línea en el párrafo a continuación, de nuevo sin tener que ir a en el código HTML
  • Si queremos añadir un separador más en algún lugar, de nuevo vamos a tener que ir a en el código HTML

que X/etiqueta HTML que debemos evitar que nos e para mantener la separación del contenido y la presentación?

¿La separación de contenido y presentación también es útil para usuarios de accesibilidad/lectores de pantalla? ... y para programador/desarrollador/diseñador?

Respuesta

12

Al definir qué es contenido y presentación, vea su documento HTML como contenedor de datos. Luego pregúntese lo siguiente en cada elemento y atributo:

  • Qué representa el/elemento de atributo de una entidad significativa en mis datos?
    Por ejemplo, ¿las palabras entre <b> están en negrita simplemente con fines de visualización o si deseo agregar énfasis en esa información?

  • ¿Estoy usando el atributo/elemento adecuado para que la propiedad represente el tipo de datos que quiero representar?
    Como quiero enfatizar esa sección en particular, debería usar <em> (no significa cursiva, significa énfasis y puede hacerse en negrita) o <strong> dependiendo del nivel de énfasis deseado.

  • ¿Estoy utilizando el atributo/elemento solo para fines de visualización? En caso afirmativo, ¿se puede eliminar el elemento y diseñar el elemento padre con CSS?
    En ocasiones, una etiqueta de presentación simplemente puede reemplazarse por reglas de CSS en el elemento padre.En ese caso, la etiqueta de presentación debe eliminarse.

Después de hacerse estas tres simples preguntas, por lo general puede tomar una decisión bastante informada. Un ejemplo:

Código original: <label for="name"><b>Name:</b></label>

Comprobación de la etiqueta <b> ...

Qué representa el/elemento de atributo de una entidad significativa en mis datos?
No, la etiqueta no representa un nodo de datos. Está allí puramente para la presentación.

¿Estoy utilizando el atributo/elemento adecuado para que la propiedad represente el tipo de datos que quiero representar?
<b> se utiliza para la presentación de elementos en negrita.

¿Estoy utilizando el atributo/elemento solo para fines de visualización? En caso afirmativo, ¿se puede eliminar el elemento y diseñar el elemento padre con CSS?
Dado que <b> es de presentación y lo estoy usando para la presentación, sí. Y dado que el elemento <b> afecta a la totalidad de <label>, se puede quitar y aplicar el estilo al <label>.

Semántica El objetivo de HTML no es para simplificar el diseño y rediseño o para evitar un estilo en línea, sino para ayudar a un analizador de entender lo que representa etiqueta en particular en el documento. De esta manera, se pueden crear aplicaciones (es decir, motor de búsqueda) para decidir inteligentemente qué significa su contenido y clasificarlo en consecuencia.

Por lo tanto, tiene sentido utilizar la propiedad CSS content: para agregar comillas alrededor del texto ubicado en una etiqueta <q> (no tiene valor para los datos contenidos en su documento otra presentación), pero no tiene sentido el uso del mismo Propiedad de CSS para agregar un símbolo © en su pie de página, ya que tiene un valor en sus datos.

Lo mismo se aplica a los atributos. El uso del atributo width y height en una etiqueta <img> que representa un icono en el tamaño 16x16 tiene sentido semántico ya que es importante comprender el significado de la etiqueta <img> (un icono puede tener diferentes representaciones dependiendo del tamaño en que se muestre). El uso de los mismos atributos en una etiqueta <img> que representa una miniatura de una imagen más grande no lo hace.

A veces necesitará agregar elementos no semánticos para poder lograr la presentación deseada, pero por lo general son evitables.

No hay elementos incorrectos. Hay usos incorrectos de elementos particulares. <b> no se debe utilizar al agregar énfasis. <small> se debe utilizar para el texto legal, no para hacer texto más pequeño (consulte HTML5 - Section 4.6.4 para saber por qué), etc ... Todos los elementos tienen un escenario de uso particular y todos representan datos (menos elementos de presentación, pero sí tienen uso en algunos casos). No se deben dejar de lado elementos.

Los atributos son algo diferente.La mayoría de los atributos son de naturaleza presentacional. Los atributos como <img border> y <body fgcolor> rara vez tienen significado en los datos que está representando, por lo tanto, no debe usarlos (excepto en esos casos excepcionales).


Los motores de búsqueda son un buen ejemplo de por qué los documentos semánticos son tan importantes. Microformats son un conjunto predefinido de elementos y clases que puede usar para representar datos que los motores de búsqueda entenderán de cierta manera. The product price information in Google Searches es un ejemplo de semántica en el trabajo.

Al usar las reglas predefinidas en los estándares establecidos para almacenar información en su documento, los programas de terceros pueden entender lo que parece ser una pared de texto sin usar algoritmos heurísticos que pueden ser propensos a fallas. También ayuda a los lectores de pantalla y otras aplicaciones de accesibilidad a comprender más fácilmente el contexto en el que se presenta la información. También ayuda enormemente a la mantenibilidad de su marcado ya que todo está vinculado a una definición establecida.

5

El mejor ejemplo es probablemente el CSS Zen Garden.

El objetivo de este sitio es mostrar lo que es posible solo con el diseño basado en CSS, con una separación estricta del contenido del diseño. Las hojas de estilo aportadas por varios diseñadores gráficos se utilizan para cambiar la presentación visual of a single HTML file, produciendo cientos de diseños diferentes. El propio lenguaje de marcado HTML nunca cambia entre los diferentes diseños.

En cada página de diseño, tendría un enlace para ver el archivo CSS de ese diseño.

+0

pero sólo tiene imágenes de fondo. quiere decir que no deberíamos usar si queremos mantener la separación del contenido y la presentación –

+0

Todos los diseños en la galería CSS Zen Garden están usando el mismo archivo HTML, que puede ver aquí: http://www.csszengarden.com/ zengarden-sample.html. Nada se cambia entre cada diseño. Solo la referencia al archivo CSS correcto. Hay más de 200 diseños y la variación es drástica. –

+3

@Jitendra: No, no, no ... nadie dice que tenga que evitar una etiqueta en particular. El objetivo es ser sensato y lógico al respecto, y obtener una separación lo más limpia posible. CSS Zen es un excelente sitio de demostración, pero buena suerte tratando de obtener ese nivel de separación con una aplicación web. – slugster

1

Poner en línea saltos en ciertos puntos es inevitable, generalmente habrá cierta superposición de presentación y contenido. Sin embargo, siempre debes aspirar a la separación perfecta.

Tome el otro extremo: una página que contiene montones y montones de tablas que solo se utilizan con fines de diseño. Este es el anti-patrón definido que debe evitarse a toda costa. El contenido reproduce un segundo violín después del diseño aquí; a menudo no está en el orden correcto y, por lo tanto, apenas legible por máquina. El contenido no legible por máquina es malo para el acceso y malo para el ranking del motor de búsqueda de la página.

Al marcar el contenido sin preocuparse por la presentación, lo ante todo lo hace legible por máquina. Entonces, también está en condiciones de ofrecer el mismo contenido a diferentes clientes en diferentes formatos, por ejemplo, en una versión optimizada para dispositivos móviles. También puede cambiar la presentación fácilmente sin tener que meterse con los archivos HTML, digamos por un gran rediseño.

Otro beneficio que resulta natural al separar el contenido y la presentación (HTML - archivos CSS) es que tiene menos para escribir y menos para mantener, además sus páginas pueden tener un estilo consistente aplicado muy fácilmente. Contraste miles de estilos en línea contra una definición de estilo en un archivo CSS, que se aplica "naturalmente" a todos los elementos con el mismo "significado" (marcado).

Lo ideal es que su (X) HTML conste únicamente de un marcado semántico significativo y su CSS de estilos usando este marcado para sus selectores. En el mundo real, a menudo mezclarás clases e ID en tu marcado que no añaden ningún significado adicional, porque necesitas estos "ganchos" adicionales para dar estilo a todo lo que quieras. Pero incluso aquí hay una diferencia entre class="blue right-aligned" y class="contact-info secondary". Intente siempre agregar que significa al contenido, no al estilo. Equilibrar esto es todo un arte en sí mismo. :)

+0

+1 respuesta útil –

2

¿Cuál es el significado real de la separación del contenido y la presentación?

Es más bien una filosofía de diseño que algo concreto. En general, significa que debe preservar la semántica del contenido, piense en su contenido a partir de una información estructurada. Y eso también significa que debe mantener todos los detalles estéticos alejados de esta información estructurada.

se trata sólo significa evitar CSS en línea?

Como se mencionó anteriormente, los estilos en línea no tienen nada que ver con la semántica de su contenido y deben evitarse a toda costa. Pero no es solo eso.

se trata sólo de decir que si después de escribir HTML de acuerdo con el diseño de entonces, si a continuación, si queremos hacer ningún cambio en el diseño, entonces debería ser solamente con CSS, sin necesidad de html

Por desgracia, no siempre es posible alcanzar algunos objetivos estéticos concretos sin modificar el margen subyacente; CSS3 intenta que sea mejor abordar estos problemas.

¿Qué etiqueta X/HTML debemos evitar usar para mantener la separación del contenido y la presentación?

Buscar las etiquetas en desuso en la W3C HTML 4.01/XHTML 1.0 Reference

es la separación del contenido y la presentación también es útil para los usuarios de accesibilidad del lector/pantalla?

Surely. Por lo general, la mejor información estructurada sigue siendo legible incluso si ciertos navegadores representan los estilos incorrectamente (o no los representan en absoluto). Tal contenido también puede parecer más adecuado en los medios impresos (aunque se pueden aplicar estilos de impresión para lograr una estética aún mejor; una vez más, no tienen nada que ver con la semántica del contenido).

¿La separación del contenido y la presentación también es útil para el programador/desarrollador/diseñador?

Por supuesto. La separación del contenido y la presentación tiene sus raíces en la filosofía más general, la separación de las preocupaciones. Todos se benefician de la separación: el proveedor de contenido no tiene que ser un buen diseñador y viceversa.

+0

+1 respuesta útil –

Cuestiones relacionadas