Módulo 4 del
Curso IxDA BA 2012: Introducción al diseño y maquetación de interfaces web.
http://ixda.com.ar/?p=602
* Cómo se construye una página
* Marcado semántico, accesibilidad
* Uso apropiado de elementos más comunes
. Listas, links, imágenes, encabezados
. Elementos de bloque vs línea
. Árbol de elementos, jerarquía
* Doctype, validación
* URLs, la web como red de recursos
* CSS, separación de contenido y presentación
* Clases y IDs, selectores semánticos, cascada
* El modelo de caja, posicionamiento, elementos flotantes
* Fuentes, font stacks, tamaños, tipografías básicas, font-face, licencias
* Recorte de imágenes
* Errores más comunes
* Impacto en el posicionamiento en buscadores
5. ¿Qué es un tag?
HTML
Markup language: lenguaje de marcado
Tag: etiqueta
Hola, <strong>que tal</strong>
5
6. ¿Qué es un tag?
Puedo poner una etiqueta adentro de otra.
<p>Hola, <strong>que tal</strong></p>
6
7. ¿Qué es un tag?
Toda etiqueta que se abre tiene que cerrarse.
Siempre tiene que quedar una adentro de otra.
Bien:
<p>Hola, <strong>que tal</strong></p>
Mal:
<p>Hola, <strong>que tal</p></strong>
7
11. Title
Aparece en la barra de título y en los tabs.
11
12. Title
Es el link principal en los resultados de búsqueda.
12 http://www.socialpatterns.com/search-engine-optimization/writing-better-titles/
13. Title
13 http://www.deyalexander.com.au/publications/page-titles.html
14. Body
Lo que se ve dentro de la ventana del navegador
14
15. El validador
¿Cómo sé que lo estoy haciendo bien?
http://validator.w3.org
Nos asegura que:
• Los tags están bien tipeados
• Están correctamente anidados
• No falta ningún elemento requerido
• No hay errores de sintaxis
15 http://diveintomark.org/archives/2003/05/05/why_we_wont_help_you
16. El validador
<p>Hola, <strong>que tal</p></strong>
16
29. Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de
imagen
29
30. Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de URL de la imagen
imagen (gif, jpg, png)
30
31. Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de URL de la imagen Ancho y alto
imagen (gif, jpg, png)
31
32. Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de URL de la imagen Ancho y alto Texto alternativo
imagen (gif, jpg, png)
32
33. Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de URL de la imagen Ancho y alto Texto alternativo Cierre
imagen (gif, jpg, png)
33
43. Imágenes
Elemento con contenido
<p>Tags con contenido adentro</p>
Elemento sin contenido
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Al no tener texto, ni otro elemento adentro, el
elemento se cierra solo.
<tag />
43 http://www.w3.org/TR/xhtml-media-types/#C_2
44. Tags más comunes
●p
●img a abbr address area article aside audio b
base bb bdo blockquote body br button
●a canvas caption cite code col colgroup
command datagrid datalist dd del details
●h1, h2, hn… dialog dfn div dl dt em embed
●div
eventsource fieldset figure footer form h1
h2 h3 h4 h5 h6 head header hr html i
●ul, ol, li iframe img input ins kbd label legend li
link mark map menu meta meter nav
●strong, em, b, i noscript object ol optgroup option output p
param pre progress q rp rt samp script
●span section select small source span strong
style sub sup table tbody td textarea tfoot
●link
th thead time title tr ul var video
●head, title, body
44
66. Punto punto punto
<span class=”pt2”>·········
··························
···························
·····················</span>
66 http://edant.clarin.com/diario/2004/05/03/um/m-752951.htm
67. Punto punto punto
<span class=”pt2”>········· .botones {
·························· border-bottom: 1px dotted #969696;
··························· }
·····················</span>
67 http://edant.clarin.com/diario/2004/05/03/um/m-752951.htm
69. Énfasis
Fragmentos importantes
<p><strong>¡Urgente!</strong> Hoy se agotan los cupos.</p>
Cambio de tono, afecta significado.
<p>“Llamá un doctor <em>ahora</em>”</p>
Destaque visual, no necesariamente importante
<p><b>Sí, pero quién nos curará</b> del fuego sordo,
del fuego sin color que corre al anochecer...</p>
Fragmentos en otro idioma, términos técnicos.
<p>¡Me pareció ver un lindo <i>felis silvestris catus</i>!</p>
69 http://html5doctor.com/i-b-em-strong-element/
77. Beneficios del marcado
semántico
●SEO
●Accesibilidad
●Diseño cacheable
●Future proof!
Hace posible
●Rediseños más rápidos
●Responsive design
●Progressive enhancement
77
78. ¡El HTML ganará!
● Web apps
● ChromeOS
● Boot to Gecko
● HTML5 en Windows 8
● Mac OS Dashboard apps
● iPad, ePub
● Apache Cordova (PhoneGap)
78 http://platform.html5.org/
80. CSS
Hojas de estilo en cascada.
Se complementan con el HTML,
describiendo el diseño visual de una página.
80 http://www.popandshorty.bigcartel.com/product/you-are-the-css-to-my-html-button
88. Selectores
Redefinir tags de HTML
h1 {
color: #249999;
}
a{
color: #0071BC;
}
88
89. Selectores
Redefinir tags de HTML
h1 {
color: #249999;
}
a{
color: #0071BC;
}
89
90. Selectores
Todo se puede cambiar
<p>Para diseñar interfaces web <b>efectivas,
atractivas, y usables</b> Inicio...</p>
90
91. Selectores
Todo se puede cambiar
<p>Para diseñar interfaces web <b>efectivas,
atractivas, y usables</b> Inicio...</p>
b {
font-weight: normal;
background: #FFFF99;
}
91
92. Selectores
Class
Para botones
y similares, no me sirve
pegarle a todos los <a>!
a {
color: #FFFFFF;
background: #637580;
}
92
93. Selectores
Class
Class me permite
agrupar por tipo.
.button {
color: #FFFFFF;
background: #637580;
}
<a class="button">Ver posts anteriores</a>
93
95. Selectores
ID
Un elemento que es único en la página.
#intro {
color: #FFFFFF;
background: #28DBD5;
}
<p id="intro">IxDA es la Asociación de Diseño de Interacción.
Somos una red global dedicada a la práctica profesional...
<a href="info.html">Ver más</a>
</p>
95
97. Reglas de CSS
Anatomía de una regla de CSS.
selector {
atributo: valor;
}
97
98. Múltiples selectores
Una regla puede tener más de un selector.
.button {
background: #586875;
}
#footer {
background: #586875;
}
98
99. Múltiples selectores
Una regla puede tener más de un selector.
separados por comas
.button {
.button,
#footer {
background: #586875;
background: #586875;
}
}
#footer {
background: #586875;
}
99
100. Múltiples selectores
Una regla puede tener más de un selector.
separados por comas
.button {
.button,
#footer {
background: #586875;
background: #586875;
}
}
#footer {
background: #586875;
.button {
}
text-transform: uppercase;
}
100
115. Posición del fondo
background: #28DBD5 url(../img/intro.gif) no-repeat 350px -35px;
left top
115
116. Bloque vs Línea
<p>Para diseñar interfaces web
<b>efectivas, atractivas, y usables</b>!
Inicio: Miércoles 1 de junio...</p>
<p>Horario: de 19 a 22 hs.</p>
116 http://webdesignfromscratch.com/html-css/css-block-and-inline/
117. Bloque vs Línea
<p>Para diseñar interfaces web
<b>efectivas, atractivas, y usables</b>!
Inicio: Miércoles 1 de junio...</p>
<p>Horario: de 19 a 22 hs.</p>
Elemento
en línea
117 http://webdesignfromscratch.com/html-css/css-block-and-inline/
118. Bloque vs Línea
<p>Para diseñar interfaces web
<b>efectivas, atractivas, y usables</b>!
Inicio: Miércoles 1 de junio...</p>
<p>Horario: de 19 a 22 hs.</p>
Elemento
en línea
Elemento
de bloque
118 http://webdesignfromscratch.com/html-css/css-block-and-inline/
119. Elementos flotantes
<img src="float.jpg" alt="Taza" />
<p>Vestibulum ut magna...</p>
119 http://css.maxdesign.com.au/floatutorial/
120. Elementos flotantes
<img src="float.jpg" alt="Taza" />
<p>Vestibulum ut magna...</p>
img {
float: left;
width: 150px;
}
120 http://css.maxdesign.com.au/floatutorial/
121. Elementos flotantes
<img src="float.jpg" alt="Taza" />
<p>Vestibulum ut magna...</p>
img {
float: left;
width: 150px;
}
p {
float: left;
width: 150px;
}
121 http://css.maxdesign.com.au/floatutorial/
132. Clear usando overflow
Sin el footer, el
wrapper se colapsa,
porque los floats no
están en el flujo
normal del documento.
<div id="content">
<div id="main">...</div>
<div id="sidebar">...</div>
<div id="footer">...</div>
</div>
132 http://www.quirksmode.org/css/clearing.html
143. La cascada
Ante dos selectores iguales, el último tiene prioridad:
pisa al anterior.
...
h2 {
color: #ff0000;
}
...
h2 {
color: #249898;
}
...
143
144. La cascada
Muchas propiedades se heredan de los
elementos contenedores.
h2 {
font-family: Arial;
}
p {
font-family: Arial;
}
.fecha {
font-family: Arial;
}
144
145. La cascada
Muchas propiedades se heredan de los
elementos contenedores.
h2 {
font-family: Arial;
}
p {
font-family: Arial;
}
.fecha {
font-family: Arial;
}
body {
font-family: Arial;
}
145
146. La cascada
Cuando algo se repite, generalizar.
.texto {
font-family: Arial;
}
<p class="texto">Loren ipsum…</p>
<p class="texto">Dolor sit amet…</p>
<p class="texto">Consectetur adipiscing…</p>
146
147. La cascada
Cuando algo se repite, generalizar.
.texto {
font-family: Arial;
}
<p class="texto">Loren ipsum…</p>
<p class="texto">Dolor sit amet…</p>
<p class="texto">Consectetur adipiscing…</p>
<div class="texto">
<p>Loren ipsum…</p>
<p>Dolor sit amet…</p>
<p>Consectetur adipiscing…</p>
</div>
147
148. La cascada
Cuando algo se repite, generalizar.
148
149. La cascada
Cuando algo se repite, generalizar.
149
155. Mejora progresiva
El contenido, siempre accesible.
155 http://tinyurl.com/653gfd7
156. Esto no es un link
<a id="ToppageUC1_Mainmenubuild2_BemestingButton1_Lin kButton1"
class="MenuButton" href="javascript:__doPostBack('ToppageUC1$Mainmenu
build2$BemestingButton1$LinkButton1','')">Inicio</a>
156 http://slideshare.net/pazguille/estndares-web-con-chico-ui, https://twitter.com/danwrong/status/205300456547823616
157. Esto no es un link
<a id="ToppageUC1_Mainmenubuild2_BemestingButton1_Lin kButton1"
class="MenuButton" href="javascript:__doPostBack('ToppageUC1$Mainmenu
build2$BemestingButton1$LinkButton1','')">Inicio</a>
<p id="rep">Ver reputación</p>
<script>
$("#rep").bind("click", function () {
window.location = "http://ejemplo.com";
});
</script>
157 http://slideshare.net/pazguille/estndares-web-con-chico-ui, https://twitter.com/danwrong/status/205300456547823616
158. Esto no es un link
<a id="ToppageUC1_Mainmenubuild2_BemestingButton1_Lin kButton1"
class="MenuButton" href="javascript:__doPostBack('ToppageUC1$Mainmenu
build2$BemestingButton1$LinkButton1','')">Inicio</a>
<p id="rep">Ver reputación</p>
<script>
$("#rep").bind("click", function () {
window.location = "http://ejemplo.com";
});
</script>
<a href="https://twitter.com/#!mrazzari/status/205322525339693057">
158 http://slideshare.net/pazguille/estndares-web-con-chico-ui, https://twitter.com/danwrong/status/205300456547823616
159. Esto no es un link
<a id="ToppageUC1_Mainmenubuild2_BemestingButton1_Lin kButton1"
class="MenuButton" href="javascript:__doPostBack('ToppageUC1$Mainmenu
build2$BemestingButton1$LinkButton1','')">Inicio</a>
<p id="rep">Ver reputación</p>
<script>
$("#rep").bind("click", function () {
window.location = "http://ejemplo.com";
});
</script>
<a href="https://twitter.com/#!mrazzari/status/205322525339693057">
159 http://slideshare.net/pazguille/estndares-web-con-chico-ui, https://twitter.com/danwrong/status/205300456547823616
160. Mejora progresiva
<a href="javascript:window.open('index.htm','popup','width=300,height=400');">
Abrir popup muy mal
</a>
<a href="#" onClick="window.open('index.htm','popup','width=300,height=400')">
También mal
</a>
Está roto para:
● Usuarios sin JS
● Buscadores
● Agregar a favoritos
● Abrir en otro tab / ventana
● Ver link en barra de estado
● Verificadores de links
160 http://www.nosolousabilidad.com/articulos/popups_javascript.htm
161. Mejora progresiva
<a href="index.htm" target="popup" onClick="window.open('index.htm', 'popup',
'width=300,height=400'); return false;">
Un poco mejor
</a>
161 http://www.nosolousabilidad.com/articulos/popups_javascript.htm
162. Mejora progresiva
<a href="index.htm" target="popup" onClick="window.open('index.htm', 'popup',
'width=300,height=400'); return false;">
Un poco mejor
</a>
<a href="index.htm" target="popup" onClick="window.open(this.href, this.target,
'width=300,height=400'); return false;">
Mucho mejor!
</a>
162 http://www.nosolousabilidad.com/articulos/popups_javascript.htm
164. Mejora progresiva
Aceptar las diferencias.
Navegador moderno
vs.
Internet Explorer 7
164
165. Mejora progresiva
Polyfills: JavaScripts que dan funcionalidad a
navegadores que no la soportan nativamente.
Ejemplo: CSS3 multi column
165 https://github.com/Modernizr/Modernizr/wiki/HTML5-Cross-browser-Polyfills
166. Como pedir ayuda
● Validar el código
● Lista de correo: http://ovillo.org
● Enviar un link a la página con problemas
(es mejor que pegar código en un mail). “Testcase”.
● Google! (Alguien ya tuvo tu mismo problema)
● FAQs
http://mezzoblue.com/css/cribsheet
http://css-discuss.incutio.com
166
167. Como evaluar qué es bueno
Antes de copiar de la web un fragmento de código,
script o plugin...
● Validarlo
● Testearlo en nuestros browsers objetivo
● CSS y JS no entremezclados con el HTML
● Escalable (text zoom)
● Usa el framework o librería que ya usás
● Si hay <a>, que apunten a una URL
● Puedo tabular de un link a otro
● El código parece prolijo (comentado, identado)
167