Académique Documents
Professionnel Documents
Culture Documents
O CSS surgiu em Outubro de 1994, criado por Hakon Lie, que buscava facilitar o
desenvolvimento de sites, devido na poca esta atividade ser muito complexa.
Em 1995, o CSS1 foi criado pela W3C, ganhando muito destaque entre 1997 e 1999, a
partir dai ficou conhecido pelos programadores. Atualmente, encontra-se na verso CSS 3.
O CSS formata contedo de uma pgina em HTML. Esse contedo pode ser: imagem,
texto, vdeo, udio ou qualquer outro elemento criado.
O CSS pode ser trabalhado de trs formas:
Externas;
Incorporadas;
Inline.
1.2.1 EXTERNO
Ainda de acordo com o site, a sintaxe para declarar uma folha de estilo deste tipo
mostrada a seguir:
<!-- marcao HTML do documento -->
<div class="minha-classe">
<style rel="stylesheet" type="text/css" scoped="scoped">
/* regras de estilo */
</style>
<!-- marcao HTML dentro do div.minha-classe
As regras CSS sero aplicadas somente aqui -->
</div>
<!-- mais marcao HTML do documento -->
1.2.4 FOLHA DE ESTILO INLINE
Aplique um estilo inline, um incorporado e outro externo nas duas pginas com os seguintes
temas:
Loja de Roupa
Loja Pet
2. SELETORES NO CSS
Uma folha de estilo formada por uma ou mais regra CSS, sendo que cada regra
composta por trs partes: um seletor, uma propriedade e um valor. Portanto, sua sintaxe segue
conforme o cdigo abaixo:
seletor {
propriedade: valor;
}
Seletor: corresponde ao elemento HTML, sendo este ele identificado por uma tag ou
uma classe ou um ID;
Propriedade: corresponde ao atributo do elemento HTML ao qual ser aplicada a
regra;
Valor: corresponde a caracterstica assumida pela propriedade.
Abaixo segue um exemplo de sintaxe de criao de uma regra no CSS:
p{
color: red;
}
#Identificador: este tipo de seletor aplica regra no elemento com identificador. Ele
muito usado, contudo, seja cuidadoso ao usar seletores com identificador. Porm, tome
cuidado com a sua utilizao, pois este tipo de seletor rgido e no permitindo reuso.
Portanto, fica dica de sempre utiliza-lo com a precedncia do nome da tag. Abaixo
segue o exemplo da sua utilizao:
Forma Mais Comum:
#seletor{
width: 960px;
margin: auto;
}
Forma Otimizado
elemento#seletor{
width: 960px;
margin: auto;
}
Este tipo de seletor tem compatibilidade com os seguintes navegadores:
IE6 ou superior;
Firefox;
Chrome;
Safari;
Opera.
.classe: muito conhecido como seletor de classe, sendo que a diferena entre um
identificador e uma classe que, com a classe, voc pode selecionar vrios elementos.
Portanto, utilize seletor de classe quando voc necessitar aplicar uma regra a um grupo
de elementos. Abaixo segue um exemplo de sua utilizao:
.classe {
color: red;
}
Este tipo de seletor tem compatibilidade com os seguintes navegadores:
IE6 ou superior;
Firefox;
Chrome;
Safari;
Opera.
a[data-info~="texto"] {
border: 1px solid black;
}
Portanto, ser aplicado para o elementos especficos que contenha atributos com
algum valor da lista especificada no data-info de cada elemento.
Este tipo de seletor tem compatibilidade com os seguintes navegadores:
IE7 ou superior;
Firefox;
Chrome;
Safari;
Opera.
Elemento:hover: este tipo de seletor corresponde quando o mouse passa por cima do
elemento, e ele sofre aplicao da regra. Como por exemplo, o elemento p com
atributo id linha, vai mudar de cor para vermelho quando o mouse passar por cima:
p#linha:hover {
color: red;
}
Este tipo de seletor tem compatibilidade com os seguintes navegadores:
IE6 ou superior;
Firefox;
Chrome;
Safari;
Opera.
Elemento:focus: este tipo de seletor esteja focado pelo teclado, como links ou campos
de um formulrio. Como por exemplo, o elemento input com atributo id campo, vai
mudar de cor para vermelho quando ganhar o foco:
input#campo:focus {
color: red;
}
Este tipo de seletor tem compatibilidade com os seguintes navegadores:
IE6 ou superior;
Firefox;
Chrome;
Safari;
Opera.
Elemento:visited: este tipo de seletor corresponde quando um link foi visitado. Como
por exemplo, o elemento a com atributo id artigo, vai mudar de cor para vermelho
quando algum acessar o link:
a#artigo:visited {
color: red;
}
Este tipo de seletor tem compatibilidade com os seguintes navegadores:
IE6 ou superior;
Firefox;
Chrome;
Safari;
Opera.
Caso queira se aprofundar, consulte o arquivo CSS Referencial que consta neste material ou
acesse o site W3C.
LISTA DE EXERCCIOS
uma tcnica utilizada pelos os desenvolvedores para que o seu site esteja adaptvel
para qualquer resoluo, a sua adaptao est relacionada com a unidade de medida utilizvel.
As unidades de medidas pontos e pixels so que unidades de medida fixas e ems e
porcentagens, variveis, portanto, eles se adaptam e mantm relaes de tamanho com outros
elementos de um documento.
Portanto, segundo Trcio(2012):
Fica claro que usar pts ou pxs no o adequado para designs responsivos
(num primeiro momento, j que, com a prtica e/ou experincia e/ou
demanda do projeto, pode ser necessrio especificar alguns valores fixos em
determinadas situaes).
Ainda de acordo com Trcio(2012):
marcar unidades com porcento fornece uma exibio mais consistente e
acessvel para os visitantes. Quando as configuraes de exibio do cliente
se alteram, as medidas marcadas com % se alteram de maneira mais razovel,
permitindo que a legibilidade seja preservada, bem como a acessibilidade e o
design visual.
Agora com relao a fontes sempre utilizado a unidade de medida em.
Portanto, quando se fala em responsividade com relao a texto, voc dever utilizar
a seguinte unidade de medida em, sabendo-se que para converter o elemento alvo em pixels
para contexto em pixel utiliza-se a seguinte forma para clculo correto para gerar um site
responsivo: Resultado Final = Elemento Alvo / Contexto do Elemento Alvo. Ou seja:
Elemento Alvo. Elemento-alvo com a medida atual;
Contexto do Elemento Alvo. Tomando como base o elemento-pai;
Resultado Final. O valor relativo.
Para este exemplo, ser modificado a pgina e o CSS que est junto no material desta apostila.
Primeiramente, deve-se utilizar a meta tag viewport, pois ela responsvel exibir
pginas web feitas somente para desktop (no momento, a imensa maioria de todas elas)
ajustando. Deve-se seguir conforme cdigo abaixo:
<meta name="viewport" content="width=device-width,initial-scale=1">.
Agora, se voc pegar o elemento container, ele uma div, e portanto, no h um
elemento pai, portanto, pega-se a resoluo de 960px a unidade fixa do container e divide-se
pela resoluo, como no exemplo, a tela utilizada tinha 1366px, sendo isto dar um resultado
final de 70,27%.
Agora se pegar o elemento h1, ele tem como padro 32px para converter para
unidade de medida em, deve-se pegar o 32px e dividir pelo elemento pai que no caso o
padro do navegador(16px), sendo assim ter um valor de 2em.
Agora se pegar a margem do contedo com relao elemento pai container, voc
deve-se pegar o valor do elemento alvo(15px) e dividir pelo elemento pai(960px) e depois
multiplicar por 100, que dar um valor final de 1.5625%.
Como o Contexto de .content-main, que o elemento .content, no possui declarao
explcita de largura, preciso verificar o prximo elemento ascendente. No caso, o
.container. Este sim com declarao (prvia) de largura de 960px. Por isso, neste caso, o
Contexto ser de 960, portanto pega-se o valor do elemento alvo .content-main(593px) e
divide-se pelo elemento de contexto(960px) que dar o resultado de 61.7708%.
Ainda de acordo com o exemplo extrado do livro de Trcio(2012):
O elemento .hero (e seu descendente .brief), dentro de .content-main,
tambm precisa ter suas medidas convertidas. Algo interessante a se levar em
conta que o clculo da relatividade de .hero .brief 5 / 593 = 0.008431.
Contudo, apesar de esta ser uma cincia (pretensiosamente) exata, h muito
do fator humano envolvido. Portanto, quando estiver desenvolvendo grids
flexveis e algum resultado, apesar de preciso, no for do agrado, no h nada
demais em (caso isso seja responsabilidade sua) arredondar este valor.
Agora altere os outros elementos descendente do .content-main, conforme cdigo
abaixo:
.last-contents {
font-size: .75em; /* 12 / 16 */
}
.last-content-call {
float: left;
margin: 2.5295% 2.5295% 2.5295% 0; /* 15 / 593 (.content-main) */
width: 47.2175%; /* 280 / 593 */
}
.last-content-call .brief {
margin: 1.7857% 0; /* 5 / 280 */
}
Agora com a barra lateral, includo todos os seus descendentes, altere:
.content-sidebar {
background-color: #F0F0F0;
float: right;
padding: 1.0416%; /* 10 / 960 */
width: 33.5416%; /* 322 / 960 */
}
.main-nav ul {
list-style-type: none;
}
.main-nav li {
background-color: #F9F9F9;
float: left;
margin: 4.6583%; /* 15 / 322 (.content-sidebar) */
outline: 1px solid #DEDEDE;
text-align: center;
width: 40.3726%; /* 130 / 322 */
}
.main-nav a {
display: block;
padding: 7.6923%; /* 10 / 130 */
text-decoration: none;
}
E para finalizar, agora vem o rodap:
.main-footer {
background-color: #F0F0F0;
float:left;
font-size: .75em; /* 12 / 16 */
margin: 1.5625% 0; /* 15 / 960 */
padding: 1.5625%; /* 15 / 960 */
text-align: center;
width: 100%;
}
Dentro de uma pgina, h vrios elementos visuais(imagens) que devem ser ajustar em
conjunto com a resoluo da tela, para isto, utiliza-se o CSS. Ser feito um exemplo,
utilizando o exemplo do captulo anterior, portanto, adicione a linha abaixo no cdigo:
Agora tente modificar a resoluo da tela do navegador, voc ver que a imagem foi fixada
com o tamanho de 350px de largura. Para resolver, este problema basta somente um pouco de
CSS, ento acrescente o seguinte CSS no arquivo style.css:
img,
iframe,
object,
embed,
video {
height: auto;
max-width: 100%;
}
Agora voc ver que a imagem se ajusta automaticamente em 100% de acordo com o
container o qual est inserido a imagem.
Porm, h um grande dilema: uma imagem apresenta tamanho de Kb, Mb entre outros.
Quando voc visualiza esta imagem de um computador desktop com uma internet veloz
parece que o tamanho no seja o problema, porm quando voc visualiza de um dispositivo
mvel com uma resoluo menor e uma internet mais lenta, pode parecer um terror. Para isto,
h vrias tcnicas para imagens flexveis.
Riloadr
Ainda de acordo com o prprio autor, ele realmente possui muitas boas caractersticas. S
para citar algumas:
A ideia principal do Riloadr trocar o atributo src pelo atributo data-src. E com JavaScript,
possvel conseguir excelentes resultados:
<img data-src="cachorro.jpg">
<noscript>
<img src="img/small/cachorro.jpg">
</noscript>
jQuery Picture
Ele um plugin para jQuery(Tamanho de 2 KB), responsvel por deixar as imagens
responsivas. Ele utilizado com elemento <figure>, em conjunto alguns data-*), tambm
utilizado com elemento <picture>. Abaixo segue um exemplo:
<noscript>
</noscript>
</figure>
Aps isto, para inicializar o plugin, basta digitar o seguinte cdigo JQuery:
$(function(){
$('figure.responsive').picture();
})
Picturell
Ele uma abordagem de imagens responsivas. Porm, ele exige uma marcao diferente:
<div data-src="small.jpg"></div>
</div>
</div>
</div>
<noscript>
</div>
Adaptive Images
Algumas dicas para voc trabalhar com imagens de alta resoluo e no sobrecarregue a sua aplicao web,
sendo que Trcio cita Bradley:
Introduo
Media Type
uma recomendao da W3C(desde do CSS2) para especificao qual tipo de dispositivo ser aplicado as
regras de estilos(CSS), como por exemplo, se estiver utilizando uma TV para projetao do site, portanto, no
atributo media, que est contido na tag link(tag que liga o arquivo CSS com a pgina), deve-se especificar TV,
conforme demonstrado na figura abaixo:
Tambm possvel dentro de um mesmo arquivo CSS, voc criar vrias regras CSS para vrios dispositivos,
como ilustra o exemplo abaixo:
@media screen{
body{
color: red;
@media projection{
body{
color: blue;
Se voc observar o cdigo anterior, h duas regras de estilos para serem aplicadas em dois tipos de dispositivos,
um tela de computador(screen) e outra para projetores(projection).
Tambm poderia juntar duas mdias numa mesma regra, conforme ilustrado na figura abaixo:
color: blue;
Portanto, com o passar dos anos, os dispositivos foram evoluindo, e ai as Media Type no conseguiam mais
diferenciar os diferentes tipos de dispositivos, pois mesmo dispositivos menores tinham poder de renderizao
dos seus navegadores como se fossem navegadores de dispositivos maiores, porm a forma de trabalhar dos
dispositivos continuava diferente, ou seja, a resoluo de tela. Para resolver este problema, surge as Media
Queries.
Media Queries
uma recomendao da W3C(desde do 2012) para especificao qual tipo de dispositivo ser aplicado as
regras de estilos(CSS), como por exemplo, se estiver utilizando um Projetor, com largura mxima de 320px, para
projetao do site, portanto, no atributo media, que est contido na tag link(tag que liga o arquivo CSS com a
pgina), pode-se especificar conforme demonstrado na figura abaixo:
body{
color: red;
body{
color: blue;
Operadores
Para declarao de uma Media Querie, h alguns operadores que se pode trabalhar, na tabela abaixo est
representado estes operadores:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Layout Fixo</title>
</head>
<body>
<div class="container">
<header class="header">
<h1>
Media Queries
</h1>
<div class="content">
<div class="content-main">
<article class="hero">
<h2>
Ttulo Importante
</h2>
<img src="cute-dogs.jpg">
<p class="brief">
Descrio ou resumo de um
contedo. Descrio ou
</p>
</article>
</div>
</div>
</header>
</div>
</body>
</html>
Agora ser colocado o cdigo do CSS:
@charset "UTF-8";
html {
.container {
margin: 0 auto;
width: 70.27%;
h1 {
font-size: 4em;
h2{
font-size: 2em;
p{
font-size: 1.5em;
.content {
margin: 1.5625% 0;
.content-main {
float: left;
width: 61.7708%;
}
.content-main {
float: left;
width: 61.7708%;
.hero {
margin: 4.2158% 0;
.brief {
margin: 1% 0;
img{
width: 40%;
height: 40%;
h1 {
font-size: 2em;
h2{
font-size: 1em;
p{
font-size: .5em;
body
background-color: yellow;
h1 {
font-size: 1em;
h2{
font-size: .50em;
p{
font-size: .25em;
body
background-color: silver;
Efeito Gradiente
combinao de duas cores com indicando uma posio(top, left, rigth e bottom). Este efeito utilizado com a
propriedade background-image. Abaixo segue um exemplo:
http://code.tutsplus.com/pt/tutorials/the-30-css-selectors-you-must-memorize--net-16048
http://www.w3c.br/divulgacao/guiasreferencia/css2/#mod-tipos