当前位置: 首页 > 知识库问答 >
问题:

对齐方框内的元素[副本]

巫马承德
2023-03-14

我正在尝试对齐一个div内的项目,我读了一些问题,但仍然有这个疑问。

我目前拥有的:

代码是

null

css prettyprint-override">.wrapper {
  border: 1px solid black;
  width: 50%;
  display: flex;
  align-items: center;
}
.image {
  border: 1px solid green;
}
.title {
  border: 1px solid blue;
  margin-left: 1%;
}
p {
  border: 1px solid red;
  float: right; /* Does not work */
}
<div class="wrapper">
  <span class="image">
    <img src="http://opae.a-superlab.com/forum/styles/art_air/imageset/forum_read.png">
  </span>
  <span class="title">Category Title</span>
  <p>Category description</p>
</div>

null

类别描述的float:right不起作用:(我希望它位于块的最右侧。

margin-left设置为显式长度不是一个选项,因为“类别描述”的内容是可变的。

共有1个答案

萧星火
2023-03-14

这是因为您使用的是flexbox,因此float会被忽略,如规范中所述:

>

  • 在概述中:

    Flex布局表面上类似于块布局。它缺少许多可以在块布局中使用的更复杂的以文本或文档为中心的属性,如浮点和列。

    在柔性容器中

    floatclear对flex项没有影响,也不会使其脱离流。但是,float属性仍然可以通过影响display属性的计算值来影响方框生成。

    在Flex项示例中

    <div style="display:flex">
        <!-- flex item: floated element; floating is ignored -->
        <div id="item2" style="float: left;">float</div>
    </div>
    

    但是,如右对齐flex项?中所述,在flexbox中,您可以使用margin-left:auto将flex项向右推送:

    null

    .wrapper {
      border: 1px solid black;
      width: 50%;
      display: flex;
      align-items: center;
    }
    .image {
      border: 1px solid green;
    }
    .title {
      border: 1px solid blue;
      margin-left: 1%;
    }
    p {
      border: 1px solid red;
      margin-left: auto;
    }
    <div class="wrapper">
      <span class="image">
        <img src="http://opae.a-superlab.com/forum/styles/art_air/imageset/forum_read.png">
      </span>
      <span class="title">Category Title</span>
      <p>Category description</p>
    </div>

  •  类似资料:
    • 我需要树放置在右上角的Foo。

    • 我真的很难理解有什么区别?从我的研究来看,似乎可以...和之间空格,而可以...、、和? 此外,、和这两个属性似乎是共享的。 使用其中一个比使用另一个有何不同/优势,还是仅仅是偏爱?我觉得他们都是方式相似,只是做同样的事情,有谁知道区别吗?谢谢!!

    • 我正在使用angular 2与Bootstrap 4和angular Material。然而,我有困难正确地对齐我的容器div中的元素。我希望我的按钮和文本都对齐到右手边 下面是我尝试生成如照片所示结果的代码 我也从StackOverflow尝试过这个解决方案 这两种解决方案都不会将元素向右移动。我做错了什么?

    • 问题内容: 我有商品清单。我需要在二维列表中显示它们。每个商品都有子元素:照片,标题,描述,价格和购买按钮,其大小和位置必须采用这种方式:商品行中的所有标题,描述,价格和照片必须位于相同的y坐标位置并具有高度,它是一行中相应的高度元素的最大值。 我已经尝试过:“ grid-template-rows:1fr 1fr 1fr 1fr 30px;” 使所有子元素都位于同一y位置,但是我需要它们的高度以

    • 问题内容: 其他一些问题已经解决了如何最好地应用以使内联块元素均匀分布……例如,如何真正地证明 HTML + CSS中的水平菜单? 但是,浏览器为“清除”行内块元素行的100%宽度元素提供了自己的行。我不知道如何在不使用父元素的情况下摆脱空的垂直空间。 我正在使用的解决方案要求对子元素应用新的解决方案,但是之前设置的所有内容都会丢失。有谁知道更好的解决方案?我想避免使用表,以便在必要时可以包装元素

    • 问题内容: 我正在使用flexbox对齐我的子元素。我想做的是将一个元素居中,而另一个保持最左对齐。通常我会使用来设置left元素。问题是将中心元素推离中心。这是可能的 ,而不 使用绝对定位? HTML和CSS 问题答案: 编辑: 请参阅下面的[Solo答案,这是更好的解决方案。 flexbox背后的想法是提供一个框架,可以轻松地将容器中尺寸可变的元素对齐。这样,提供一个布局而完全忽略一个元素的宽