为什么 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 为中心? 的相关文章

随机推荐

  • 提取行 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 应该做但不起作用 我终