SlideShare ist ein Scribd-Unternehmen logo
1 von 119
CSS
O que você precisa saber
Copyright © 2017
Fábio Nogueira de Lucena
Instituto de Informática (UFG)
Conteúdo (1/2)
1. Introdução: definição e referências
2. Sintaxe
3. Onde depositar conteúdo em CSS?
4. Seletor
5. Documento HTML é uma árvore
6. O que faço com CSS?
7. <span> é um elemento que não possui estilo senão via CSS
8. Como “limpar” a formatação padrão?
Conteúdo (2/2)
12.float
13.Botões
14.Mais seletores
15.Portal responsivo?
16.Boas práticas para escrever regras em CSS
17.Layout
18.Font-family
19.Cores e gradientes
Introdução:
definição e
referências
O que é CSS?
● CSS é acrônimo de
Cascading Style Sheet = “folhas de estilo”
● CSS permite remover formatação de uma página HTML
CSS define como exibir
elementos HTML
CSS (exemplo)
img { border: 0; }
svg:not(:root) { overflow: hidden; }
figure { margin: 1em 40px; }
hr { box-sizing: content-box; height: 0; }
pre { overflow: auto; }
Conjunto de regras
(rule set)
Cascading Style Sheets (CSS)
Referência (e tutorial)
Outra fonte de
referência
CSS (alvo móvel)
-webkit, -mox, -o, ...
Sintaxe
Sintaxe (seletor seguido por declarações)
● seletor
O elemento que receberá o estilo, o que está sendo formatado “lá” no documento
HTML
● propriedade : valor ;
Todas as declarações em CSS terminam em ;
Cada declaração estabelece como formatar uma característica de um elemento.
seletor { propriedade : valor ; }
Exemplo
seletor { propriedade : valor ; }
h1 { color : gray ; }
Declaração
Onde depositar
conteúdo em
CSS?
Há três “locais” de uso de CSS
1. Depositar o código em CSS em arquivos externos
aos documentos HTML
2. Depositar código em CSS no próprio documento
HTML
a. Usando <style> para todo o documento.
b. Específico por elemento por meio da propriedade style.
(não recomendada)
Arquivo externo, <style> e propriedade “style”
Seletor
(identifica elemento
que recebe o estilo)
Seletores mais comuns
● Nome de um elemento
p { color : green; }
(todos os parágrafos em verde)
● Identificador único
#nomeUnico { color : blue; }
(elemento cujo id tem como valor nomeUnico)
● Classe
.classe { color : red; }
(elementos cujo atributo class tem como valor classe)
● Classe para determinado elemento
Todo elemento footer
Todo p descendente direto de div
p, div > p e div > div > p são diferentes
Simples variação do caso anterior
Documento HTML
é uma árvore
p descendente de div descendente de div ou
div ancestral de div que é ancestral de p
Maiúsculas e
Minúsculas não fazem
diferença, mas siga
um padrão.
Um documento HTML é uma "árvore"
Document Object Model (visão geral)
Document Object Model (DOM)
(API para acesso e manipulação de HTML)
O que faço com
CSS?
Tabela (table)
Tabela formatada (table)
Tabela formatada (table)
table { width: 100%; }
faz com que tabela ocupe toda a extensão da janela
Tabela (table) (primeira coluna ocupa 65%)
Tabela ocupa 90% da janela e a primeira coluna
ocupa 65% da tabela
Tabela (table) (agora com header)
Agora a primeira linha (tr) contém elementos th
(indica header em vez de dados).
Tabela (table) (agora com header)
O valor da segunda linha foi removido (td), valor repetido,
e na primeira linha é indicado quantos linhas farão parte da “união”
<span> é um
elemento que não
possui estilo
senão via CSS
span agrupa ou relaciona elementos
Como limpar a
formatação
padrão?
Ordem de
prioridade entre
regras
“conflitantes”
Regra prática
● !important
● Inline
● ID
● Classe ou pseudo-classe
● Elemento
● Seletor universal (*)
Qual o impacto das regras abaixo?
* {
color: blue !important;
}
#vermelho {
color: red;
}
<span style=”color:red;” id=”vermelho”>Um teste</span>
style (inline) e #x “perdem” para !important
Qual a cor do texto “TESTE”?
E agora, com a inserção de “id”?
Modelo de caixa
(box model)
Elementos do box model
● Elementos possuem uma largura (width) e altura (height) ou “caixa” na qual está
inserido.
● Ao redor desta caixa há um espaço chamado de preenchimento (padding). Este
espaço não possui “background” próprio.
● Ao redor do preenchimento (padding) há uma borda (border).
● Ao redor da borda (border) há uma margem (margin).
● Por último, ao redor da borda (border) há um contorno (outline).
Elementos do modelo de caixa ilustrados
Sem preenchimento
Com preenchimento
Caixa com preenchimento torna-se maior.
Observe espaço entre o C o canto
superior esquerdo.
box-sizing: border-box;
Caixa com preenchimento mas mesmo tamanho
Observe espaço entre o b o canto superior
esquerdo.
Chrome DevTools
padding: 10px;
e a ilustração correspondente
na direita.
Chrome DevTools
padding: 30px 5px;
Superior e inferir com 30px e
esquerda/direita com 5px.
Com borda (border)
Bordas de cores, tipos e espessuras distintos
Margem
Margens superior/inferior: 10px
Esquerda/direita: 20px;
Padding superior/inferior: 30px;
Padding laterais: 5px
Largura em %
Propriedade
display
A propriedade mais importante: "display"
● Todo elemento possui um valor padrão para display.
● h1 e footer, por exemplo, o valor é block.
● a e span, por outro lado, o valor padrão é inline.
● block
○ Inicia uma nova linha
○ Ocupa todo o espaço disponível à esquerda e à direita.
● inline
○ Não altera o fluxo de posição dos elementos.
block (nova linha, todo o espaço)
span não inicia nova linha
p (estende-se por toda a largura)
span (apenas para acomodar o conteúdo)
script por padrão é none
(que pode ser alterado)
float
Imagem, título, texto e link (repetidos)
Queremos o título ao redor da bola.
A bola permanece na esquerda.
Imagem, título, texto e link (repetidos)
Queremos o título ao redor da bola.
A bola permanece na esquerda.
img {
float:left;
width: 50px;
}
Conteúdo centralizado (parte de toda página)
Conteúdo atual é
<body>
<div>...</div><div>...</div>
</body>
<div class=”wrapper”>
<div>...</div><div>...</div>
</div>
CSS
.wrapper { width: 90%; margin: 0 auto; }
Conteúdo em duas colunas
Conteúdo atual é
<div class=”wrapper”>
<div class=”col”>...</div>
<div class=”col”>...</div>
</div>
CSS
.wrapper { width: 90%; margin: 0 auto; }
.col { float: left; width: 40%; }
Conteúdo em X colunas (tamanho fixo)
Conteúdo atual é
<div class=”wrapper”>
<div class=”col”>...</div>
<div class=”col”>...</div>
</div>
CSS
.wrapper { width: 90%; margin: 0 auto; }
.col { float: left; width: 300px; }
Float
Cria um problema
(sem altura, no height)
Queremos margem antes e após as colunas
Conteúdo atual é
<div class=”wrapper”>
<div class=”col”>...</div>
<div class=”col”>...</div>
</div>
CSS
.wrapper { width: 90%; margin: 0 auto;
margin-top: 50px; margin-bottom: 50px;}
.col { float: left; width: 300px; }
div da classe wrapper não possui
altura. Margem superior e inferior
estão unidas.
Estratégia preferida por especialistas
<div class=”wrapper grouping”>
<div class=”col”>...</div>
<div class=”col”>...</div>
</div>
CSS
.grouping::after, .grouping::before {
content:” “; display:table; }
.grouping::after { clear:both; }
.wrapper { width: 90%; margin: 0 auto;
margin-top: 50px; margin-bottom: 50px;}
.col { float: left; width: 300px; }
Margin superior e inferior agora
devidamente consideradas.
Botões
Alterando apresentação quando sob o mouse
Apresentação diferente conforme botão
Transição das cores é instantânea
Como suavizar?
Acrescente ao seletor .botao conforme abaixo, a estratégia de consumir .25s, de forma
linear, para alterar todas as propriedades do elemento em questão.
transition: .25s all linear;
Ampliar o tamanho do botão sob o mouse?
transform: scale(1.1, 1.1);
Amplia o botão em 10% no eixo X
e outros 10% no eixo Y.
Mais seletores
Pseudo-classe
Pseudo-classe
Mouse “sobre” elemento :hover
Pseudo-classe
nth-child(odd) ímpares
nth-child(even) pares
O que precede e sucede um elemento
Portal responsivo?
Exemplo de portal não responsivo?
http://cursohtml.top
(no iPhone 6)
Um portal mais responsivo
https://kyriosdata.github.io/id/
Meta
<meta name="viewport"
content="width=device-width, initial-scale=1.0,
minimum-scale=1.0">
O browser não tentará “diminuir” ou “reduzir” as dimensões
proporcionalmente para acomodar a página na tela do
dispositivo.
Padrões e outros
recursos para obter
“responsividade”
Boas práticas para
escrever regras em CSS
Qual a motivação para o BEM?
De acordo com https://goo.gl/WE7i5o
O portal trulia.com possuía:
● > 16.000 regras
● 3920 propriedades “color”
● 4888 propriedades “background”, ...
BEM
Block,
Element,
Modifier
Seguindo
“boas”
práticas?
Layout
Como
centralizar?
E na vertical?
Leiaute
font-family
Google Fonts
@font-face
(para profissionais)
Adobe Typekit
Cores e
gradientes
Definindo cores
Gerador de
gradiente
/* Permalink - use to edit and share this gradient:
http://colorzilla.com/gradient-
editor/#1e5799+0,2989d8+50,207cca+51,7db9e8+100;Blue
+Gloss+Default */
background: rgb(30,87,153); /* Old browsers */
background: -moz-linear-gradient(top, rgba(30,87,153,1)
0%, rgba(41,137,216,1) 50%, rgba(32,124,202,1) 51%,
rgba(125,185,232,1) 100%); /* FF3.6-15 */
background: -webkit-linear-gradient(top, rgba(30,87,153,1)
0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1)
51%,rgba(125,185,232,1) 100%); /* Chrome10-25,Safari5.1-
6 */
background: linear-gradient(to bottom, rgba(30,87,153,1)
0%,rgba(41,137,216,1) 50%,rgba(32,124,202,1)
51%,rgba(125,185,232,1) 100%); /* W3C, IE10+, FF16+,
Chrome26+, Opera12+, Safari7+ */
filter: progid:DXImageTransform.Microsoft.gradient(
startColorstr='#1e5799',
endColorstr='#7db9e8',GradientType=0 ); /* IE6-9 */
Ferramentas
https://goo.gl/LvuMZJ
Ferramentas
https://goo.gl/dZn3iE
Ferramentas
https://coolors.co/
Frameworks, bibliotecas?
Bulma
Purecss.io
Flexbox Grid
Skeleton
O mais popular
Ícones e imagens
Zurbe
Font awesome
Font Awesome (exemplo de uso)
O último fica
“girando”
Unsplash
(fotos de
qualidade
gratuitas,
inclusive
para uso
comercial)
E sobre web design?
Métodos de design
● Algumas questões básicas de design em 4 minutos
● Mobile first
● Um exemplo completo (web design)
● UX (uma infinidade de métodos)
● Métodos mais comuns
Considerações finais
Observe e ambiente-se com os exemplos

Weitere ähnliche Inhalte

Was ist angesagt?

Was ist angesagt? (20)

HTML & CSS - Aula 5
HTML & CSS - Aula 5HTML & CSS - Aula 5
HTML & CSS - Aula 5
 
HTML & CSS - Aula 3
HTML & CSS - Aula 3 HTML & CSS - Aula 3
HTML & CSS - Aula 3
 
Programação Web - CSS
Programação Web - CSSProgramação Web - CSS
Programação Web - CSS
 
HTML/CSS Patterns
HTML/CSS PatternsHTML/CSS Patterns
HTML/CSS Patterns
 
HTML & CSS - Aula 4
HTML & CSS - Aula 4HTML & CSS - Aula 4
HTML & CSS - Aula 4
 
CSS & JQquery
CSS & JQqueryCSS & JQquery
CSS & JQquery
 
Web em grande estilo com CSS 3
Web em grande estilo com CSS 3Web em grande estilo com CSS 3
Web em grande estilo com CSS 3
 
Introdução ao CSS
Introdução ao CSSIntrodução ao CSS
Introdução ao CSS
 
Construindo layout de sites com CSS
Construindo layout de sites com CSSConstruindo layout de sites com CSS
Construindo layout de sites com CSS
 
jQuery Simplificando o JavaScript
jQuery Simplificando o JavaScriptjQuery Simplificando o JavaScript
jQuery Simplificando o JavaScript
 
Css 3
Css 3Css 3
Css 3
 
HTML - aula 1
HTML - aula 1HTML - aula 1
HTML - aula 1
 
Curso de css3 unidade 1 - introdução ao css
Curso de css3   unidade 1 - introdução ao cssCurso de css3   unidade 1 - introdução ao css
Curso de css3 unidade 1 - introdução ao css
 
HTML & CSS - Aula 2
HTML & CSS - Aula 2HTML & CSS - Aula 2
HTML & CSS - Aula 2
 
Curso HTML, CSS e JavaScript
Curso HTML, CSS e JavaScriptCurso HTML, CSS e JavaScript
Curso HTML, CSS e JavaScript
 
Html 5 -_aula_2
Html 5 -_aula_2Html 5 -_aula_2
Html 5 -_aula_2
 
Introdução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, AjaxIntrodução a HTML, CSS, JS, Ajax
Introdução a HTML, CSS, JS, Ajax
 
03css2005
03css200503css2005
03css2005
 
CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata CSS - Folhas de Estilo em Cascata
CSS - Folhas de Estilo em Cascata
 
Curso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSSCurso de Desenvolvimento Web - Módulo 02 - CSS
Curso de Desenvolvimento Web - Módulo 02 - CSS
 

Ähnlich wie O que você precisa saber sobre CSS

Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Cristofer Sousa
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosTiago Antônio da Silva
 
Gabarito ad1 web_2012_2
Gabarito ad1 web_2012_2Gabarito ad1 web_2012_2
Gabarito ad1 web_2012_2paulofa
 
CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1Israel Messias
 
CSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básicaCSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básicaMariana Ribeiro Mendes
 
PW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfPW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfSilvano Oliveira
 
Bootstrap praticas mais usadas
Bootstrap praticas mais usadas Bootstrap praticas mais usadas
Bootstrap praticas mais usadas Marconi Pacheco
 
Palestra / Novidades No CSS3 / Instituto Infnet
Palestra / Novidades No CSS3 / Instituto InfnetPalestra / Novidades No CSS3 / Instituto Infnet
Palestra / Novidades No CSS3 / Instituto Infnethugodiasneto
 
Palestra sobre Novidades no CSS 3
Palestra sobre Novidades no CSS 3Palestra sobre Novidades no CSS 3
Palestra sobre Novidades no CSS 3ECDD Infnet
 
2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdfRubenManhia
 

Ähnlich wie O que você precisa saber sobre CSS (20)

RCOM 11ºAno - CSS
RCOM 11ºAno - CSSRCOM 11ºAno - CSS
RCOM 11ºAno - CSS
 
Css
Css   Css
Css
 
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3 Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
Fundamentos e Desenvolvimento de Interface Web com HTML5 & CSS3
 
CSS
CSSCSS
CSS
 
Aula 20 div e spans
Aula 20 div e spansAula 20 div e spans
Aula 20 div e spans
 
Curso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicosCurso CSS 3 - Aula Introdutória com conceitos básicos
Curso CSS 3 - Aula Introdutória com conceitos básicos
 
Gabarito ad1 web_2012_2
Gabarito ad1 web_2012_2Gabarito ad1 web_2012_2
Gabarito ad1 web_2012_2
 
CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1CSS - Cascading Style Sheets - 1
CSS - Cascading Style Sheets - 1
 
HTML + CSS
HTML + CSSHTML + CSS
HTML + CSS
 
CSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básicaCSS e Bootstrap - Introdução básica
CSS e Bootstrap - Introdução básica
 
CSS Mastigado
CSS MastigadoCSS Mastigado
CSS Mastigado
 
CSS
CSSCSS
CSS
 
Dream 06
Dream 06Dream 06
Dream 06
 
PW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdfPW00 - Programação Web html e estilo CSS.pdf
PW00 - Programação Web html e estilo CSS.pdf
 
Dream 06
Dream 06Dream 06
Dream 06
 
Bootstrap praticas mais usadas
Bootstrap praticas mais usadas Bootstrap praticas mais usadas
Bootstrap praticas mais usadas
 
Palestra / Novidades No CSS3 / Instituto Infnet
Palestra / Novidades No CSS3 / Instituto InfnetPalestra / Novidades No CSS3 / Instituto Infnet
Palestra / Novidades No CSS3 / Instituto Infnet
 
Palestra sobre Novidades no CSS 3
Palestra sobre Novidades no CSS 3Palestra sobre Novidades no CSS 3
Palestra sobre Novidades no CSS 3
 
Minicurso CSS
Minicurso CSSMinicurso CSS
Minicurso CSS
 
2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf2. Introdução ao CSSpptx.pdf
2. Introdução ao CSSpptx.pdf
 

Mehr von Fábio Nogueira de Lucena

Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Fábio Nogueira de Lucena
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoFábio Nogueira de Lucena
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Fábio Nogueira de Lucena
 

Mehr von Fábio Nogueira de Lucena (20)

Fundamentos de Programação Front-End
Fundamentos de Programação Front-EndFundamentos de Programação Front-End
Fundamentos de Programação Front-End
 
JavaScript: Aprendendo a programar
JavaScript: Aprendendo a programarJavaScript: Aprendendo a programar
JavaScript: Aprendendo a programar
 
HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)HTML5: Primeiros Contatos (visão geral)
HTML5: Primeiros Contatos (visão geral)
 
HTTP: Um Curso Básico
HTTP: Um Curso BásicoHTTP: Um Curso Básico
HTTP: Um Curso Básico
 
Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08Apresentacao curso-2017-08-08
Apresentacao curso-2017-08-08
 
Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017Jornada Goiana em Engenharia de Software 2017
Jornada Goiana em Engenharia de Software 2017
 
Arquétipos
ArquétiposArquétipos
Arquétipos
 
Introducao integracao
Introducao integracaoIntroducao integracao
Introducao integracao
 
Healthdb Visão Geral
Healthdb Visão GeralHealthdb Visão Geral
Healthdb Visão Geral
 
Engenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógicoEngenharia de Software - planejamento pedagógico
Engenharia de Software - planejamento pedagógico
 
Arquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADAArquitetura de Software EXPLICADA
Arquitetura de Software EXPLICADA
 
Arquitetura de Software
Arquitetura de SoftwareArquitetura de Software
Arquitetura de Software
 
Arquitetura software
Arquitetura softwareArquitetura software
Arquitetura software
 
Prontuário Eletrônico do Paciente
Prontuário Eletrônico do PacienteProntuário Eletrônico do Paciente
Prontuário Eletrônico do Paciente
 
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)Especificação por meio de exemplos (BDD, testes de aceitação, ...)
Especificação por meio de exemplos (BDD, testes de aceitação, ...)
 
Introducao
IntroducaoIntroducao
Introducao
 
Uml
UmlUml
Uml
 
Como desenvolver-software
Como desenvolver-softwareComo desenvolver-software
Como desenvolver-software
 
Orientação a Objetos (3)
Orientação a Objetos (3)Orientação a Objetos (3)
Orientação a Objetos (3)
 
Orientação a Objetos (2)
Orientação a Objetos (2)Orientação a Objetos (2)
Orientação a Objetos (2)
 

O que você precisa saber sobre CSS