float
e clear
)class
e id
para identificar os elementos e estilizá-los
¹Atributos universais: aqueles que qualquer elemento pode ter Coutinho & Hasan, 2021
p {
color: blue;
}
id
<p id="resumo">Este é o resumo da notícia...</p>
:
#resumo {
color: blue;
}
id
igual a resumo
.id
<body></body>
:
<p>Primeiro</p>
<p>Segundo</p>
<p>Terceiro</p>
<p class="destacado">Primeiro</p>
<p class="destacado">Segundo</p>
<p>Terceiro</p> <!-- continua no próximo slide -->
.
”, seguido pelo nome da classe:
p.destacado {
font-weight: bold; /* negrito */
}
destacado
para outros elementos além de
<p></p>
, podemos omitir o nome da tag:
.destacado {
font-weight: bold;
}
<style> /* reaproveitamento de código CSS dentro do arquivo */
p {
color: #fff;
} /* misturamos código CSS dentro do arquivo HTML */
</style>
<link rel="stylesheet" href="arquivo-de-estilos.css">
1989 - 1993 ~ Tim Berners-Lee cria a WWW em CERN e a deixa aberta ao público geral
1994
~ ::: figure .floating-portrait-container.push-right
:::
Håkon Wium Lie propõe uma linguagem com a responsabilidade
de alterar a aparência de páginas web chamada CSS
1996 ~ Juntamente com Bert Bos, Håkon publica a especificação do CSS1
1998 ~ Já gerenciado pela W3C, o CSS2 foi publicado
1999 - atual ~ Desenvolvimento da especificação do CSS3 (living standard)
1999 - 2016 ~ Håkon tornou-se CTO na Opera Software
body {
color: #ff0000; /* mesmo que 'red' */
}
<body>...</body>
, mesmo que dentro de
parágrafos ou outros elementos, ficarão vermelhos (!)
::: result .push-right margin-left: 1.5em;
:::
⋮
<style>
body {
color: red;
}
</style>
</head>
<body>
<h1>Título</h1>
⋮
Algumas propriedades (ex: color
) são herdadas pelos descendentes, outras não (ex: border
)
border
),
podemos forçar que sejam herdadas usando o valor inherit
:
p {
border: 1px solid red;
}
em {
border: inherit;
}
::: result
Este é um parágrafo (<em> em 'parágrafo')
:::
body {
font-weight: bold;
}
em {
font-weight: normal; /* ou, então, font-weight: initial */
} /* initial é o valor padrão para aquela tag */
::: result
Este é um parágrafo (<em> em 'parágrafo')
:::
p { color: white; }
.livro { color: red;}
#manchete-principal { color: green; }
Colorir de laranja apenas os links dentro da lista não ordenada:
![]()
.marca-de-sabao
) nos links da lista
ul a { /* todo <a> dentro de uma <ul> */
color: orange;
}
Voltar para cima :::
X Y
(antecessor, espaço, elemento selecionado)
ul a {
text-decoration: none;
}
a
que têm um ul
como
antecedente (pai, avô, bisavô etc.)X > Y
(pai, sinal de maior, elemento selecionado)
#menu-principal > ul {
padding: 20px;
}
ul
que têm #menu-principal
como pai<p>
<strong>Ola! <a href="http://www.google.com">Este é meu link! </a></strong>
<a href="http://www.terra.com.br">Esta é uma outra pagina</a>
</p>
<a href="http://google.com">Este é outro link</a>
p > a { /* <a>s filhos de um <p> */
text-decoration: line-through;
}
p a { /* <a>s descendentes de um <p> */
color: red;
}
Colocar uma borda rosa apenas nas imagens .jpg:
![]()
.formato-jpg
) nessas imagens…
img[src$=".jpg"] {
border: 5px solid hotpink;
}
a[href] {
color: blue; /* [a] */
}
a[href="http://google.com"] {
color: blue; /* [b] */
}
a[href^="http"] {
color: blue; /* [c] */
}
a[href$=".com"] {
color: blue; /* [d] */
}
a[href*="google"] {
color: blue; /* [e] */
}
[atributo]
<a>
que possua href
[atrib="valor"]
[atrib^="inicio"]
[atrib$="final"]
[atrib*="trecho"]
img[alt] {
border: 5px solid red;
}
img[alt*="ninja"] { /* alt contém ninja */
border: 3px solid black;
}
a[href^="http"] { /* href começa com http */
color: cyan;
}
a[href$=".br"] { /* href termina com .br */
background: linear-gradient(45deg, green, red);
}
<img src="img/algod-ove.png" alt="Ovelha de algodão">
<img src="img/ninja-logo.png" alt="Cabeça ninja">
<a href="http://www.terra.com.br">Um site brasuca<a>
<a href="http://www.cnn.com">Um site gringo<a>
:::result .span-columns margin: 1em auto;
Um site brasuca
Um site gringo
:::
Tirar o sublinhado do hyperlink quando passar o mouse sobre ele:
![]()
a:hover {
text-decoration: none;
}
a:link {
color: blue; /* [a] */
}
a:hover {
color: cyan; /* [b] */
}
a:active {
color: gold; /* [c] */
}
a:visited {
color: gray; /* [d] */
}
::: result Um link :::
:link
:hover
:active
:visited
:hover
e :active
podem ser usados com outros elementos:
tr {
background-color: white;
}
tr:hover {
background-color: silver;
}
Centralizar todas imagens exceto uma ou outra:
![]()
img:not(#logo) {
display: block;
margin: 0 auto; /* vertical: 0, horizontal: auto */
}
X:not(seletor)
p:not(.destacado) {
color: gray;
}
seletor
<p>
que
não possuam a classe .destacado
::: did-you-know .push-right width: 400px; margin-left: 1em;
A parte dos seletores “com dois pontos” (eg, :not()
, :hover
) é chamada
de pseudoclasse. Veja todas aqui.
:::
X:first-child
X:last-child
X:nth-child(n)
X:first-of-type
X:last-of-type
X:nth-of-type(n)
nth-child
:
<table>
<tr><td>Linha 1</td></tr>
<tr><td>Linha 2</td></tr>
<tr><td>Linha 3</td></tr>
<tr><td>Linha 4</td></tr>
</table>
tr:nth-child(2n) { /*par*/
background: white;
}
tr:nth-child(2n+1) { /* ímpar */
background: silver;
}
A | Linha 1 |
B | Linha 2 |
C | Linha 3 |
D | Linha 4 |
:::
Para voar, basta errar o chão. Douglas Adams no Guia do Mochileiro das Galáxias
![]()
inline
e block
block
inline
block
e inline
, juntos
Jornais e revistas costumam colocar imagens junto ao texto para fazer uma bela diagramação do conteúdo Coutinho, 2017 Isso se chama deixar o elemento (e.g., imagem) flutuando Hasan, 2017
Vamos conhecer um nova propriedade: float
float
img#abelha-operaria {
float: left; /* left, right, none */
} /* none é o valor padrão - sem flutuação */
<img id="abelha-operaria" src="...">
<p>Texto ...</p>
float
block
depois dele fingem que ele não está aliinline
depois dele respeitam seu formatoid="amazing"
flutue à direita nos próximos 2 slides…float
(1º passo)p#amazing {
width: 200px;
}
float
(2º passo)p#amazing {
width: 200px;
float: right;
}
block
, ignoram o elemento flutuanteinline
, respeitam o elemtno flutuantefloat
::: Flutuando o parágrafo à direita:
p#amazing {
width: 200px;
float: right;
}
block
: passam a ignorar o elemento flutuanteinline
: respeitam o flutuanteblock
) e o texto dentro deles (inline
)…clear
no
elemento interruptor clear
pode ser:
left
ou right
: interrompe apenas as flutuações à esquerda ou à direitaboth
: interrompe ambos ladosnone
: não interrompe (valor padrão)#proximo-assunto {
clear: right;
}
red
cyan
gold
forestgreen
cornflowerblue
rebeccapurple
⋮
rgb(verme, verde, azul)
#vmvdaz
p {
color: cyan;
}
p {
color: rgb(0, 255, 255);
}
p {
color: #00ffff;
}
red
cyan
gold
forestgreen
cornflowerblue
rebeccapurple
⋮
rgba(verme, verde, azul, alpha)
alpha
é a opacidade da cor
#vmvdazaa
alpha
p {
color: rgba(0, 255, 255, 0.5);
}
p {
color: #00ffff80;
}
#FF0033 /* maiúsc. ou min. */
#ff0033
#f03
Se ambos caracteres de cada componente em hexa são iguais (ex: #ff0033
), pode escrever só 1 de cada (ex: #f03
)
rgb(255, 0, 51)
rgb(100%, 0%, 20%)
rgba(255, 0, 0, 0.1)
Em vez de 0…255, pode escrever 0%…100%
hsl(60, 100%, 50%)
hsla(240, 100%, 50%, 0.05)
Também existe hsl(hue, sat, light)
, mas é menos comum
linear-gradient
é um valor válido para background-image
,
e não para background-color
nem para color
gradient
::: result . max-width: calc(100% - 600px); 0 graus, iniciando com azul e terminando como verde :::
p {
background-image: linear-gradient( 0deg, blue, #00FF00 );
}
p {
background-image: linear-gradient( to left top, yellow, blue );
}
p {
background-image: linear-gradient( 90deg, blue, white 20%, #00FF00 );
}