css 在一个包含元素中,如何将一个元素右对齐,另一个元素左对齐?

x6h2sr28  于 2023-01-14  发布在  其他
关注(0)|答案(7)|浏览(281)

这对我来说是很常见的情况:

<div>
 <p>Left aligned element</p>
 <img title="right aligned element" />
</div>

我也知道三种解决办法

div{
  width: 100px;
}
p{
  display: inline-block;
  width: 70px
}
img{
  display: inline-block;
  width: 30px
}

当容器的大小与包含块完全匹配时,右边的内容将与右边对齐。

**缺点:**我的经验(不知道为什么)是不同浏览器的像素数不同。这使得内容在一些浏览器中下拉到下一行。

div{
  height: 100px
}    
p{

  float: left;
}
img{
  float: right;
}

**缺点:**这个例子的问题是,我希望包含元素的高度由p或img的高度来设置,无论哪个更高。

div{
  display: relative;
}
p{
  width: 70px;
}
img{
  display: aboslute;
  right: 0
}

**缺点:**这个依赖于左侧元素的高度,而且更新它以使其在移动的设备上工作需要更多的工作。(通常,像这样的内容倾向于放置在彼此的顶部)

你用什么方法?有更好的方法吗?

ut6juiuv

ut6juiuv1#

我通常都这样
用于左元素

display:inline-block;

右元素

float:right;

它可以重置和排列浮点数,如果我左边没有任何东西,我就创建一个空元素,然后用同样的方法浮动右边

7dl7o3gd

7dl7o3gd2#

你可以把div设为display: flex,把图像设为align-self: flex-end,这样就不会失去相对性。

div{
  display: flex;
}
p {
  width: 70px;
}
img {
  align-self: flex-end;
}
ffdz8vbo

ffdz8vbo3#

我认为你的第一种方法更好。关于浏览器之间的像素差异,这是由于标签之间的空白。你可以通过注解掉空白来解决这个问题,如下所示:
超文本:

<div><!--
    --><p>Left aligned element</p><!--
    --><img title="right aligned element" /><!--
--></div>

在css中,使用font-size:0作为container,并在需要的子元素中定义font-size
CSS:

div{
    width: 100px;
    font-size:0
}
p{
  display: inline-block;
  width: 70px;
  font-size:12px;
}
img{
  display: inline-block;
  width: 30px
}

演示:http://jsfiddle.net/lotusgodkk/GCu2D/181/

eeq64g8w

eeq64g8w4#

我通常会选这样的
超文本标记语言

<div class="container">
    <div>
        <p>Left aligned element</p>
    </div>
    <div>
        <img title="right aligned element" />
    </div>
</div>

中央支助系统

.container {
    display: table;
    width: 100px;
}
.container > div {
    display: table-cell;
    vertical-align: top;
}
p {
    width: 70px;
}

DEMO

omhiaaxx

omhiaaxx5#

关于您的内联块解决方案:在<p><img>之间有空格(是的,换行符+制表符也算作空格),这使得<div>中所有内容的计算大小都大于100px。(<p> +““+ <div>
我想大多数人倾向于使用floating,因为它很容易使用,唯一的缺点,正如你提到的,是父崩溃。为了避免这一点,clearfixes是你应该阅读的东西。

pes8fvy9

pes8fvy96#

对我来说,最简单的方法是给予父元素display: flexjustify-content: space-between

<div style="display: flex; justify-content: space-between;">
  <p>Left aligned element</p>
  <img title="right aligned element" />
</div>

这样,段落将移到左边,图像移到右边。

slhcrj9b

slhcrj9b7#

使用浮动

.left{
 float: left;
     }
   .right{
 float: right;
     }

相关问题