posicionamento flexbox

votos
0

Eu estou tentando posicionar uma div no meio da página e outro para o fim.

Eu tenho isso, mas eu não sou capaz de posicionar o primeiro no centro.

Eu tentei configuração diferente auto aling ao content_text mas nenhum a coisa que eu tentei trabalho.

Espero que vocês possam me ajudar. :)

html,body{
  height:100%;
  margin:0;
}

.content {
  align-items: center;
  background: rgb(0, 0, 0); /* Fallback color */
  background: rgba(0, 0, 0, 0.5); /* Black background with 0.5 opacity */
  color: #f1f1f1; /* Grey text */
  display: flex;
  flex-direction: column;
  height: 100vh;
  justify-content: space-between;
  position: absolute; /* Position the background text */
  width: 100%; /* Full width */
}

/* HELPERS */

.img-bg {
  display:block;
  height:100%;
  object-fit: cover;
  width:100%;
}
<!doctype html>
<html class=no-js lang=en dir=ltr>
  <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>Iraitz Puente</title>
  </head>
  <body>
    <div class=row fullWidth>
      <div class=content>
        <div class=content_text>
          <h1>THIS MUST BE CENTERED</h1>
        </div>
        <div class=content_arrow>
          <h1>END</h1>
        </div>
      </div>
    </div>
  </body>
</html>

Publicado 18/12/2018 em 11:09
fonte usuário
Em outras línguas...                            


4 respostas

votos
1

Se você definir o contentque justify-content: flex-end;, em seguida, você pode aplicar absoluteo posicionamento do elemento que precisa centrar-se e, em seguida, centralizá-lo usando uma combinação de top: 50%e transform: translateY(-50%);:

html,body{
  height:100%;
  margin:0;
}

.content {
  align-items: center;
  background: rgb(0, 0, 0); /* Fallback color */
  background: rgba(0, 0, 0, 0.5); /* Black background with 0.5 opacity */
  color: #f1f1f1; /* Grey text */
  display: flex;
  flex-direction: column;
  height: 100vh;
  justify-content: flex-end;
  position: absolute; /* Position the background text */
  width: 100%; /* Full width */
}

.content_text {
position: absolute;
top: 50%;
transform: translateY(-50%);
}

/* HELPERS */

.img-bg {
  display:block;
  height:100%;
  object-fit: cover;
  width:100%;
}
<!doctype html>
<html class="no-js" lang="en" dir="ltr">
  <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>Iraitz Puente</title>
  </head>
  <body>
    <div class="row fullWidth">
      <div class="content">
        <div class="content_text">
          <h1>THIS MUST BE CENTERED</h1>
        </div>
        <div class="content_arrow">
          <h1>END</h1>
        </div>
      </div>
    </div>
  </body>
</html>

Respondeu 18/12/2018 em 11:14
fonte usuário

votos
0

html,body{
  height:100%;
  margin:0;
}

.content {
  background: rgb(0, 0, 0); /* Fallback color */
  background: rgba(0, 0, 0, 0.5); /* Black background with 0.5 opacity */
  color: #f1f1f1; /* Grey text */
  display: flex;
  flex-direction: column;
  height: 100vh;
  justify-content: center;
  align-items: center;
  width: 100%; /* Full width */
}

/* HELPERS */

.img-bg {
  display:block;
  height:100%;
  object-fit: cover;
  width:100%;
}
<!doctype html>
<html class="no-js" lang="en" dir="ltr">
  <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>Iraitz Puente</title>
  </head>
  <body>
    <div class="row fullWidth">
      <div class="content">
        <div class="content_text">
          <h1>THIS MUST BE CENTERED</h1>
        </div>
        <div class="content_arrow">
          <h1>END</h1>
        </div>
      </div>
    </div>
  </body>
</html>

Respondeu 18/12/2018 em 11:20
fonte usuário

votos
0

simplesmente remover o position: absoluteestilo da classe .content

Respondeu 18/12/2018 em 11:15
fonte usuário

votos
-2
<style>
.content {
    align-items: center;
    background: rgb(0, 0, 0);
    background: rgba(0, 0, 0, 0.5);
    color: #f1f1f1;
    display: flex;
    flex-direction: column;
    height: 100vh;
    justify-content: center;
    position: absolute;
    width: 100%;
}
.contact .content_text,.contact .content_arrow{
    margin-top: auto;
}
</style>
Respondeu 18/12/2018 em 11:17
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more