Escolar Documentos
Profissional Documentos
Cultura Documentos
1. Unidades de medida
2. Funções
3. Padrão vs Herança
a. Grid
i. Infos Importantes
b. Flexbox
i. gap
ii. flex: 1
7. Pseudo Classes
8. Pseudo Elements
9. Variáveis (customização)
12. Frameworks
a. documentaçao e uso
b. vantagens e desgantagens
rem
1rem = 16px
em
vh & vw
fr
Funções
calc()
Padrão vs Herança
antes depois
Box Model
Uma interface web bem feita é composta de diversas caixas que organizam o
conteúdo. margin, padding, border, height, width definem os valores dessas caixas.
A altura total da caixa, por padrão é A largura total da caixa, por padrão
o somatório do conteúdo + é o somatório do conteúdo +
padding (top/bottom) + border padding (left/right) + border
(top/bottom) (left/right)
padding
border
margin
Display
Block
Inicia uma nova linha e não permite que outros elementos sejam posicionados em
sua linha. Aceita todas as propriedades do box model (width, height, padding,
etc.).
Elementos block
Inline
Permite que os elementos se poscicionem um ao lado do outro, ou seja, respeita o
fluxo da escrita sem iniciar uma nova linha.
Elementos inline
<span> <a>
Porém, não é possível definir valores de width , height , margin (top/bottom) e etc.
Inline-block
O elemento continua sendo inline mas agora é possivel modificar os valores de
width , height e etc.
Grid
(display block)
Sua função é posicionar elementos na tela. O elemento definido com display grid
torna-se um grid container (pai) e os elementos que este envolve, grid itens
(filhos)
Infos. importantes
Na propriedade grid, as margin não colidem, ou seja, elas não mantem seu
comportamento normal de pervalecer aquela que é maior, elas são somadas.
sem/com
diferença
como funciona? ele vê o conteúdo das colunas e usa como padrão aquela
com mais conteúdo, adaptando-se para que caiba todo ele na horizontal.
O valor padrão do grid é strech, tenta alargar ao máx. aquele elemento maior
Os grid itens devem ser alineados no pai. Menos quando quer alinear um item
em específico (align-self)
Com valor fr o justify não funciona, pois ele força o conteúdo a se distribuir
no espaço em branco
Problema
Por que isso acontece? Aqui a imagem está definida para que ocupe da linha
2 até a linha 4. Porém seu tamanho é muito maior que o das informações a
seu lado, fazendo com que a linha fique grossa para que a img caiba, assim
alterando as infos. à direita.
Como resolver? Primeiro, no pai (o container grid), iremos definir os 3
primeiros valores como auto, para que ocupem apenas o espaço que seu
conteúdo ocupa (o primeiro valor é do título, o segundo é do preço e o
terceiro a descrição da bike). O último valor iremos definir como 1fr, para que
distribua todo o espaço que resta da imagem para que caiba, na última linha.
Uma vez feito isso, posicionamos nossa foto para que ocupe da linha 2 até a 5
( grid-row: 2 / 5 ). E agr sim podemos pocicionar nosso botão para ficar do
lado direito tmb. Ficará assim:
Como evitar?
Se olhamos o site podemos reparar que está composto por um título, embaixo
uma imagem e do lado as informações da imagem. Bata adicionar uma div
com a tag info, envolvendo todos os elementos da informações da bike
(preço, descrição e botão), no nosso html.
Usos
display: inline-grid
grid-template-columns
grid-template-rows
obs. Cada vez que vc forçar uma linha menor que o conteúdo, o conteúdo vai
estourar
grid-template-__: repeat()
Serve para repetir os valores. Primeiro define quantas vezes quer que repita e
dps o valor que será repetido
grid-template-__: auto-fit
grid-template-__: minmax()
Permite definir dois valores, o mínimo que o elemento poderá ter, e o máx
grid-auto-rows
Por padrão, toda linha nova que é criada, é criada com valor auto. Com essa
propriedade vc consegue alterar o valor que essas novas linhas criadas terão
Define quanto espaço o elemento ocupará no grid. Fala com o grid item.
como funciona?
determina o valor de colunas que o grid item irá ocupar
Valor único
se colocar um único valor (ex. 2), o elemento irá ocupar a coluna
correspondente a esse valor (nesse caso a img ficará apenas na 2 coluna)
Expansão
/ 3 ).
1 / -1 independente
Se vc quer que a imagem ocupe sempre a totalidade de colunas,
independente de quantas colunas/linhas vc tiver, utiliza-se 1 / -1 .
span
grid-row
grid-area
Define em qual coluna e qual linha o item ficará ao msm tempo. Primeiro
coloca a column e dps row.
{
grid-area: 2 / 1;
}
--> O item ficará na 2 coluna, 1 linha
align-content
Considera a vertical
Considera a horizontal
place-content
{
place-content: start end;
}
--> o elemento fica no inici
e no final em relação à ver
Flexbox
Display de posicionamento, parecido ao grid porém com propriedades diferentes
display: flex
Flex-wrap: wrap
Gap
Flex: 1 ;
Atalho para valores padrão de:
flex-grow: 1
Valor padrão: 1
flex-basis: 0
Valor padrão: 0
flex-shrink: 1
Valor padrão: 1
Caso exista um valor de base, o flex-shrink irá determinar se esse valor pode
ser reduzido ou não. 0 significa que ele não pode ser reduzido.
Flex vs Grid
Use ambos no seu layout, eles resolvem problemas diferentes. O grid te dá
controle em todos os eixos e o flexbox apenas no total de itens por linha.
⬆️
Position
relative
absolute
fixed
sticky
⬆️
Pseudo Classes
Estados
Permite modificar os diferentes estado do html. É específico para links e
elementos que permitem interagir.
:hover
:focus
como focar?
clica na tela e da tab
:visited
Serve para avisar quando vc já visitou uma página. Ele domina acima dos
outros estados.
--> exemplo
.botao:hover{
background-color: #f2f2f2;
}
Seletores
São mais fortes, não obedecem a ordem de cascata
:first-child
:last-child
:nth-child (4)
:not()
::before
::first-line e ::first-letter
⬆️
Variáveis (customzação)
Serve para valores que formos usar repetidamente no nosso código, facilitando
sua reutilização. Normalmente define-se a variavel na raíz do codigo (:root)
(raíz) :root {
--roxo: #84e; (--variável:valor da variável)
}
Para utilizar basta colocar na propriedade var(- - nome da var) (color: var(- - roxo))
Media Querie
O media possui varias utilidades além de usar para ajustar responsividade da tela
com max-width. Uma delas seria definir a escala de cor do site dependendo dos
ajustes de cor da nossa maquina, ou seja, modo claro ou modo escuro.
Agora dependendo da
configuração do usuario o site
será dark ou light. E caso sua
maquina nao suporte o media
ainda verá as preferencias do
padrão, que nesse caso é light
⬆️
CSS Utilitarios
Há estilizações no nosso código que usaremos repetidamente, por exemplo, um
padrão nos títulos. Para evitar escrever repetitivamente o mesmo código utiliza-se
o css utilitário. Como funciona?
No nosso css escreveremos classes específicas com os estilos que iremos
reutilizar (uma tag para cada estilo) e depois no nosso html colamos o nome da
tag na class do elemento que queremos estilizar com aquele estilo em específico.
Ou seja, o caminho contrario que normalmente utilizamos (definir uma tag na
class do elemento no hml e depois estilizar no css). Por exemplo:
Frameworks
Há bibliotecas que já contem valores pre-determinados, igual fazemos no css
utilitário, funcionando como uma espécie de template ou modelo. Estas
“bibliotecas” são chamadas de frameworks. É bem comúm serem utilizadas no
desenvolvimento de softwares mais avançados. Porém para já ir treinando seu
uso, aprenderemos a aplica-las no nosso codigo de html e css.
Bootstrap
Tailwind
Documentação
Na documentação do framework está toda a informação necessária sobre o
código da biblioteca (reset css, a tipografia, padding, etc.). Esta será a nossa guia
Utilização
Primeiramente devemos linkar nosso framwork a nosso código html. Para isso,
accesamos a pagina do nosso framework e seguimos os passos de instalação. No
bootstrap basta copiar o código e colar ele no <head>
⬆️