这对我来说是很常见的情况:
<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
}
**缺点:**这个依赖于左侧元素的高度,而且更新它以使其在移动的设备上工作需要更多的工作。(通常,像这样的内容倾向于放置在彼此的顶部)
你用什么方法?有更好的方法吗?
7条答案
按热度按时间ut6juiuv1#
我通常都这样
用于左元素
右元素
它可以重置和排列浮点数,如果我左边没有任何东西,我就创建一个空元素,然后用同样的方法浮动右边
7dl7o3gd2#
你可以把div设为
display: flex
,把图像设为align-self: flex-end
,这样就不会失去相对性。ffdz8vbo3#
我认为你的第一种方法更好。关于浏览器之间的像素差异,这是由于标签之间的空白。你可以通过注解掉空白来解决这个问题,如下所示:
超文本:
在css中,使用
font-size:0
作为container
,并在需要的子元素中定义font-size
。CSS:
演示:http://jsfiddle.net/lotusgodkk/GCu2D/181/
eeq64g8w4#
我通常会选这样的
超文本标记语言
中央支助系统
DEMO
omhiaaxx5#
关于您的内联块解决方案:在
<p>
和<img>
之间有空格(是的,换行符+制表符也算作空格),这使得<div>
中所有内容的计算大小都大于100px。(<p>
+““+<div>
)我想大多数人倾向于使用floating,因为它很容易使用,唯一的缺点,正如你提到的,是父崩溃。为了避免这一点,clearfixes是你应该阅读的东西。
pes8fvy96#
对我来说,最简单的方法是给予父元素
display: flex
和justify-content: space-between
:这样,段落将移到左边,图像移到右边。
slhcrj9b7#
使用浮动