Skip to content

Repositório para abordar conceitos do Flexbox no css

Notifications You must be signed in to change notification settings

paolaguedes/flexbox

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

8 Commits
 
 
 
 

Repository files navigation

Conceitos do FlexBox

Se você reparar bem nos sites que você entra, verá que todas as informações dos layouts são divididas de alguma forma. Seja em colunas ou em linhas.

O legal do css é que você pode brincar de organizar os elementos da sua página da forma que quiser. E o flexbox é nosso grande aliado nisso pois com ele podemos juntar um bloco com outro deixando todos eles enfileirados, ou um do lado do outro, ou também um na esquerda e outro laaa na direita, enfim... muitas formas!!

E é por isso que eu decidi criar esse repositório, porque apesar de ser uma ferramenta muito boa, as vezes é difícil de entender o conceito, e eu espero poder te ajudar nisso (e claro, me ajudar a enraizar na minha mente também rs)

Podemos usar o flexbox pelo eixo principal (horizontalmente) e no eixo transversal (vertical)


  • Para definir isso usamos FLEX-DIRECTION, que possui 4 componentes:
    • row (padrão)
    • row-reverse
    • column
    • column-reverse

Eixo horizontal

É importante saber que o padrão é o row, que foi o mesmo que eu sei para deixar essas duas imagens uma do lado da outra, é só você olhar o código desse README :)

  • Enquanto row seus elementos vão se mover "inlinemente", assim você pode por todos os elementos no centro, ou alinhados com uma margem entre eles, ou um de um lado e outro do outro na mesma linha kkkk e vou mostrar como fazer isso usando:

Justify-content

Para poder exemplificar vou usar essas três div que atualmente estão grudadas uma do lado da outra.

  ...
  <style>
    
    section {
      display: flex;
    }
    
    section div {
      background-color: rgb(0,0,0);
      width: 100px;
      height: 100px;
    }
    
//usei para adicionar cor na div do meio
    section div:not(:first-child):not(:last-child) {
      background-color: rgb(23, 25, 122);       
    }

  </style>
...
  <section>
    <div></div>
      <div></div>
    <div></div>
  </section>

  ...

divgit

Para não ficar informações repetidas vou deixar apenas a section que é onde vou mostrar a aplicação do justify-content. No caso debaixo usei center para alinhar nossas três divs no meio do elemento pai que no caso é a section.

  ...

  <style>
    
    section {
      display: flex;
      justify-content: center;
    }

  ...

Ficou assim :

center

Agora usando start e end:

  ...
Exemplo com start:

  <style>
    
    section {
      display: flex;
      justify-content: start;
    }
</style>
  ...

Exemplo com end:

  <style>
    
    section {
      display: flex;
      justify-content: end;
    }
</style>
  ...

Então ele alinhará os itens a esquerda ou a direita.

Agora com space-evenly, around e between:

  ...
Exemplo com space-evenly:

  <style>
    
    section {
      display: flex;
      justify-content: space-evenly;
    }
</style>
  ...

Exemplo com space-between:

  <style>
    
    section {
      display: flex;
      justify-content: space-between;
    }
</style>
  ...

 ...

Exemplo com space-around:

  <style>
    
    section {
      display: flex;
      justify-content: space-around;
    }
</style>
  ...

Space-evenly divide o espaço do elemento igualmente ENTRE E FORA das divs

Space-between divide o espaço entre as divs para fazer o alinhamento

Space-around pega todo o espaço da linha e divide igualmente ENTRE os elementos

  • Esses são os mais usados do justify-content agora vamos estudar sobre o :

Eixo vertical

Para alinhar elementos usando como base o eixo vertical usamos outra propriedade do flexbox que é :

Align-items

  • Possui como valores:
    • center
    • flex-end
    • flex-start

E modifica nossos elementos verticalmente!

Recomendo fortemente que ao acompanhar esse 'tutorial' você vá fazendo, sério, observa o que acontece e também o que não acontece kkkkkkkkk vai te ajudar a saber o que usar em cada situação. A prática é o melhor professor!

E é por isso que vou deixar com vocês para modificar suas divs que estão em row com align-items, e partir para mostrar como funciona quando elas estão com flex-direction: column..

Flex-direction: column

Aqui temos as mesmas divs, mas seu direcionamento é em coluna:

column

Queria que você testasse o justify-content nelas e ver o que acontece. Não funciona horizontalmente né? Doido isso mas quando você coloca seus elementos em coluna meio que as coisas invertem. (meio não, inverte mesmo)

  • se nada acontece veja se tem height suficiente para elas se mexerem... (sim, ja me estressei muito com isso)

Vamos ao código e sua visualização:

  ...
Exemplo com align-items: center e justify-content: space-around

<style>
    
    section {
      display: flex;
      flex-direction: column; 
      align-items: center;
      justify-content: space-around;
      height: 100vh; --> Para poder aumentar a altura da minha section e ver o comportamento do justify-content
    }
</style>

  ...

Exemplo com align-items: flex-end e justify-content: center

<style>
    
    section {
          display: flex;
          flex-direction: column;
          justify-content: center;
          align-items: flex-end;
          height: 70vh; --> Para poder aumentar a altura da minha section e ver o comportamento do justify-content
    }
</style>

 ...
Exemplo com align-items:flex-start e justify-content:  space-between

<style>
    
    section {
      display: flex;
      flex-direction: column; 
      align-items: flex-start;
      justify-content: space-between;
      height: 100vh; --> Para poder aumentar a altura da minha section e ver o comportamento do justify-content
    }
</style>

Align-items X Align-content

  • Para demonstrar a diferença vou explicar sobre a propriedade FLEX-WRAP

Basicamente permite que quando não der mais pros elementos ficarem na mesma linha haverá quebra de linha. Então, vou diminuir o tamanho da nossa section ate o ponto de as divs precisarem descer para a linha debaixo.

 ...

<style>
    
    section {
      display: flex;
      flex-wrap: wrap;
      height: 80vh;
      width: 50%;
    }
     
      alterei o tamanho das divs e acrescentei mais 3 dentro da section!!
             
     div {
       background-color: rgb(255, 255, 255);
       width: 200px;
       height: 200px;
       border: 1px solid black;
     }
     
</style>

Fica assim na tela:

  • Se usarmos o align-items: center, que alinha os ELEMENTOS pelo eixo vertical, notaremos que eles vão preservar uma distância entre os três blocos de cima e os de baixo. Assim:

  • Em contrapartida se usarmos o align-content: center, notamos que as 6 divs ficam alinhadas no meio da section. Ou seja, o align-content será útil quando quisermos trabalhar alinhamento entres elementos que NÃO pertencem a mesma linha. Na verdade, ele não alinha os elementos, mas sim as LINHAS em que estes estão posicionados. Legal né?

Vou mostrar agora com flex-start pois os dois tem:

  • Código css
 ...

<style>
    
    section {
      display: flex;
      flex-wrap: wrap;
      align-content: flex-start;
      height: 80vh;
      width: 50%;
    }

     
</style>

Agora o align-items: flex-start

 ...

<style>
    
    section {
      display: flex;
      flex-wrap: wrap;
      align-items: flex-start;
      height: 80vh;
      width: 50%;
    }

     
</style>

Espero que você tenha entendido até aqui, qualquer coisa estou a disposição no instagram @dev.paola!

Para finalizar este conteúdo... aqui vão playlists que gosto e que me ajudaram

E uns jogos :3

About

Repositório para abordar conceitos do Flexbox no css

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages