Académique Documents
Professionnel Documents
Culture Documents
1
Web Design Responsivo
Abstract
The growing variety of devices where the websites are shown (laptops, tablets, netbooks,
mobile phones, small screen desktops, giant screens iMacs, second monitor, etc.) makes
it impossible to develop a version of the same site for each existing device. Responsive
web design is one of the solutions for this problem where a site is developed so that its
elements adapt automatically, regardless of the device type and the use context.
Resumo
1.1. Introduo
Em um passado no muito distante, era necessrio ter um desktop para acessar a internet e
grande parte dos computadores usava resolues e navegadores muito semelhantes. Nessa
poca, bastava fazer um site que funcionasse no navegador Internet Explorer com resolu-
o mxima de 1024768 pixels e tudo estava resolvido. Existiam outras caractersticas
a serem consideradas, mas a grande maioria dos usurios de internet estava enquadrada
no mesmo grupo e, no mximo, fora desse grupo, haviam os usurios de Mozilla Firefox
[4].
Durante anos, o comum na Web era a existncia de sites com pginas de tamanhos
fixos e j haviam discusses sobre o desenvolvimento layouts como, por exemplo, se a
melhor largura de uma pgina seria 960 ou 980 pixels. As pginas eram feitas levando em
considerao apenas a resoluo mais comum e esquecendo as restantes. Os designs eram
001
copiados pixel a pixel do desenho original de um editor de imagens como o Photoshop,
por exemplo.
Desde ento o mundo evoluiu bastante e atualmente o acesso s pginas web atra-
vs dos mais diversos aparelhos como, por exemplo, a internet atravs de TVs de 50,
de celulares com telas de 2 at 5, de tablets de 6 at 11, de computadores com telas
na margem entre 11 a 26, entre outros dispositivos. Esta caracterstica demonstra que
a Web flexvel e adaptvel e que, consequentemente, um site pode ser visto de diversas
formas em diversos contextos, o que impossibilita saber de qual dispositivo o usurio ir
acessar um site.
O Web Design Responsivo (Responsive Web Design - RWD) permite sair das limi-
taes de um browser desktop e seu tamanho previsvel possibilitando construir pginas
com flexibilidade que suportem todo tamanho de tela, qualquer tipo de resoluo e inter-
faces com touch ou mouse [3]. A figura 1.1 mostra um exemplo de um site responsivo
exibido em vrios dispositivos diferentes. A mesma pgina do site mostrada em um
celular, em um tablet, em um monitor desktop e em um notebook; mas com layouts li-
geiramente diferentes. O contedo visualizado nos dispositivos o mesmo, o que difere
em cada um deles a disposio dos elementos do site organizados de modo a otimizar a
interface com o usurio.
1.2. Contextualizao
1.2.1. HTML e CSS
Muitos dos sistemas utilizados atualmente esto na web e so executados atravs de nave-
gadores, como redes sociais, portais, sistemas bancrios e etc. As interfaces das pginas
de sistemas ou de sites na web exibidas nos navegadores so feitas utilizando, basica-
mente, as linguagens HTML (HyperText Markup Language ou Linguagem de Marcao
de HiperTexto) e CSS (Cascading Style Sheets ou Folhas de Estilo em Cascata) [2].
O HTML uma linguagem de marcao de texto utilizada para estruturar con-
tedos como textos, imagens, vdeos ou udios em pginas web. Um documento HTML
possui marcadores que so comandos utilizados para definir a formatao dos elementos.
O CSS voltado para a aparncia da pgina (como cores, posicionamento ou tamanho de
elementos), ou seja, serve para formatar as caractersticas visuais de contedos j estrutu-
rados pelo HTML.
002
1.2.2. Tipos de Medidas em CSS
Para formatar tamanhos, o CSS utiliza medidas. Os principais tipos de medidas utilizados
em CSS so: pixels, pontos, porcentagens e ems.
O pixel a unidade de medida fixa comumente considerada como um ponto indivi-
svel na tela de exibio de um dispositivo, embora, atualmente existam vrios tamanhos
para um pixel. A unidade de medida ponto tradicionalmente utilizada para CSS de im-
presso. Um ponto igual a 1/72 polegadas. Assim como pixels, pontos so unidades de
tamanho fixo [3].
Uma unidade de medida em equivale ao tamanho atual da fonte do elemento-
pai. Por exemplo, se o tamanho da fonte do elemento (o corpo de um documento HTML,
por exemplo) 12px ento 1em igual a 12px. A unidade porcentagem muito parecida
com a unidade em, a principal diferena o fato de que o atual tamanho da fonte na
porcentagem igual a 100%. Por exemplo, se o tamanho do elemento 12px ento o
tamanho 100% [3].
As unidades de medidas utilizadas no design responsivo so as porcentagens e os
ems, pois so unidades relativas e escalveis podendo se adaptar e manter relaes de
tamanho com outros elementos de um documento.
1.2.3. Viewport
O viewport espao disponvel para a pgina no navegador. Ele depende do tamanho da
janela do navegador (maximizado ou restaurado) e desconsidera as barras de ferramenta,
rolagem, navegao e etc. [1]. A figura 1.2 mostra o viewport em diferentes dispositivos
e em diferentes disposies.
O viewport muda de acordo com o zoom. Quando o usurio faz um zoom em site,
os elementos ficam maiores e cabe menos informao na tela, ou seja, o espao disponvel
para a pgina fica menor (o viewport diminui). O menor ponto da tela que pode receber
uma cor chamado de Pixel Fsico (ou Device Pixel). E a medida escrita no cdigo CSS
chamada de CSS Pixel. Na maioria dos casos um pixel fsico igual a um CSS pixel,
at que seja feito um zoom [1]. Por exemplo, um zoom de 200% faz 300 CSS pixels serem
renderizados como 600 pixels fsicos (nmero de pixels fsicos = nmero de CSS pixels
zoom).
Para um site de 980 CSS pixels feito para desktop ser visto inteiro em uma tela
003
de 320 pixels fsicos de um smartphone o navegador faz um zoom out (diminui o zoom)
na pgina. Assim, o usurio pode ver uma miniatura da pgina e para v-la melhor
necessrio fazer um zoom in (aumentar o zoom).
O zoom em desktops e smartphones diferente. No desktop, o zoom aumenta o
tamanho dos elementos e renderiza novamente toda a pgina. O zoom em smartphones di-
mensiona apenas a parte visvel da pgina na tela e no altera o design. Para ver o restando
da pgina necessrio fazer um gesto de arrastar e soltar. Por isso, em smartphones
h dois viewports: o layout viewport e o visual viewport. O layout viewport toda a rea
disponvel da pgina. O visual viewport a parte da pgina visualizada na tela [1]. A
figura 1.3 ilustra os dois tipos de viewport.
004
referente a tcnicas cujos materiais utilizados se adaptam ao ambiente que interagem [5,
1]. No artigo Ehtan explica:
Ao invs de criar designs desconectados para cada um, do crescente nmero,
de dispositivos web, ns podemos trat-los como faces da mesma experincia. Podemos
criar uma experincia de visualizao ideal e embutir tecnologias padronizadas nos nos-
sos designs para faz-los no apenas mais flexveis, mas mais adaptados para a mdia
que os renderiza.
No decorrer do artigo, Ethan explica seus conceitos e sugestes (usando tecnologia
que j era existente poca de sua publicao) para que as pginas fossem projetadas
usando o que ele chamou de web design responsivo [5]. Para se conseguir implementar
um design responsivo necessrio fazer um design flexvel e adaptvel, que se ajuste s
caractersticas do navegador, do dispositivo e do contexto do usurio. As trs tecnologias
principais envolvidas nesse processo so:
1. layout fludo;
3. media queries.
005
mais avanados de navegadores mais capazes. Esse processo chamado de progressive
enhancement - melhoria progressiva da pgina [1].
Contudo, o desenvolvimento mobile first no precisa utilizar apenas restries.
Os dispositivos mveis possuem a capacidade de contextos diferentes. Enquanto, em ge-
ral, os desktops so usados nas mesmas situaes (em casa ou escritrio) os dispositivos
mveis podem facilmente ser usados em muitos outros contextos, como estar em: res-
taurantes, lojas, lugares pblicos e etc. Essa capacidade pode oferecer ao mobile novas
possibilidades que o desktop no tem como, por exemplo, tirar proveito da localizao do
usurio [1].
Figura 1.5. Frmula para converso de medida absoluta para medida relativa.
006
acesso internet, o layout fludo evita barras de rolagem e/ou contedos cortados (no
exibidos completamente) no navegador [3].
possvel utilizar qualquer tipo de medida relativa no RWD, mas h um consenso
obtido atravs de testes empricos: utilizar porcentagens para formatar tamanhos de layout
(larguras, margens, espaamentos e etc.) e usar ems para formatar tamanhos de fontes.
O cdigo C1 apresentado na figura 1.6 mostra um exemplo de cdigo CSS de um projeto
fludo onde h definies de tamanho de layout dos elementos HTML body e article
utilizando porcentagens. A tag body ocupa 100% da pgina e a article ocupa 75% com
margem interna igual a 10% da pgina.
body {
/* a pgina ocupa a largura de toda a tela */
width: 100%;
}
article {
/* o article ocupa 3/4 da pgina */
width: 75%;
/* e possui uma margem interna de 10% do tamanho do pai */
padding: 10%;
}
Figura 1.6. Cdigo C1 : CSS fludo de formatao de tamanho das tags body e article.
A figura 1.7 possui o cdigo CSS fludo C2 que formata o tamanho da fonte das
tags p, h1 e h2 utilizando a medida em. O clculo da fonte de cada uma dessas tags
foi feito levando em considerao que o corpo do documento HTML (com fonte padro
igual 16px) o elemento-pai de cada uma delas.
body {
/* possui um font-size implcito que equivale a 16px na maioria dos navegadores */
}
p{
/* pargrafos com tamanho de 18px / 16px = 1.125ems */
font-size: 1.125em;
}
h1 {
/* ttulo principal com o dobro da fonte base (32px / 16px = 2ems) */
font-size: 2em;
}
h2 {
/* ttulo secundrio 50% maior que o valor padro (24px / 16px = 1.5ems) */
font-size: 1.5em;
}
Figura 1.7. Cdigo C2 : CSS fludo de formatao de fonte das tags p, h1 e h2.
007
1.4.1. Flexibilidade entre Elementos
Os elementos de um site responsivo possuem medidas relativas e escalveis mantendo
relaes de tamanho com os outros no documento. Essa caracterstica garante que os
elementos se ajustem de forma harmnica em diferentes tamanhos na tela.
Para ilustrar melhor a flexibilidade entre elementos de um site responsivo, consi-
dere o cdigo HTML C3 (figura 1.8) e o seu cdigo CSS C4 (figura 1.9). A tag article pos-
sui fonte igual a 20px (16px * 1.25em), visto que, seu elemento-pai o body e o tamanho
padro da fonte em navegadores desktop 16px. As tags h1 e p tem como elemento-pai
a tag article, pois esta ltima imediatamente ascendente as duas primeiras. Assim, h1
e p possuem fonte igual a 40px (20px * 2em) e 18px (20px * 0.9em), respectivamente.
Qualquer alterao na medida de article ir afetar, indiretamente, as medidas de h1 e p.
<html>
<body>
<article>
<h1>Web Desing Responsivo</h1>
<p>Um novo jeito de pensar na web.</p>
</article>
</body>
</html>
article {
font-size: 1.25em; // 20 / 16 = 1.25
}
h1 {
font-size: 2em; // 40 / 20 = 2
}
p{
font-size: 0.9em; // 18 / 20 = 0.9
}
Figura 1.9. Cdigo C4 : CSS responsivo do cdigo HTML C3 utilizando a medida em.
008
clculo das medidas dos elementos ser relativo apenas ao elemento raiz. Modificando
o cdigo CSS C4 da figura 1.9 para utilizar a medida rem ao invs de em, o cdigo
fica igual ao da figura 1.10. Considerando que a fonte padro nos navegadores desktop
16px (ou seja, a fonte do elemento raiz 16px), ao aplicar a frmula de converso de
medida fixa para relativa (figura 1.5), as novas medidas das tags so: article possui 16px
* 1.25rem = 20px; h1 possui 16px * 2rem = 32px e; p possui 16px * 0.9rem = 14px.
article {
font-size: 1.25rem; // 20 / 16 = 1.25
}
h1 {
font-size: 2rem; // 32 / 16 = 2
}
p{
font-size: 0.9rem; // 14 / 16 = 0.9
}
img {
max-width: 100%;
}
A mesma regra utilizada no cdigo da figura 1.11 pode ser estendida a outros
tipos de mdia e recursos, como: iframe, object, embed e video. O CSS C7 na figura 1.12
apresenta uma mesma regra para tornar vrios tipos de mdia flexveis.
009
img,
iframe,
object,
embed,
video {
max-width: 100%;
}
Figura 1.12. Cdigo C7 : CSS para tornar vrios tipos mdia flexveis.
o layout distorcido. Alm disso, carregar uma imagem de alta resoluo para depois
diminu-la via cdigo pode deixar a visualizao da pgina muito custosa, pois necess-
rio carregar um arquivo com peso (tamanho em KB) maior do que seu tamanho (nmero
de pixels) apresentado no dispositivo.
Na tcnica utiliza no cdigo da figura 1.11 uma mesma imagem exibida em qual-
quer tamanho da tela, sendo renderizada de forma a se adaptar a resoluo do dispositivo
utilizado. Contudo, isso pode levar a problemas no desempenho do site acessado. Por
exemplo, um usurio mobile ter que esperar uma imagem grande (possivelmente feita
para usurio desktop) ser carregada para s depois ser redimensionada em sua pequena
tela e/ou conexo lenta.
O ideal ao apresentar imagens flexveis seria servir a imagem de tamanho mais
adequado para cada tamanho de tela ou velocidade de conexo do usurio. necessria a
existncia de vrias imagens, em resolues diferentes, para cada contexto. Assim, para
cada tela, pode ser carregada a imagem mais apropriada. Existem vrias solues para
lidar com imagens responsivas com alta performance, seguem algumas delas:
Riloadr [12];
Picturefill [14];
Foresight [17] e;
HISRC [16].
010
1.5.2. Nova Especificao HTML para Imagens: Picture
Uma outra maneira de fornecer imagens para layouts responsivos que estar disponvel
em um futuro muito prximo nos navegadores o elemento Picture. O picture foi cri-
ado por um grupo de desenvolvedores chamado Responsive Images Community Group
(RICG) [18] utilizando o princpio de que as fotos so o principal motivo da lentido no
carregamento de uma pgina.
Atravs de picture possvel declarar diversas fontes para uma nica imagem no
HTML e controlar qual deve ser apresentada utilizando media queries. As media queries
sero descritas na seo 1.6. Com essa nova tag possvel especificar a apresentao de
imagens diferentes de acordo com a largura e/ou altura da janela do navegador, orientao
do dispositivo, densidade de pixels, layout para a impresso e etc..
A figura 1.13 possui um trecho de cdigo HTML com um exemplo de utilizao
da tag picture. Esse cdigo especifica a escolha de um entre trs arquivos de uma imagem
de acordo com a largura do dispositivo usado. Para viewports que possurem pelo menos
45em de largura, ser carregada a imagem grande.jpg. Se o viewport possuir menos de
45em e, no mnimo, 18em de largura; ser exibida a imagem media.jpg. Para layouts
com menos de 18em de largura, ser exibida a imagem pequeno.jpg.
<picture>
<source media="(min-width: 45em)"srcset="grande.jpg">
<source media="(min-width: 18em)"srcset="media.jpg">
<img src="pequena.jpg"alt="descrio da imagem">
</picture>
011
Figura 1.14. Organizao dos componentes de um site com media queries.
.destaque {
width: 25%;
}
@media max-width: 400px
.destaque {
width: 100%;
}
}
012
width: largura da janela do navegador (possui verses max-width/min-width);
print: impressora;
projection: projetor;
screen: computador;
013
tv: TV.
O cdigo C10 (figura 1.16) possui duas mdia types que restringem a utilizao do
arquivo print_handheld_style.css a layouts visualizados no modo de impresso ou em
dispositivos mveis. No cdigo C11 (figura 1.17) as mdia types foram inseridas dentro do
CSS. Nesse exemplo, o CSS formata diferentes tamanhos de fonte para dois dispositivos
diferentes. A tag body possuir fonte igual 10 pixels se a pgina for exibida em modo de
impresso ou 13 pixels em um computador.
Figura 1.16. Cdigo C10 : media types para impresso e para dispositivo mvel.
@media print {
body {
font-size: 10pt;
}
}
@media screen {
body {
font-size: 13pt;
}
}
Figura 1.17. Cdigo C11 : media types para modo de impresso ou para tela de
computador.
Figura 1.18. Cdigo C13 : media querie com operadores screen e min-width.
014
1.6.2. Operadores Lgicos
Uma media querie podem utilizar expresses com operadores lgicos. Seguem os opera-
dores lgicos de media queries e suas descries:
only: a palavra only no exatamente um operador lgico, ela serve para esconder
media queries de agentes mais antigos que no as reconhecem.
Na figura 1.19 h um cdigo exemplo com uma media querie que utiliza alguns
operadores lgicos. Nesse cdigo, as regras do bloco da media querie sero utilizadas ape-
nas em computadores que no estejam no modo de impresso ou em dispositivos mveis.
A palavra only impede que as regras sejam aplicadas em navegadores que no reconhecem
a media querie.
1.6.3. Breakpoints
Breakpoints (pontos de interrupo) so pontos em que se deve utilizar estilos dife-
renciados para que a experincia do usurio seja a mais eficiente possvel ao navegar no
site de seu dispositivo. Os breakpoints so, basicamente, as media queries que delimi-
tam determinadas regras CSS a determinados tipos de dispositivos. A diviso do CSS
em breakpoints depende das caractersticas de cada projeto. No fcil fazer breakpoints
que atinjam todos os dispositivos existes, assim, o projeto deve buscar expecificar break-
points destinados aos dispositivos de seu escopo. Existem alguns modelos de breakpoints
propostos que ajudam a iniciar um projeto. Alguns desses modelos so listados a seguir:
Skeleton [10] e;
Bootstrap [7].
015
considerao o tamanho da tela e orientao (retrato ou paisagem) de vrios dispositivos.
Nesse framework no h a media querie orientation responsvel por verificar a orientao
do dispositivo, mas isso feito atravs do tamanho da largura da tela no momento da
orientao do dispositivo.
Bootstrap [7];
Wirefy [11];
Skeleton [10];
Foundation [9].
016
1.7.1. Framework Bootstrap
O Bootstrap um framework front-end de cdigo opensource (aberto) para criao de
sites responsivos que foi desenvolvido pela equipe do Twitter [20]. Ele possui dezenas de
componentes prontos para o desenvolvimento de sites, como plugins para jQuery. Esses
componentes facilitam a construo do site, mas, por outro, podem limitar o desenvolvi-
mento do site a utilizao dos componentes.
Esse framework utiliza um sistema de grids (figura 1.21 (A)), onde o site pode
ser divido em at 12 colunas de mesma largura. Os grids podem ser mesclados para for-
mar, por exemplo: 1 coluna de 12 grids, 2 colunas de 6 grids, 3 colunas de 4 grids e
etc. (figura 1.21 (B)). Os grids so responsivos e permitem definir conjuntos de grids
para resolues de telas diferentes (figura 1.21 (C)). Esses comportamentos so defini-
dos atravs das classes xs (dispositivos muito pequenos), sm (dispositivos pequenos), md
(dispositivos mdios) e lg (dispositivos grandes).
Referncias
[1] Lopes, S., A Web Mobile: programe para um mundo de muitos dispositivos, Casa
do Cdigo, 2013.
[2] Mazza, L., A Web Mobile: programe para um mundo de muitos dispositivos, Casa
Mazzado Cdigo, 2013.
017
[3] Zemel, T., Web Design Responsivo: pginas adaptveis para todos os dispositivos,
Casa Mazzado Cdigo, 2013.
[7] Bootstrap Bootstrap: The worlds most popular mobile-first and responsive front-
end framework, http://alistapart.com/article/responsive-web-design, acessado em
maro de 2015.
018