为什么 justify-content 不以我的 div 为中心?

2024-05-06

我试图将两个 div 水平居中放在爸爸 div 内。

爸爸 div 设置为flex-direction: column因为我希望子 div 一个在另一个之下,但位于页面的中心。

justify-content: center;应该做但不起作用。

我终于让它工作了align-self,但是有什么解释为什么这么多代码不足以将 div 居中吗?

这是我的代码:

<div class="main">
    <div class="child-1">HI</div>
    <div class="child-2">WE BUILD AWESOME STUFF</div>
</div>

.main {
    display: flex;
    flex-direction: column;
    justify-content: center;
}

主轴与横轴

考虑主轴 and 交叉轴柔性容器的:

enter image description here                                                                                                                        Source: W3C http://www.w3.org/TR/css-flexbox-1/#box-model

在上图中,主轴是水平的,交叉轴是垂直的。这些是弹性容器的默认方向。

然而,这些方向可以很容易地切换flex-direction http://www.w3.org/TR/css-flexbox-1/#propdef-flex-direction财产。

/* main axis is horizontal, cross axis is vertical */
flex-direction: row;
flex-direction: row-reverse;

/* main axis is vertical, cross axis is horizontal */    
flex-direction: column;
flex-direction: column-reverse;

(横轴始终垂直于主轴。)


justify-content 属性(仅适用于主轴)

The justify-content属性沿 Flex 容器的主轴对齐 Flex 项目。

换句话说,当你的容器是flex-direction: row,这使得主轴水平。justify-content: center将按您的预期工作。

但是你已经将容器设置为flex-direction: column。这意味着主轴现在是垂直的,并且justify-content将向上/向下定位弹性项目,而不是向左/向右。

由于您的示例中没有额外的高度,因此您不会注意到任何不同;justify-content没有工作空间。 (与块元素默认填充 100% 的宽度不同,必须定义高度。否则,元素默认为auto– 内容的高度。)但是给容器一定的高度,看看会发生什么。


align-* 属性(仅适用于横轴)

The align-self, align-items and align-content属性在弹性容器的横轴上运行(同样,始终垂直于主轴)。

因为主轴是垂直的,align-*属性将使弹性项目左/右对齐。这就是为什么align-self努力让你的 div 居中。


快速总结:取决于flex-direction,主轴和横轴切换,并保留指定的属性。


Solution

如果您的目标是最少的代码,那么这就是您所需要的:

.main {
    display: flex;
    flex-direction: column;
    align-items: center;
}

更多细节:在CSS Flexbox中,为什么没有“justify-items”和“justify-self”属性? https://stackoverflow.com/q/32551291/3597276

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

为什么 justify-content 不以我的 div 为中心? 的相关文章

  • 在 Chrome 中显示输入 type=date-local 的秒数

    在谷歌浏览器中 如果我设置 type 输入的值datetime local包含秒的时间 其中秒值为 0 Chrome 决定不在输入中显示秒值 这意味着用户根本无法设置秒 例如 如果我将值设置为2013 10 24T20 36 01然后Chr
  • 如何使用 JavaScript 隐藏滚动条

    怎样才能隐藏滚动条呢 我想这样做是因为滚动条不太好 overflow hidden没有用 因为我的 div 元素还有许多其他元素 所以设置overflow不能解决我的问题 你可以用这个隐藏滚动条 document body style ov
  • 如何将一个div的内容克隆到另一个div

    我想使用jquery克隆将选定div的内容复制到另一个div 但我不想将它附加到任何地方 我的意思是 当我们用 jquery 克隆一个 div 时 如果我错了 请纠正我 我们必须设置它的位置 它将动态创建一个显示的新分区 但我想获取所选di
  • 如何使 HTML 表格“类似于 Excel”可编辑多个单元格,即同时复制粘贴功能?

    我需要我的 HTML 表是可编辑的 以便用户插入的数据可以发送到服务器 但是由于表的大小 50行 如果我引入 用户将不方便逐一插入数据点contenteditable属性如下 table tr td div editable div td
  • jQuery 可以使用结束标签作为选择器吗?

    我对 jQuery 还很陌生 我遇到了这个 jQuery 代码 它使用 div div 作为选择器 div div html someString text 首先 我想知道它是否是一个合法的标签 因为div有一个结束标签 但我的主要问题 j
  • 三星 Galaxy S5 媒体查询

    我做了一些搜索并尝试了一些不同的东西 但就我的一生而言 我似乎无法专门针对三星 Galaxy S5 我只是在网站上工作时尝试一些东西 但我尝试的任何东西似乎都没有针对特定设备 这是我到目前为止所尝试过的 media only screen
  • 使用 CSS 让图像位于文本后面并使其保持在中心位置

    我正在创建一个网页 其中有一个要放置在中心的图像 在该图像的顶部 我想要有输入框 标签和提交按钮 我正在尝试使用这个CSS img center z index 1 但这不起作用 当我将代码更改为 img center position a
  • 找不到模块:您尝试导入位于项目 src/ 目录之外的模块。不支持 src/ 之外的相对导入

    我刚刚开始React JS 但是我遇到了一个问题 尽管我进行了研究 但我无法得到结果 我尝试了很多方法 但我一直无法解决这个问题 你能帮忙吗 这是我在终端收到的错误 src App css node modules react script
  • 背景大小:封面在 Google Chrome 中突然停止工作?

    还有其他人有这个问题吗 我以创建网站为生 有些网站使用了 css 属性background size cover 大约 1 周前突然间 所有具有此属性的网站都不再在 Google Chrome 中正确显示 所有其他浏览器都工作正常 还有其他
  • 隐藏行时更新奇数/偶数行颜色

    我在一页上有几个表格和一个复选框 用于根据其中一个单元格的内容显示 隐藏行 虽然所有行都是可见的 但一切都很完美 并且行颜色根据需要交替 当我隐藏行时 交替的行颜色不再正确 显然 如何轻松更新类以在选中复选框时保持交替行颜色 然后在取消选中
  • CSS 中“body > *”是什么意思?

    我试图了解 jQTouch 实现的 CSS 效果 http www jqtouch com http www jqtouch com 它有一些 CSS 定义 其中包含如下语法body gt body gt webkit backface v
  • 支持 IE 中的“border-radius”

    有谁知道 Internet Explorer 是否 何时支持 border radius CSS 属性 是的 2011 年 1 月 IE9 发布时 假设您希望所有四个边均为 15px myclass border style solid b
  • 如何解决输入字段上的错误行高?

    如何为具有固定高度的输入字段提供其所包含文本的跨浏览器垂直对齐方式 截至目前看来line height是我最好的选择 但是 在 Chrome 或 Safari 等 webkit 浏览器上 复制 粘贴时光标会跳至顶部对齐 我注意到 WordP
  • 网页优化:为什么组合文件速度更快?

    我读过 将所有 css 文件合并为一个大文件 或将所有脚本文件合并为一个脚本文件 可以减少 HTTP 请求的数量 从而加快下载速度 但我不明白这一点 我认为如果你有多个文件 最多有一个限制 我相信在现代浏览器上是 10 个 浏览器会并行下载
  • 如何将背景颜色(或自定义 css 类)应用于网格中的列 - ExtJs 4?

    看起来应该很简单 但我根本无法完成此任务 我什至不需要动态完成它 例如 假设我有一个简单的 2 列网格设置 如下所示 columns header USER dataIndex firstName width 70 cls red head
  • 头部带有脚本的 Nodejs EJS 部分

    我正在使用 EJS 从 Nodejs 服务器渲染和服务器 HTML 页面 我包含的一些部分在头部引用了脚本和样式表 但这会导致客户端对同一文件发出多个请求 例如 如果父视图也包含该文件 例如
  • 如何使用 PHP 解释 HTML5 输入日期值

    我需要让用户选择一个日期 最好采用 dd mm yy 格式 我决定尝试新的 HTML5 输入日期类型 但是我不知道如何解释它在服务器端给出的值 我得到的值是 yyyy mm dd 我怎样才能做到这一点 如果用户使用不支持它的旧版浏览器怎么办
  • 如何在GEB中选择内部元素的文本?

    我有以下场景 div ul class select2 results style width 400px li class select2 results dept 0 select2 result select2 result sele
  • 解析器阻塞与渲染阻塞

    我一直在阅读有关优化网络性能的 Google 开发人员文档 我对那里使用的术语有点困惑 CSS 和 JavaScript 文件都会阻止 DOM 构建 但是 CSS 被称为渲染阻塞 而 JavaScript 被称为解析器阻塞 解析器阻塞 和
  • 如何让JS变量在页面刷新后保留值? [复制]

    这个问题在这里已经有答案了 是否可以永久更改 JavaScript 变量 例如 如果我设置变量 X 并使其等于 1 然后按钮的 onClick 将该变量更改为 2 如何使该变量在刷新页面时保持为 2 这是可能的window localSto

随机推荐

  • 提取行 r 之间的数据

    我有以下行 rep c foo rep c A B 2 bar rep c C D 2 2 1 foo A B A B bar C D C D foo A 13 B A B bar C D C D 我想提取 foo 和 bar 之间的数据以
  • Pytest 插件:覆盖 pytest_runtest_call 和朋友

    我正在为我的一个项目使用 pytest 开发一个测试套件 由于项目的性质 我需要创建一个 Pytest 插件来控制测试的运行方式 它们不是在本地运行 而是发送到不同的进程来运行 我知道关于xdist但我认为这并不能解决我的问题 我一直在通过
  • 如何将 UTF16 字符串解码为 Unicode 字符

    设备将字符串 编码为 uD83E uDD1B uD83C uDFFD 该字符串中表示的十六进制数字来自字符的 UTF 16 十六进制编码 Unicode 代码点U 1F91B U 1F3FD从 UTF 32 十六进制编码获取其数字 就拿后面
  • PHP 中字符串中的类常量

    我的阅读手册 http www php net manual en language types string php language types string parsing 标题 字符串访问和按字符修改 之前的部分 是 您可以在字符串
  • 使用试运行选项运行黄瓜时出错

    我试图通过仅打开和关闭浏览器一次来提高运行测试的速度 http watirmelon com 2012 04 01 Five page object anti patterns http watirmelon com 2012 04 01
  • 如何在Eclipse中配置Tesseract进行Android开发?

    我已经从事 Android 工作 6 个月了 至此我对Android开发有了基本的了解 现在我想使用 Tesseract 开发一个 OCR Android 应用程序 为此 我从 Tesseract 下载了 android ndk r6b t
  • 在 less 中为 twitter bootstrap 的所有选择器添加前缀

    我想开始学习 Twitter Bootstrap 并将其合并到我的网站中 从表单元素开始 但如果我按原样包含它 它会破坏网站的其余部分 我想为所有选择器添加前缀 以便我可以逐渐添加引导样式的内容 如下所示 div class bootstr
  • 将密码存储到sql中的最佳方法

    在我当前的 C Windows 应用程序中 密码已以纯文本形式存储 这显然不好 所以我只想知道加密密码并存储到 SQL Server 中的最佳方法是什么 我读到使用哈希 盐更好 但我觉得sql 2005中的 EncryptByPassPhr
  • Hadoop:读取ORC文件并放入RDBMS中?

    我有一个以 ORC 文件格式存储的配置单元表 我想将数据导出到 Teradata 数据库 我研究了 sqoop 但找不到导出 ORC 文件的方法 有没有办法让 sqoop 为 ORC 工作 或者有什么其他工具可以用来导出数据 Thanks
  • OpenGL 着色器不与着色器程序链接

    我正在尝试使用 GLFW GLEW 添加着色器 我收到一个错误 指出着色器已加载 但它们没有有效的对象代码 这是我用于加载着色器的代码 class SHADER public void LoadShaders const char vert
  • 如何检查特定作业是否在quartz调度程序中运行#

    我正在使用石英调度程序根据触发器的用户输入来安排写入文件的作业 我想检查作业是否仍在 stop 方法中运行 如何检查作业是否仍在运行 public class JobScheduler static StdSchedulerFactory
  • 将 WebApp 授权给 ADFS 以访问 Dynamics CRM Web API

    我有一个 Web 应用程序需要与 Dynamics CRM 365 Web API 通信 Dynamics CRM 配置为 ADFS 上的依赖方 服务器是 Windows Server 2016 一切都在本地 而不是在 Azure 上 我为
  • 导入 org.ksoap2.SoapEnvelope 时遇到问题

    正在使用网络服务 从互联网上获取了一些示例代码 导入时出现一些错误 import org ksoap2 SoapEnvelope import org ksoap2 serialization SoapObject import org k
  • 如何从 CustomViewController 中更改 RootViewController(在 AppDelegate 中)?

    再会 我的应用程序具有在 AppDelegate 中加载的授权表单 SigninController 登录后 在 SigninController m 中检查 应该出现 TabBarController 作为应用程序的主视图 如何将控制器从
  • BigQuery 数据类型

    我正在开始一个新项目 只是想在定义表模式之前进行验证 BigQuery 是否支持以下以外的其他功能 string integer float boolean BigQuery 数据类型官方文档 https cloud google com
  • python 中打印变量和字符串

    好吧 我知道如何打印变量和字符串 但是我如何打印类似 我的字符串 card price 的内容 它是我的变量 我的意思是 这是我的代码 print I have and here I would like to print my varia
  • 如何在 Dart 中打印美元符号 $

    我实际上需要在 Dart 中在变量之前打印一个美元符号 例如 void main int dollars 42 print I have dollars I have 42 我希望输出为 我有 42 美元 我怎样才能做到这一点 谢谢 飞镖弦
  • Java:删除链表中的所有元素

    Java中如何删除链表中的所有元素without使用已经可用的clear 方法 这项练习的灵感来自于电话采访中收到的一个问题 说我可以用 C 来做这个 void DeleteAllElement ListElement head ListE
  • 用于分享帖子的 Yammers REST API

    我想使用 REST API 从我的业务应用程序共享帖子 不是发布新消息 而是共享现有帖子 有谁知道要使用哪个端点以及如何实现它 当您使用 Yammer API 创建新帖子时 请将参数 shared message id 与要共享的消息的 m
  • 为什么 justify-content 不以我的 div 为中心?

    我试图将两个 div 水平居中放在爸爸 div 内 爸爸 div 设置为flex direction column因为我希望子 div 一个在另一个之下 但位于页面的中心 justify content center 应该做但不起作用 我终