Notes - CSS3
Notes - CSS3
body[seletor] {
font-family: Arial; [declaração]
font-size:[propriedade] 20pt;
color: blue[valor];
}
CSS3 - <style>
body{
background-color (cor de fundo)
}
CAIXAS
content (conteúdo) >> é o conteúdo da caixa. Toda caixa, por padrão, possui somente
o conteúdo. Exceção: o <body> já possu uma margin de 8px.
width (largura) e height (altura) >> seu conjunto é chamado de box-size (tamanho da
caixa).
border (borda) >> contorna o content. Pode ter espessura, cor e formato.
border-width: 10px; (grossura/largura da borda)
border-style: solid; (tipo de borda)
border-color: red; (cor da borda)
padding (preenchimento) >> é o espaço entre o conteúdo e a borda (da borda pra
dentro). É o espaço lateral de dentro da caixa.
padding: 15px; (todos iguais)
padding-top: 10px;
padding-right: 20px;
padding-bottom: 10px;
padding-left: 20px;
margin-top: 0px;
margin-right: 15px;
margin-bottom: 0px;
margin-left: 15px;
outline (contorno) >> pouco usado, mas fica entre a margem e a borda. É a borda da
borda.
outline-width: 10px; (largura do contorno)
outline-style: solid; (tipo de contorno)
outline-color: red; (cor ddo contorno)
BORDAS DECORADAS
Para medidas diferentes - border-radius: 10px 20px 30px 40px; ou border-radius 10px
30px; (os primeiros px referem-se as bordas top-left e top-right. Os outros dois ao
bottom-right e o bottom-left.)
border: 8px solid white; >> shorthand pra uma borda de radius 8px, sólida e branca;
//
h2, h3, h4 {
color: rgb(192, 0, 0);
}
HSL - Hue (Matriz - 0/356 {eu acho}), Saturation (saturação - 0%/100%), Luminosity
(luminosidade - 0%/100%)
CÍRCULO CROMÁTICO
Harmonia de cores:
Círculo cromático
cores primárias (triângulo equilátero comum):
amarelo, azul e vermelho;
cores secundárias triângulo equilátero de cabeça pra baixo):
verde, laranja e violeta;
cores terciárias:
cor primária + cor
secundária; ex: amarelo-esverdeado (meio entre o a secundária verde e a
primária amarelo) / vermelho-alaranjado (meio entre a secundária laranja e
a primária
vermelho. / azul-arroxeado (meio entre a secundária violeta e a
primária azul).
temperatura das cores: frias e quentes (dá para dividir o círculo no meio entre o
amarelo-esverdeado e o amarelo & entre o violeta e o vermelho-arroxeado) (lado
"vermelho" = quentes // lado "azul" = frias)
paleta de cores: entre 3 a 5 cores (média: 4). Ideias: pega a cor principal,
seleciona duas análogas e uma complementar, resultando em 4 cores.
paletas:
+cores análogas relacionadas: pega duas cores análogas (qlqr lado), pula uma, e
seleciona a "4". Ex.: verde, amarelo, amarelo-alaranjado.
+cores intercaladas: escolhe uma cor, pula uma, e vai seguindo pulando. Ex.:
amarelo, laranja, vermelho (mt forte).
+cores tetrádicas: escolhe duas cores (fica mais balanceado se forem duas análogas)
e traça as complementares, formando um retângulo.
nav#menu ul {}
"Modificações na Fonte":
text-transform: uppercase; // muda p caixa alta
font-variant: small-caps;
Tipos de técnica para as CSS
CSS Inline Style ->> atualizações específicas, e não para o dia a dia ou para o
estilo gera do projeto. Feito na mesma linha.
CSS Internal Style ->> organiza melhor o código. Ideal para páginas únicas e
isoladas com estilos próprios, que não serão replicados em outras páginas. Opte
também por essa técnica caso a quantidade de configurações de estilo for
pequena/média. Usar muitos seletores fará com que o arquivo .html fique muito
grande e que o conteúdo seja visualmente jogado lá para baixo do código.
CSS External Style ->> use essa técnica sempre que o mesmo estilo vá ser usado em
várias páginas dentro do site. Usando a tag <link> (recomendado usar abaixo do
title) em várias páginas, você pode compartilhar o mesmo estilo entre elas. (é
possível adicionar mais de um link, portanto, mais de um documento com o estilo do
site (Ex.: [Link])
Resumo:
Ext > use sempre que puder
Int > use para pequenas configurações
Inl > procure evitar
Para CSS Externo, é recomendado colocar { @charset "UTF-8"; (usar aspas duplas)}
como segurança no início do [Link].
Degradê em css:
body {
background-image: linear-gradient(to bottom {top, right, left}, color 1,
color 2 (pode usar "transparent",...)
background-attachment: fixed; //quando se usa to top ou to bottom as vezes
fica uma linha estranha em baixo e isso resolve. Porém, depois é necessário usar
height: auto; nos outros elementos pois as vezes eles somem por alguma razão q eu
ainda n sei dizer, mas acho q é pq o fundo deles aumenta mt e eles somem.
}
(ao invés de "to ___", pode usar ângulos. Ex.: (45deg, cor 1, ... )
Se ao invés de linear for radial-gradient e em vez de vc usar "to ___" vc usar
"circle", faz um gradiente cujo início é no centro e se expande como um círculo.
Ex.: radial-gradient(circle, cor1,...)
Repetição:
Quando o tamanho da caixa é maior que o tamanho da imagem, por padrão, ela será
repetida no eixo x (horizontalmente até o limite) e no eixo y (verticalmente até o
limite).
Posição:
Além de definir o nível de repetição, é possível mudar a posição de referência (de
início) da imagem. padrão: left top. Podem ser outros. Ex.: left top, center top,
right top, left center, center center, right center, left bottom, center bottom,
right bottom. (background-position: ;)
Redimensionamento:
É possível redimensionar a imagem para forçá-la a caber na caixa. Por padrão, as
configurações originais da imagem são mantidas. Para redimensionar, utilizamos a
propriedade "background-size: ;". Ela aceita os seguintes valores: auto (padrão,
tamanho original), length ([length px][length %] redimensiona a largura da img e
faz a altura se adaptar automaticamente. Pode-se informar as 2 dimensões na
sequência ou usar valores percentuais), cover (muda o tamanho da imagem pra q ela
sempre seja totalmente exibida na tela, sem cortes), contain (redimensiona a imagem
pra q ela cubra o contêiner, mesmo q ocorram alguns cortes). Ordem: width height.
Ex.:
background-size: 100px 200px; (100px de width e 200px de height);
Vínculo:
Configura o vínculo da imagem de fundo com o resto do documento. Usado
principalmente se o conteúdo for maior que a altura da pág e seja necessário vazar
uma rolagem vertical. Utilizamos a propriedade" background-attachment: ;". Ela
recebe 2 parâmetros, normalmente: scroll (padrão, imagem rola junto c o conteúdo)
ou fixed (imagem fica fixada enquanto o conteúdo vai sendo rolado).
body {
background-repeat: no-repeat;
background-attachment: fixed;
background-position: center center;
background-size: cover;
height: 98vh
ALINHAMENTO DE TEXTO
Por padrão, os textos no HTML (h1, h2, p,...) vêm alinhados à esquerda. Para mudar,
utilizamos a propriedade "text-align:".
4 tipos:
>À esquerda (left):
>À direita (right):
>Centralizado (center):
>Justify (ajustar o alinhamento do lado esquerdo e direito, deixando "reto"):
text-indent: 30px; >> propriedade de alinhamento para parágrafos: recuo no início
do parágrafo (normalmente, 30px)
line-height: 2em; >> ajuda na leitura pois distancia as linhas uma das outras.
display: inline block; >> o inline faz com que os elementos fiquem seguidos na
linha e o block faz com que a largura e a altura sejam mantidas.
line-height: 200px; >> altura da linha (distância entre uma linha e outra
verticalmente)
# Seletores Personalizados #
/*
# = id
. = class
: = pseudo-class
:: = pseudo-element
> = children
*/
Personalizando links
Basta abrir um seletor para as âncoras e mudar a color, que ele ficará com uma cor
diferente.
Para mudar algo quando passar o mouse, coloca :hover.
Para mudar a aparência quando já visitaram, usa :visited.
Para mudar a cor quando o mouse clicar, colcoa :active.
Emoji para colocar ao lado de links: Link Symbol (emojipedia) U+1F517. (ideal para
links externos)
Ex.:
a[target="_blank"]::after {
content: '\1f517';
}
Exemplo de hover:
<style>
body {
font-family: Arial, Helvetica, sans-serif;
}
div:hover {
color: red;
}
div:hover > p {
display: block;
color: white;
background-color: red;
width: 300px;
}
div > p {
display: none;
}
</style>
</head>
<body>
<h1>Exemplo de Hover</h1>
<p>Passe o mouse sobre o texto abaixo:</p>
<div>
Passe o mouse aqui
<p>TEXTO ESCONDIDO...</p>
</div>
<p>Fim do exemplo</p>
Nesse exemplo, temos um <p> dentro de uma <div>. Nós fazemos ele "desaparecer"
utilizando div > p (display: none;). Daí, utilizamos o div:hover > p (display:
block;) para fazê-lo aparecer novamente, somente quando o mouse passar por cima da
div.
<div>
<p></p>
</div>
Logo:
div > p {
<article>
<div>
<p></p>
</div>
</article>
Logo:
div p {
É a raiz do documento. Tudo que for declarado aqui, serve para o código inteiro.
Ex.:
:root {
--cor0: #c5ebd6;
--cor1: #83e1ad;
--cor2: #3ddc84;
--cor3: #2fa866;
--cor4: #1a5c37;
--cor5: #063d1e;
}
depois >
h1 {
color: var(--cor3); // após declaradas, "ctrl + espaço" faz elas aparecerem em
meio as outras
}
DICA: caso queira salvar alguma configuração específica, como por exemplo, uma
config. de "font-family":
Digita em qlqr seletor: font-family: (configuração q vc quer); > Copia > Cola na
variável.
Isso provavelmente fará com que fique mais fácil colocar alguma característica
depois.
content: 'blablabla'; (escreve coisas no local. Caso queira escrever sem substituir
o q ja tá, no seletor, usa ::after.)
RESPONSIVIDADE
# Position #
position: relative; >> Vai no contêiner. Colocamos relative para que seja
considerado o posicionamento atual do elemento de divisão e que ele se mantenha
adaptável para caso o navegador altere seu tamanho.
position: absolute; >> Vai no elemento de dentro. Colocamos absolute para que a div
(seu contêiner) torne-se o ponto de partida para o posicionamento desse elemento. A
partir daí podemos utilizar as propriedades: left/top para configurar seu
deslocamento e para seu tamanho: width e height. Todos esses em porcentagem de
tela.
SITE RESPONSIVO (etabas básicas para criar um site simples): site que pode ser bem
visualizado em vários dispositivos com tamanhos diferentes de tela.
Extensão do google p facililtar: Window Resizer (ou, inspecionar > canto superior
esquerdo no toggle device toolbar {ctrl + shift + m})
(sempre mexer primeiro nos containers e depois no conteúdo)
0.1) Com o seletor universal, coloca margin e padding 0px; para que o header e o
footer fiquem até o final (lembrar de colocar padding e margin dps caso necessário
dentro dos outros elementos como o main e o body), determina o ' font-family ' e
define ' box-sizing: border-box; ' para que a borda faça parte do objeto, fazendo
com que os itens não se desloquem com o aparecimento dela.
min-width >> É ideal que min seja 320px (colocar um pouco menos por causa que os
paddings contam, talvez 250px) pois os celulares mais antigos normalmente possuem
esse tamanho de tela.
max-width >> É ideal que max seja alguma medida que esteja visualemente gradável
para ler (Ex.: 1000px, 800px, 715px, etc) para que o tamanho do main fique restrito
a no máx esse tamanho. Caso o usuário vá para uma tela maior, como uma tv, o main
fica restrito a esse tamanho que permite uma boa visualização. (para possibilitar o
alinhamento vertical, talvez usar 98vh {90% da view port})
caso não queira limitá-lo, basta colocar " height: 100vh; " e ele ficará ocupando
toda a tela da viewport (não é necessário colocar " width: 100vw; " pois ele já
fica ocupando toda a width da tela baseado em seu conteúdo interno)
além disso, nos dois casos, coloca-se " position: relative; " para configurar os
elementos posteriormente, os quais receberão " position: absolute; ".
2) Organização visual:
Caso queira ajustar especificamente a posição dos elementos, será necessário usar
left/top e transform: translate (é necessário, SEMPRE que usar left e top para
determinar a posição de algum elemento, utilizar " transform: translate(-%left, -
%top); para ajustar esse ponto de referência para o centro do objeto), junto ao "
position: absolute; ". Ex.:
elemento ao centro = left: 50% (metade da tela) e top: 50%;. Porém, o ponto
de referência é a "ponta" do elemento (left top). Daí, utiliza-se " transform:
translate(-50%, -50%); " (transform deve SEMPRE ser o ÚLTIMO elemento dentro
da caixa de seleção ' {} '.
3) Algum elemento diferente de texto que esteja dentro do main, deve receber
"width: 100%" caso ele deva ficar ocupando quase toda a largura do main,
independente de qual seja. Para menos, determina uma width max uns 50px menor que a
original pra não embaçar. Caso seja um elemento inline, além de margin: auto,
display: block. Desse modo ele ficará centralizado de fato.
HEADER: colocar uma min-height (150px talvez) pra q ele fique sempre em um tamanho
adequado // colocar um padding-top (50px talvez) pra q o título se afaste do topo
sem distânciar o header do body // entre o h1 e algum texto abaixo, é interessante
colocar uma margin-bottom (20px talvez) nesse h1 (header > h1) para deixar uma
distância // opção de customização: no h1 (header > h1, 3em; no p (header > p),
1.2em; // caso queira diminuir a largura do <p>, coloque max-width ( 600px talvez).
Porém, caso faça isso, talvez ele n fique mais centralizado, daí basta usar margin:
auto; // padding no p para ele se afastar um pouco das bordas (left and right 10px
talvez) // text-shadow no h1 (talvez: text-shadow: 2px 2px 0px rgba(0, 0, 0,
0.267);) // text-shadow no p (talvez: text-shadow: 2px 1.5px 0px rgba(0, 0, 0,
0.315);) //
NAV: padding (10px talvez) // box-shadow para dar a impressão q todo o cabeçalho
tem sombra (talvez box-shadow: 0px 7px 7px rgba(0, 0, 0, 0.192);) // âncoras do nav
(nav > a) padding (10px tlvz), text-decoration: none para tirar o underline, font-
weight: bold (pra destacar) // em "nav > a:hover", pode colocar background-color
mais claro e color mais escuro (add tbm um border-radius: 5px; no "nav > a"), pode
colocar text-decoration: underline;, pode colocar um font-size maior, transition-
duration: 0.2s; //
Parâmetros do iframe:
>Width e Height: Iframe também recebe height e width dentro da tag, sem a
necessidade do style antes.
O x pode ser auto (se o conteúdo execeder o tamanho do frame, ele cria a
barra de rolagem), yes (mesmo que o conteúdo esteja todo no frame, ele cria a
barra), no (mesmo que o conteúdo não fique inteiro no frame, ele não vai criar a
barra). Utilizamos ' scrolling="" ' dentro da tag <iframe>. Ex.: <iframe
src="[Link] frameborder="0"
scrolling="auto"></iframe>
>Borda (frameborder="0"):
>Iframe Responsivo :
([Link] {}) add background-color, margin: 0px -20px 25px -20px; para colar o
fundo na borda do main e afastar 25px dos conteúdos de baixo, padding: 20px; para
ficar visualmente bonito, position: relative; // padding-bottom: 56,25%; (evita as
barrinhas pretas em cima e do lado). Para achar a "porcentagem perfeita", divide a
height do iframe por sua width e multiplica o resultado por 100. // 56,5%
representa vídeos 16:9 (FullHD). 75% representa vídeos 4:3. // tamanho padrão:
300x160px //
([Link] > iframe {}) position: absolute; // top: e left: 5px para posicionar o
vídeo na div de acordo com essas medidas // width e height 90% para determinar a
porcentagem que o tamanho que o vídeo vai aparecer ocupa na tela (devem ser
iguais). //
ORGANIZAÇÃO VISUAL DO SITE (alinhamento com position, left/top e transform:
translate -> transform tem q ser o último elemento dentro da caixa de seleção ' {}
')(caso algum desses elementos n sejam display: block, talvez deva-se usar display:
inline-block):
¹Obs.: transform sempre tem q ser o último elemento dentro da caixa de seleção ' {}
'.
Ex.:
Ex.:
container {
position: relative;
height: 98vh;
conteudo {
position: absolute;
left: 50%;
top: 50%;
transform: translate(-50%, -50%);
}
OU
#container {
display: flex;
justify-content:center;
align-items: center;
}
Explicação:
display: flex; >> possui várias funções; uma delas é habilitar o manejamento do
conteúdo.
justify-content:center; >> alinhamento horizontal; dispensa o uso do margin: auto
align-items: center; >> alinhamento vertical.
>Alinhamento À ESQUERDA:
1°: conteúdo recebe "left: 100%;". Isso "adiciona" 100% da esquerda da tela a
esquerda do objeto, orém, como o referencial é a ponta left top, ele ainda fica
desalinhado pra fora do conteiner.
2°: conteúdo recebe "transform: translate(-100%);" - isso resolve o problema
anterior, mudando o "ponto de referência" do conteúdo do left top para o seu
próprio centro (center center){o height do container deve ser 98vh para funcionar -
testar**}( transform sempre tem q ser o último elemento dentro da caixa de seleção
' {} '.)
Para fazer com que o tamanho da fonte mude com o tamanho da tela, basta usar font-
size: 10vw; (exemplo).
Isso faz com que o font-size tenha SEMPRE 10% do tamanho da janela do usuário,
logo, não importa o tamano da tela.
EFEITO PARALLAX:
Em tese, é a sensação de que o que olhamos perto se move mais rápido e o que está
longe se move mais lento. Para simular o efeito em sites, podemos fazer as
seguintes configurações:
div {
background-image: url(../imagens/[Link]);
background-repeat: no-repeat;
background-attachment: fixed;
background-position: right center;
background-size: cover;
}
É interessante acrescentar sombra na caixa acima da que irá conter a imagem. Ex.:
box-shadow: inset 6px 6px 13px 0px rgba(0, 0, 0, 0.473);
a[target="_blank"]::after {
content: '\1f517';
}
OU
input[type="submit"] {
background-color: red;
}
columns: 2; >> divide o conteúdo da caixa em colunas. Nesse caso, em duas. É bom
para listas.
PERSONALIZANDO TABELAS
*Obs: (2n) faz com que seja de 2 em duas linhas. 3n, de três em três, e assim
por diante.
>Mesclagem de Células:
colspan (caso vá expandir uma célula para o lado {ocupar mais de uma coluna}: <td
colspan="2">texto</td>
rowspan : (caso vá expandir uma célula para baixo {ocupar mais de uma linha}: <td
colspan="3">texto</td> [bom pra cabeçalho vertical]
Para selecionar uma coluna e mudar configurações que envolvem todos os seus
elementos, colocar uma classe em cada um é trabalhoso. Para tal, em HTML5,
podemos fazer o seguinte:
*Obs.: caso uma coluna tenha um scope: "colgroup", ou seja, possua dados em
mais de uma coluna, devemos acrescentar ' span="x" ' em seu col, sendo "x" o
número de colunas que ela engloba.
>Tabelas Responsivas:
Para a tabela não ultrapassar a vw (viewport width) e criar uma rolagem lateral, é
recomendado criar uma <div> e envelopar toda a tabela. Daí, em css, utiliza-se:
div { overflow-x: auto; } >> overflow é usado para configurar elementos que estão
"vazando". Nesse caso, está vazando no eixo x.
>Configurações interessantes:
table{} = width: 400px; (dentro desses 400px, se você quer que algumas colunes
fiquem maiores que outras, é interessante usar css inline no <th> dessa coluna.
Daí, ela altera a coluna, mas adapta o restante, mantendo o width determinado. //
border-collapse: collapse;
tr:hover, td:hover {} = border: 2px solid #282646; >> pra facilitar a leitura,
marcando a linha e as infos q o mouse está passando
transition-duration: 0.2s;
>Efeito de clique (:active):
section img {
transform: scale(95%);
}
¹Obs.: transform sempre tem q ser o último elemento dentro da caixa de seleção '
{} '.
>Borda(:hover):
border: 2px solid rgb (255, 255, 255, 0.637);
*obs: pra n bugar a img na tela, usa-se " box-sizing: border-box; " no seletor da
img sem o hover pra resolver. Faz com que a borda faça parte do objeto, fazendo com
que os itens não se desloquem com o aparecimento dela.
>Input checkbox:
Pode-se mudar o tamanho das caixas da checkbox utilizando uma classe em cada
uma e modificando o width e o height. Para aumentar o texto ao lado, basta
modificar os labels com uma classe tbm.
É bom usar <br> após cada label visando deixar cada checkbox abaixo da outra.
FORMULÁRIOS(inputs):
Pode-se editar vários configurações em formulários como borda, fundo, cor do texto,
entre outros...
' outline: none; ' para tirar a linha preta quando se seleciona o formulário
Para fazer com que o fundo volte a ser branco (caso você tenha definido um
background-color diferente de branco) quando o formulário for selecionado:
[Link] input:focus-within{
background-color: white;
}
É uma estrutura das CSS que permite aplicar estilizações específicas para uma
página web de acordo com certas condições, fazendo assim com que esta página possa
se adequar ao layout de tela em diferentes tamanhos e tipos de mídia (a adaptação a
telas diferentes
não é automática e é necessário prestar atenção nisso). Media Query é a união de
media type + media features.
Não possui tradução para o Português, mas de forma simples, media significa meio ou
mídia e query significa solicitação ou indagação. Sendo assim, a explicação para o
termo seria algo como o seu navegador solicitando um formato especial (CSS) pra a
exibição em meios diferentes. Os primeiros estudos sobre essa tecnologia surgiram
com os "media types", que basicamente criavam um formato específico para
determinado tipo de mídia (tela, impressora, dispositivos para braille, portáteis,
handheld, projetores, conteúdo lido, TVs, telas de grade fica, etc), entretanto,
somente elas não foram suficientes devido aos diversos tamanhos, formatos, suporte
máximo de cores, resoluções, etc, que uma tela de um mesmo tipo de aparelho
(smartphone diferentes, por exemplo) podiam apresentar. Daí surgiram as "medias
queries" que são basicamente as "medias types" somadas às "medias features".
media = "print" >> impressoras; (bom usar font-familys que sejam monospace /
background-imagem n funciona / shadows ñ são boas) // "screen" >> para monitores de
computadores, tablets e smarthphones; // "handheld" >> para dispositivos de mão; //
"all" >> para todos os tipos de mídia.
screen >> modo retrato >> ' and (orientation: portrait) '
screen >> modo paisagem >> ' and (orientation: landscape) '
Ex.:
<link rel="stylesheet" href="estilos/[Link]" media="screen and
(orientation: portrait)">
<link rel="stylesheet" href="estilos/[Link]" media="screen and
(orientation: landscape)">
+HTML
É definida com link:css no <head> do site, após o <title>. Após o link, renomeia-se
o arquivo com a media referente e acrescenta-se dentro da tag um media="".
Ex.:
<link rel="stylesheet" href="estilos/[Link]" media="all"> (estilo
base para todos os dispositivos)
<link rel="stylesheet" href="estilos/[Link]" media="screen"> (estilo
específico para telas)
<link rel="stylesheet" href="estilos/[Link]" media="print"> (estilo
específico para impressoras)
+CSS
É definida com @media nas CSS.
Ex.:
/* declarações gerais */
* {
margin: 0px;
padding: 0px;
font-family: Arial, Helvetica, sans-serif;
}
html,
body {
width: 100vw;
height: 100vh;
background-color: #233eff;
background-size: contain;
background-repeat: no-repeat;
}
/* declarações retrato */
@media screen and (orientation: portrait) {
body {
background-image: url(../imagens/[Link]);
background-position: center bottom;
}
}
/* declarações paisagem */
@media screen and (orientation: landscape) {
body {
background-image: url(../imagens/[Link]);
background-position: left bottom;
}
}
Porém, Luke Wroblewski, em 2009, propôs essa ideia do mobile first. Atualmente ele
é chefe de produtos Google e é considerado um dos "pais" dessa abordagem de
desenvolvimento.
>Vantagens: uma maior divulgação do site pois ferramentas de busca como a Google
vão valorizá-lo // uma melhor experiência do usuário que terá acesso ao conteúdo
que foi pensado para que pudesse ser consumido de forma mais confortável // aumento
na credibilidade já que os visitantes terão a percepção (ainda que inconsciente) de
que quem criou o site se preocupou com sua experiência // otimização do
carregamento, uma vez que o site será otimizado em sua criação para que possa ser
bem carregado com conexões lentas e dispositivos sem muito poder de carregamento.
Cria-se o estilo principal que será designado para telas de telefone. Nele, criamos
duas @medias:
@medias screen and (orientation: portrait) & @medias screen and (orientation:
landscape) para as versões em pé e deitado do telefone.
Após isso, em html, após o title, cria-se as demais folhas de estilo com ' link:css
'.
>Configurações Interessantes:
Para ocultar e apresentar elementos (que variam de uma versão para outra), basta
utilizar = ' display: block &/ou inline; ' para ele aparecer e ' display: none; '
para ele desaparecer.
No mobile e telas menores, utiliza-se main { width: 90vw } mas isso incomodaria em
telas maiores, portanto, ao ultrapassar 768px (min-width: 768px em medias queries),
coloca-se como width: 758px (width fixa) para telas maiores que essa, visando
facilitar a leitura.
Mobile =
HTML:
<i id="burguer" class="material-icons" onclick="clickMenu()">menu</i>
<nav id="itens">
<ul>
<li><a href="#">Opção 1</a></li>
<li><a href="#">Opção 2</a></li>
<li><a href="#">Opção 3</a></li>
<li><a href="#">Opção 4</a></li>
<li><a href="#">Opção 5</a></li>
</ul>
JavaScript:
<script>
function clickMenu() {
if ([Link] == 'block') {
[Link] = 'none'
} else {
[Link] = 'block'
}
}
</script>
>Para adaptar esse menu para quando a tela do dispositivo for maior (maior que
mobile, min-width: 768px):
Com uma media query (melhor em outro link de css), deve-se colocar ' display: none;
' no "botão" e ' display: block ' no nav. (caso queira que os itens do nav fiquem
um ao lado do outro no header, também coloca-se ' display: inline-block ' nos "li"
do nav.
Ex.:
HTML:
<body onresize="mudouTamanho()">
JavaScript:
function mudouTamanho() {
if ([Link] >= 768) {
[Link] = 'block'
} else {
[Link] = 'none'
}
}
FLOAT
A propriedade float é usada para posicionar e formatar conteú[Link] exemplo, para
fazer uma imagem flutuar à esquerda ou à direita do texto em um contêiner.
WEB - MODEL
--color-0: #?????? (cor destaque / principal)
--color-1: #3a3a3a;
--color-2: #3a3a3a;
--color-3: #4B4F58;
--color-4: #F5F5F5;
--color-5: #FFFFFF;
--color-6: #E5E5E5;
--color-7: #424242;
--color-8: #000000;
WEB - MODEL 2
#101e23
#213c45
#315a68
#41788b
#5296ad
#74abbe
#97c0ce
#bad5de
#dceaef
#eef5f7
#5252ad