flexbox div文本不与子元素对齐

Posted

技术标签:

【中文标题】flexbox div文本不与子元素对齐【英文标题】:flexbox div text not align inline with child element 【发布时间】:2022-01-23 15:08:33 【问题描述】:

考虑以下 sn-p:

div 
  display: flex;
  flex: 0 0 45%;
  max-width: 45%;
<div>Lorem ipsum dolor sit amet, <strong>dolor sit</strong>tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.</div>

目前看起来像 enter image description here

但我想对齐 enter image description here

【问题讨论】:

永远不要让你的文本容器成为 flexbox 容器:dev.to/afif/… 不使用 flex 也可以做到。 【参考方案1】:

你可以用另一个 div 包裹起来。

.wrapper     
    max-width: 45%;
    display: flex;
    flex: 0 0 45%;
<div class="wrapper">
  <div>
    Lorem ipsum dolor sit amet, <strong >dolor sit</strong> tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.
  </div>
</div>

.flex-container     
    max-width: 45%;    
    flex: 0 0 45%;    
    display: flex;

.flex-container div 
  background: gray;
  padding: 10px;
  margin: 10px;

.w     
   color: green;
  position: relative;
<div class="flex-container">
  <div>  
      Lorem ipsum dolor sit amet, <strong class="w">dolor sit</strong> tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.  
  </div>

  <div>  
      Lorem ipsum dolor sit amet, <strong class="w">dolor sit</strong> tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.  
  </div>
</div>

【讨论】:

谢谢 Maik,它正在工作,但我在页面上有很多这样的元素,我需要使用 CSS 进行调整,另一个解决方案是我可以更改显示属性。但我正在寻找 flex 属性是否有任何可能的解决方案。 @Milind 我想不出任何你应该这样做的场景。 Display: flex 用于影响子元素的包装器。我已经更新了我的答案以明确表示。【参考方案2】:

你不需要 flex 来使 div 居中。您可以使用margin 执行此操作。检查以下代码 sn-p。

div 
    background:gray;
    width:45%;
    margin-left:auto;
    margin-right:auto;
&lt;div&gt;Lorem ipsum dolor sit amet, &lt;strong&gt;dolor sit&lt;/strong&gt;tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.tempor incididunt ut la.&lt;/div&gt;

【讨论】:

【参考方案3】:
div 
    float: left;
    max-width: 45vw;

【讨论】:

以上是关于flexbox div文本不与子元素对齐的主要内容,如果未能解决你的问题,请参考以下文章

使用 flexbox 左对齐和居中对齐元素

在元素的一部分上居中 Flexbox

当其他元素居中对齐时,使用 Flexbox 将页脚与页面底部对齐

使用 flexbox 将元素与底部对齐

使用flexbox垂直对齐td元素中的元素[重复]

CSS Flexbox - 相对于父元素居中所有具有全高的子元素[重复]