html - flex 盒定位

标签 html css flexbox

<分区>

我试图将一个 div 放在页面中间,另一个放在页面末尾。

我明白了,但我无法将第一个放在中心。

我试过为 content_text 设置不同的 aling self,但我试过的都不起作用。

希望大家帮帮我。 :)

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>

最佳答案

如果你设置contentjustify-content: flex-end;,那么你可以对需要的元素应用absolute定位居中,然后结合使用 top: 50%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>

关于html - flex 盒定位,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53831733/

上一篇:php - 如何让 w3school 的联系表给我发电子邮件?

下一篇:css - 如何修复 Firefox 中德语变音符号的显示?

相关文章:

html - Google Chrome 无法显示 .eps 文件

html - 无论图像大小如何,如何使图像在 HTML 电子邮件中响应

javascript - flex 元素不包装在列方向 flex 盒中

html - 标签文本重叠单选按钮

html - 如何解决此按钮菜单的跨浏览器显示问题?

javascript - 在 Head 加载之前渲染 HTML 页面

javascript - CSS 或 JS - 在浏览器调整大小时将图像保留在外部

html - 使用 Twitter Bootstrap 将响应式图像插入 ASP.NET MVC5 元素

php - 如何访问 css URL 属性中的 smarty 变量?

html - flexbox 可以检测到 flex 元素何时换行吗?