É um código para criar estilos no HTML, que como vimos, é a estrutura de todo o documento, já o CSS seria a beleza, a parte bonita.
CSS não é uma linguagem de programação, é uma linguagem style sheet, pois mesmo não sendo de programação, ainda possui uma ideia de sintaxe, e assim, precisamos aprender a forma correta de se escrever.
Eles não irão afetar o meu código, e podem me ajudar a lembrar de, ou agrupar e organizá-lo, além de deixar dicas para a leitura e ajudar outros devs a entende-lo.
Também posso usar um comentário para desabilitar partes do código, o que possibilitaria um debug mais fácil (ou caso deseje fazer alguma alteração sem quebrá-lo).
/* Exemplo de código de comentário em um arquivo .css */
Toda propriedade é seguida de :(dois pontos) e um valor, e um ; (ponto e vírgula) para encerrar essa ideia de valor.
Por exemplo:
h1 {
color: blue;
font-size: 60px;
background: gray;
}
Selectors: Nesse caso o h1, que vai buscar no HTML a tag h1 e aplicar as mudanças.
Declaration: As chaves e tudo dentro delas.
Properties: As coisas a serem alteradas.
Property values: Os novos valores que estamos atribuindo a tais propriedades.
Element/Type selector, que usei na última aula 'h1, h2, p, div'
;
Universal Selector, que é um * (asterisco);
ID Selector, que é um # (cardinal, jogo da velha) '#box, #container'
;
Class Selector, que é um . (ponto) seguido do nome da classe '.red, .m-4'
;
... e mais alguns que vou entender mais tarde no curso.
<p class="exemploidselector">
Exemplo de <b>ID Selector.</b>
</p>
CSS:
.exemploidselector, .exemploidselector b {
color: red;
font-size: 25px;
background: black;
}
Exemplo de ID Selector.
O box model é uma caixa retangular. Essa caixa possui as mesmas propriedades de uma caixa 2D, e tem como propriedades:
Tamanho (largura x altura):width
eheight
, respectivamente;
Conteúdo: ocontent
;
Bordas: oborder
;
Preenchimento interno: opadding
;
Espaços fora da caixa: amargin
.
Quase todo elemento de uma página é considerado uma caixa: Posicionamento, tamanhos, espaçamentos, bordas, cores, então, em suma, elementos HTML são caixas, assim como quase tudo no CSS.
As caixas podem ficar ao lado uma da outra, ou acima.
<div class="divtest">
<h3 class="h3id">Aprenda HTML</h3>
<div class="boxmodeltest">
<p class="examplebox">Empodere-se da capacidade de criar.</p>
<button class="button" style="color: white;">Embarcar!</button>
</div>
</div>
.divtest{display:grid;
width:50vw;
align-items:center;
justify-content:space-between;}
.h3id{margin:20px;
padding:20px;
text-align:20px;
font-size:30px;}
.boxmodeltest{display:flex;}
.examplebox{padding-top:5px;
font-size:17px;}
.button{background-color:purple;
border-color:purple;
font-size:17px;}
Empodere-se da capacidade de criar.
Começaremos pelo inline, que é dentro do próprio HTML, através da tag style
, utilizada das seguintes formas:
<h3 style="color: blue;">Título
<strong style="color: red;">alo</strong>
</h3>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
<style>
h1 {
color: blue;
}
strong {
color: red;
}
</style>
</head>
Porém, a forma mais comum, é através da tag link
, onde vamos linkar um documento CSS externo, um outro arquivo para nosso documento HTML, feito da seguinte forma:
<link rel="stylesheet" href="style.css>
Neste caso, o nosso documento CSS se chama style.css e sua relação com o HTML é de
stylesheet
.
A última forma é através do @import
, que é uma regra do CSS:
@import url('https://fonts.googleapis.com/');
Não é recomendado seu uso, pois leva um pouco mais de tempo do que através da tag link, deixando a página menos responsiva, demorando mais no carregamento.
Por exemplo:
h1 {color: red;}
h1 {color: blue;}
Nesse caso, o blue
irá prevalecer pois está abaixo do red
.
O inline (<style="color: exemplo">
) está direto no HTML, e direto no código.
Exemplo:
<h1 style="color: green">
Exemplo</h1>
<p>
parágrafo</p>
Exemplo:
<style>
h1 {color: gray;}
</style>
<h1>
Exemplo</h1>
<p>
parágrafo</p>
Exemplo:
<link rel="stylesheet" href="css.css">
0.
Universal selector, combinator e negation pseudo-class (:not( ))
1.
Element type selector
e pseudo-elements (::before, ::after)
10. Classes e attribute selectors ([type="radio"])
100.
ID selector.
1000. Inline.
Exemplo:
h1 {color: red;}
h1 {color: blue;}
* {color: green;}
Apesar de estar acima, o h1 {color: blue;}
irá prevalecer sobre o * {color: green;}
pois seu valor é 1, enquanto o *
tem valor 0.
Exemplo:
.class {color: purple;}
h1 {color: red;}
h1 .class {color: blue;}
* {color: green;}
Nesse caso, apesar do .class
ter valor 10, o h1 .class
se sobressai pois tem valor 11 (1+10).
Exemplo:
<h1 id="title">
Título<strong>
alo</strong>
</h1>
#title {color: gray}
* {color: green}
Apesar de ter valor 0, o *
será aplicado no "alo" pois o mesmo não foi especificado no #title
.
Deveria ficar assim:
#title,
#title strong {color: gray}
* {color: green}
E, dessa forma, o alo ficaria cinza também.
!important
São raras as ocasiões nas quais se devem usar um important, pois é uma má prática. Ela quebra o fluxo natural da cascata e das especificidades e pode acabar me atrapalhando caso eu a deixe em algum lugar no meu código.
Evitar!
Exemplo de propriedades com e sem o shorthand:
* {
/* background properties */
background-color: #000;
background-image: url(images/bg.gif);
background-repeat: no-repeat;
background-position: left top;
/* background shorthand */
background: #000 url(images/bg.gif) no-repeat left top;
/* font properties */
font-style: italic;
font-weight: bold;
font-size: .8em;
line-height: 1.2;
font-family: Arial, sans-serif;
/* font shorthand */ font: bold italic .8em/1.2 Arial, sans-serif;
}
Não irá considerar propriedades anteriores, ou seja, caso faça um shorthand, apenas ele será considerado, quaisquer propriedades anteriores serão substituídas pelas do shorthand.
Os valores que não forem especificados irão assumir o valor padrão.
Por fim, geralmente, a ordem descrita não importa, mas, caso haja muitas propriedades com valores semelhantes, poderemos encontrar problemas.
Um exemplo de função é:
color: rgb(255, 0, 100);
Uma das ferramentas mais importantes para o desenvolvedor CSS, o DevTools é aberto ao apertar F12 em uma página web.
É importante prestar atenção à sua escrita do CSS, identificar seu código para facilitar a leitura, e mais importante, manter tudo organizado e funcionando!
p {
-webkit-background-clip: text; /*Chrome, Safari, iOS e Android */
-moz-background-clip: text; /* Mozilla (Firefox) */
-ms-background-clip: text; /* Internet Explorer ou Edge */
-o-background-clip: text; /* Opera */
}
É possível consultar se a feature pode ser utilizada através dos sites:
Ireade vendor prefix
Caniuse