Download Document

Document related concepts
no text concepts found
Transcript
Maquetado
Diseño de interfaces y maquetado web
Manuel Razzari
http://convistaalmar.com.ar
http://creativecommons.org/licenses/by/2.5/ar/
¿Qué es una página web?
2
¿Qué es una página web?
3
¿Qué es una página web?
4
¿Qué es un tag?
HTML
Markup language: lenguaje de marcado
Tag: etiqueta
Hola, <strong>que tal</strong>
5
¿Qué es un tag?
Puedo poner una etiqueta adentro de otra.
<p>Hola, <strong>que tal</strong></p>
6
¿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
Árbol de elementos
8
Doctype
Nos dice que tipo de documento es y su versión.
9
Head
Información acerca de la página.
10
Title
Aparece en la barra de título y en los tabs.
11
Title
Es el link principal en los resultados de búsqueda.
12
http://www.socialpatterns.com/search-engine-optimization/writing-better-titles/
Title
13
http://www.deyalexander.com.au/publications/page-titles.html
Body
Lo que se ve dentro de la ventana del navegador
14
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
El validador
<p>Hola, <strong>que tal</p></strong>
16
Links
HTML
Markup Language
17
Links
HTML
HyperText Markup Language
pagina2.html
foto.jpg
pagina1.html
etc.
18
Links
Link entre dos páginas.
a: ancla
href: referencia hipertextual
pagina1.html
19
http://glyphobet.net/blog/essay/206
Links
Link entre dos páginas.
a: ancla
href: referencia hipertextual
pagina1.html
20
http://glyphobet.net/blog/essay/206
Links
Link entre dos páginas.
a: ancla
href: referencia hipertextual
pagina1.html
21
http://glyphobet.net/blog/essay/206
Links
Link entre dos páginas.
a: ancla
href: referencia hipertextual
pagina1.html
22
http://glyphobet.net/blog/essay/206
pagina2.html
Atributos
<a href="pagina2.html">ir a página 2</a>
nombre
23
valor
URLs
URL absoluta:
<a href="http://www.lanacion.com.ar/espectaculos/">Espectáculos</a>
24
URLs
URLs relativas
<a href="pagina2.html">ir a página 2</a>
<a href="fotos/pagina2.html">ver foto</a>
25
Imágenes
No sólo linkear a otro recurso, sino incluirlo.
<a href="fotos/foto.jpg">ver foto</a>
26
Imágenes
No sólo linkear a otro recurso, sino incluirlo.
<a href="fotos/foto.jpg">ver foto</a>
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
27
Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
28
Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de
imagen
29
Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de
imagen
30
URL de la imagen
(gif, jpg, png)
Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de
imagen
31
URL de la imagen
(gif, jpg, png)
Ancho y alto
Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de
imagen
32
URL de la imagen
(gif, jpg, png)
Ancho y alto
Texto alternativo
Imágenes
<img src="fotos/foto.jpg" width="100" height="150" alt="Puesta de sol" />
Tag de
imagen
33
URL de la imagen
(gif, jpg, png)
Ancho y alto
Texto alternativo
Cierre
Imágenes
¿Cómo ve Google una imagen?
34
Imágenes
¿Cómo ve Google una imagen?
No entiende nada.
35
Imágenes
36
Imágenes
37
Imágenes
38
Imágenes
39
http://tinyurl.com/alt-decision-tree
http://webaim.org/techniques/alttext/
Imágenes
Decoración
alt=""
Mejor: CSS!
40
http://tinyurl.com/alt-decision-tree
http://webaim.org/techniques/alttext/
Imágenes
Decoración
alt=""
Mejor: CSS!
Contenido
(información
o funcional)
alt="texto
breve"
41
http://tinyurl.com/alt-decision-tree
http://webaim.org/techniques/alttext/
Imágenes
Decoración
alt=""
Mejor: CSS!
Contenido
(información
o funcional)
alt="texto
breve"
Información
redundante
alt=""
42
http://tinyurl.com/alt-decision-tree
http://webaim.org/techniques/alttext/
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 tag
se cierra solo.
<tag />
43
http://www.w3.org/TR/xhtml-media-types/#C_2
Tags más comunes
p
●img
●a
●h1, h2, hn…
●div
●ul, ol, li
●strong, em, b, i
●span
●link
●head, title, body
●
44
a abbr address area article aside audio b
base bb bdo blockquote body br button
canvas caption cite code col colgroup
command datagrid datalist dd del details
dialog
dfn
div
dl
dt
em
embed
eventsource fieldset figure footer form h1
h2 h3 h4 h5 h6 head header hr html i
iframe img input ins kbd label legend li
link mark map menu meta meter nav
noscript object ol optgroup option output p
param pre progress q rp rt samp script
section select small source span strong
style sub sup table tbody td textarea tfoot
th thead time title tr ul var video
Encabezados
45
Encabezados
46
Encabezados
47
Encabezados
48
http://www.456bereastreet.com/archive/200901/headings_heading_hierarchy_and_document_outlines/
Encabezados
49
http://tinyurl.com/3vlphez
Encabezados
!!!
50
http://tinyurl.com/3vlphez
Encabezados
Generación automática de índice
51
http://fuelyourcoding.com/scripts/toc/
Encabezados
52
http://www.youtube.com/watch?v=AmUPhEVWu_E
Encabezados
:-(
53
http://www.viaresto.clarin.com/
Saltos de línea
54
Listas
55
Listas
Viñetas con imágenes
56
Listas
Lista con links: navegación
57
http://css.maxdesign.com.au/
Listas
Menúes, tabs
58
http://www.alistapart.com/articles/taminglists/, http://www.alistapart.com/articles/slidingdoors/
Listas anidadas
59
http://www.htmldog.com/articles/suckerfish/
Listas
60
http://www.lanacion.com.ar
Listas
61
http://www.lanacion.com.ar
Listas
[...]
62
http://www.lanacion.com.ar
Listas
<ul>
Unordered list.
<ol>
Ordered list.
63
http://javirecetas.com/bizcocho-de-vainilla
Listas
*
*
*
*
Esto<br />
No<br />
Está<br />
Bien<br />
1. Esto<br />
2. Mucho<br />
3. Menos<br />
64
<ul>
<li>Esto</li>
<li>Es</li>
<li>Bueno</li>
</ul>
<ol>
<li>También</li>
<li>Bueno</li>
<li>Esto</li>
</ol>
Punto punto punto
65
http://edant.clarin.com/diario/2004/05/03/um/m-752951.htm
Punto punto punto
<span class="pt2">·········
··························
···························
·····················</span>
66
http://edant.clarin.com/diario/2004/05/03/um/m-752951.htm
Punto punto punto
<span class="pt2">·········
··························
···························
·····················</span>
67
http://edant.clarin.com/diario/2004/05/03/um/m-752951.htm
.botones {
border-bottom: 1px dotted #969696;
}
É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>
68
http://html5doctor.com/i-b-em-strong-element/
Etiquetas genéricas
<div>...</div>: contenedor genérico
69
Etiquetas genéricas
<div>...</div>: contenedor genérico
70
Etiquetas genéricas
<div>...</div>: contenedor genérico
71
Etiquetas genéricas
<div>...</div>: contenedor genérico
72
Etiquetas genéricas
<div>...</div>: contenedor genérico
73
Etiquetas genéricas
<span>...</span>: fragmento genérico
<p>José López, abogado.
Tel: <span class="tel">54 11 50227763</span>
</p>
José López, abogado.
Tel:
74
☎ 54 11 50227763
Etiquetas genéricas
<span>...</span>: fragmento genérico
<p>José López, abogado.
class="tel">
Tel: <span class="tel">54
11 50227763</span>
<span class="type">Home</span>
</p>
54 11 50227763
</span>
</p>
José López, abogado.
Tel:
75
☎ 54 11 50227763
⌂
Beneficios del marcado
semántico
SEO
●Accesibilidad
●Diseño cacheable
●Future proof!
●
Hace posible
●Rediseños más rápidos
●Responsive design
●Progressive enhancement
76
¡El HTML ganará!
77
●
Web apps
●
La nube, ChromeOS
●
HTML5 en Windows 8
●
iPad, ePub
http://platform.html5.org/
CSS
Hojas de estilo en cascada.
Se complementan con el HTML,
describiendo el diseño visual de una página.
78
CSS Zen Garden
79 http://www.mezzoblue.com/zengarden/alldesigns/
Múltiples medios
80 http://www.raoulwallenberg.net/
Múltiples dispositivos
81
http://www.alistapart.com/articles/responsive-web-design/
Incluir el CSS
Elemento link
<link rel="stylesheet" href="css/style.css" />
82
Incluir el CSS
Elemento link
<link rel="stylesheet" href="css/style.css" />
Print CSS
<link rel="stylesheet" href="css/style.css" media="print" />
Media queries - “responsive design”
<link rel="stylesheet" href="css/720.css"
media="screen and (min-width: 720px)" />
83
HTML base
84
Maquetado de ejemplo en http://pub.cvam.com.ar/ixda/2011/maquetado
85
Selectores
Redefinir tags de HTML
h1 {
color: #249999;
}
a{
color: #0071BC;
}
86
Selectores
Redefinir tags de HTML
h1 {
color: #249999;
}
a{
color: #0071BC;
}
87
Selectores
Todo se puede cambiar
<p>Para diseñar interfaces web <b>efectivas,
atractivas, y usables</b> Inicio...</p>
88
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;
}
89
Selectores
Class
Para botones
y similares, no me sirve
pegarle a todos los <a>!
a {
color: #FFFFFF;
background: #637580;
}
90
Selectores
Class
Class me permite
agrupar por tipo.
.button {
color: #FFFFFF;
background: #637580;
}
<a class="button">Ver posts anteriores</a>
91
Selectores
Clases semánticos, no descriptivos
.gris_chico {
color: #CCCCCC;
font-size: 80%;
}
.fecha {
color: #CCCCCC;
font-size: 80%;
}
92
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>
93
Selectores
ID
94
Reglas de CSS
Anatomía de una regla de CSS.
selector {
atributo: valor;
}
95
Múltiples selectores
Una regla puede tener más de un selector.
.button {
background: #586875;
}
#footer {
background: #586875;
}
96
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;
}
97
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;
}
98
Modelo de caja
99 http://www.redmelon.net/tstme/box_model/
Modelo de caja
#intro { … }
100
Bordes
border: 1px solid #24BCB7;
101
Márgenes
margin: 1em;
102
Márgenes
margin: 1em;
103
Márgenes
margin: 0 0 1em 0;
104
Color de fondo
background: #28DBD5;
105
Color de fondo
background: #28DBD5;
106
Relleno
padding: 10px;
107
Relleno
padding: 10px 240px 10px 10px;
top right bottom left “trouble”
108
Relleno
padding: 10px 240px 10px 10px;
top right bottom left “trouble”
109
Imagen de fondo
background: #28DBD5 url(../img/intro.gif);
intro.gif
110
Imagen de fondo
background: #28DBD5 url(../img/intro.gif);
intro.gif
111
Fondo repetido
background: #28DBD5 url(../img/intro.gif) no-repeat;
opciones: repeat, repeat-x, repeat-y
112
Posición del fondo
background: #28DBD5 url(../img/intro.gif) no-repeat 350px -35px;
left
top
113
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>
114
http://webdesignfromscratch.com/html-css/css-block-and-inline/
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
115
http://webdesignfromscratch.com/html-css/css-block-and-inline/
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
116
http://webdesignfromscratch.com/html-css/css-block-and-inline/
Elementos flotantes
<img src=”float.jpg” alt=”Taza” />
<p>Vestibulum ut magna...</p>
117
http://css.maxdesign.com.au/floatutorial/
Elementos flotantes
<img src=”float.jpg” alt=”Taza” />
<p>Vestibulum ut magna...</p>
img {
float: left;
width: 150px;
}
118
http://css.maxdesign.com.au/floatutorial/
Elementos flotantes
<img src=”float.jpg” alt=”Taza” />
<p>Vestibulum ut magna...</p>
img {
float: left;
width: 150px;
}
p {
float: left;
width: 150px;
}
119
http://css.maxdesign.com.au/floatutorial/
<div id="main">...</div>
<div id="sidebar">...</div>
<div id="footer">...</div>
120
#main {
...
}
#sidebar {
...
}
#footer {
...
}
121
#main {
float: left;
}
#sidebar {
float: left;
}
#footer {
...
}
122
#main {
float: left;
}
#sidebar {
float: left;
}
#footer {
clear: both;
}
123
#main {
float: left;
margin-right: 55px;
}
#sidebar {
float: left;
}
#footer {
clear: both;
}
124
Técnica de “faux columns”
125
http://www.alistapart.com/articles/fauxcolumns/
Técnica de “faux columns”
#sidebar {
background: #f2f2f2;
}
:(
126
http://www.alistapart.com/articles/fauxcolumns/
Técnica de “faux columns”
wrapper
<div id="content">
<div id="main">...</div>
<div id="sidebar">...</div>
<div id="footer">...</div>
</div>
127
http://www.alistapart.com/articles/fauxcolumns/
Técnica de “faux columns”
content.gif
#content {
background:
url(../img/content.gif);
}
wrapper
<div id="content">
<div id="main">...</div>
<div id="sidebar">...</div>
<div id="footer">...</div>
</div>
128 http://www.alistapart.com/articles/fauxcolumns/
Clear usando overflow
#footer {
clear: both;
}
<div id="content">
<div id="main">...</div>
<div id="sidebar">...</div>
<div id="footer">...</div>
</div>
129 http://www.quirksmode.org/css/clearing.html
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>
130 http://www.quirksmode.org/css/clearing.html
Clear usando overflow
O bien hidden
#content {
overflow: auto;
width: 100%;
}
<div id="content">
<div id="main">...</div>
<div id="sidebar">...</div>
</div>
131 http://www.quirksmode.org/css/clearing.html
Posicionamiento
132
Relativo
#intro_more {
position: relative;
}
133
Relativo
#intro_more {
position: relative;
top: 40px;
left: -50px;
}
134
Absoluto
#intro_more {
position: absolute;
top: 0;
left: 0;
}
135
Absoluto
#intro_more {
position: absolute;
top: 0;
left: 0;
}
136
#intro {
position: relative;
}
Absoluto
#intro_more {
position: absolute;
top: 0; 12px;
bottom:
left: 0;
right:
20px;
}
137
#intro {
position: relative;
}
Fijo
#intro_more {
position: fixed;
bottom: 12px;
right: 20px;
}
138
Fijo
#intro_more {
position: fixed;
bottom: 12px;
right: 20px;
}
139
Fijo
#intro_more {
position: fixed;
bottom: 12px;
right: 20px;
}
140
La cascada
Ante dos selectores iguales, el último tiene prioridad:
pisa al anterior.
...
h2 {
color: #ff0000;
}
...
h2 {
...
141
color: #249898;
}
La cascada
Muchas propiedades se heredan de los
elementos contenedores.
h2 {
p {
font-family: Arial;
}
font-family: Arial;
}
.fecha {
font-family: Arial;
}
142
La cascada
Muchas propiedades se heredan de los
elementos contenedores.
h2 {
p {
font-family: Arial;
}
font-family: Arial;
}
.fecha {
font-family: Arial;
}
body {
font-family: Arial;
}
143
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>
144
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>
145
La cascada
Especificidad, selectores contextuales.
a {
font-family: Arial;
color: blue;
}
#mainMenu a {
color: green;
background: url
("../img/mainmenu.gif")
repeat-x;
border: 1px solid #D7D8D9;
display: block;
padding: 0 14px;
text-decoration: none;
}
146
http://librosweb.es/css/capitulo2/selectores_basicos.html
Tamaño de tipografías
body {
font-size: 13px;
*font-size: small;
}
h2 {
p {
/* IE <= 7 */
font-size: 160%;
}
/* nada! hereda de body*/
}
.fecha {
font-size: 80%;
}
147
http://developer.yahoo.com/yui/3/examples/cssfonts/cssfonts-size.html
Pila de tipografías
“Font stack”
body {
font-family: Cambria, Georgia, Times, “Times New Roman”, serif;
}
Cambria
Georgia
Times
148
¿Qué tipografías puedo usar?
149
http://www.codestyle.org/css/font-family/
¿Qué tipografías puedo usar?
¡Cualquiera!
Elegir una que tenga licencia @font-face.
150
●
http://Typekit.com (Din, Futura, Meta, Trajan, Dax)
●
http://Webfonts.fonts.com (Helvetica, Frutiger, Univers!)
●
http://Webtype.com (Interstate, Gill Sans)
●
http://Fontsquirrel.com (open source / free / custom)
●
http://Google.com/webfonts (open source)
Mejora progresiva
El contenido, siempre accesible.
151
http://tinyurl.com/653gfd7
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
● Validación
152
http://www.nosolousabilidad.com/articulos/popups_javascript.htm
Mejora progresiva
<a href="index.htm" target="popup" onClick="window.open('index.htm', 'popup',
'width=300,height=400'); return false;">
Un poco mejor
</a>
153
http://www.nosolousabilidad.com/articulos/popups_javascript.htm
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>
154
http://www.nosolousabilidad.com/articulos/popups_javascript.htm
Mejora progresiva
<a href="index.html" class="pop-me-up">Mejorísimo</a>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.5.1/jquery.js"></script>
<script src="js/funciones.js"></script>
// Funciones.js
jQuery(function($) {
$('.pop-me-up').click(function(e){
window.open($(this).attr("href"), 'popup', 'width=300,height=400');
return false;
});
});
155
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
156
Como evaluar qué es bueno
Antes de copiar de la web un fragmento de código,
script o plugin...
157
●
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)
Herramientas
●
Firebug
http://getfirebug.com/whatisfirebug
●
Web developer extension
https://addons.mozilla.org/en-US/firefox/addon/web-developer/
●
Screen calipers
http://www.iconico.com/caliper/skins.aspx
●
IE Collection
http://utilu.com/IECollection/
●
SelectOracle
http://tux.theopalgroup.com/cgi-bin/css3explainer/selectoracle.py
158