CSS - 将图像定位在文本旁边

时间:2009-06-30 21:32:58

标签: css positioning

我正在建立一个网站,其中图片需要在文本内容旁边呈现 - 一种伪的两列布局,因为图像和文本来自单个html源。

通过将图像作为自己的段落并浮动它,我发现了一种非常简单的方法。如果没有这些额外的段落,并且只将额外的CSS归因于图像,是否还有更简单的方法(关于html)?

如果浮动图像与文本位于同一段落中,则带图像和不带图像的段落宽度不同。

编辑:基本上,我正在寻找尽可能简单的HTML标记来定位像this这样的图片。 CSS可能很复杂;)

CSS:
p { width: 500px; }
p.image { float: right; width: 900px; }


Current HTML:
<p class="image"><img src="image.jpg" /></p>
<p>Some text here.</p>


Is the above possible with this HTML?
<p><img src="image.jpg" /></p>

5 个答案:

答案 0 :(得分:10)

你在找这个吗?

p img { float: right; width: 900px; }

这将匹配p-tags内的所有img-tag。 但我建议始终使用类或ID来匹配CSS规则。只是使用标签名称迟早会导致恼人的陷阱。

修改

嗯,也许我弄错了。您想将float: right; width: 900px;应用于p元素,而不是img-elements ...

AFAIK无法选择特定元素的父级。它总是在PARENT - &gt;方向上工作。孩子,不是孩子 - &gt; PARENT。

答案 1 :(得分:2)

没有。使用p中的img,您可以向右浮动图像,但文本不会保留在列中。它将包裹在图像下方。您应用于p的任何右边距或填充也将适用于img。

由于您有两条相关信息,我会将它们包装在div中,然后将它们放在div中。

.info {width:900px;}
.info img {float:right;}
.info p {margin-right:400px;}

<div class="info">
    <img src="image.jpg" />
    <p>Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas.</p>
</div>

答案 2 :(得分:1)

回应Emily的回答。

  

没有。有了im里面的img,你可以   向右浮动图像但文本   不会留在专栏中。它会   包裹在图像下方。没事   您应用于p的边距或填充   也适用于img。

虽然她是对的,但就她而言,有一个解决方法。虽然它不理想:

p {position: relative; padding-right: 950px; /* width of the image + 50px margin */ }

img {position: absolute; top: 0; right: 0; }

这应该将图像放在p的右上角,同时将文本强制转换为p元素的左边界与950px右边距之间的列。不理想,有点乱,但它允许柱状效果,而无需添加额外的标签。

... 除非您要在段落末尾添加clearfix brbr.clearfix: display: block; clear: both)(以强制p标记扩展超过图片的简短段落。)

答案 3 :(得分:1)

是的,刚试过这个, 确保使用严格的doctype

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
    <html xmlns="http://www.w3.org/1999/xhtml"> 

<style>
p { width: 500px; position:relative;}
p img { position:absolute; margin-left:520px;}
</style>

<p><img src="PastedImage.jpg" />text text text text text text text text text text text text text text text text text text text text text text text text text text text </p>

答案 4 :(得分:-1)

我在这里编写了这行代码,以帮助我将一些文本准确定位到我想要的位置。我可能是一个新手,但它完成了简单,容易和精确的工作。和所有HTML。

<a href="http://elonmusk.com" STYLE="position:absolute; TOP: 24px; LEFT:50px;">put your txt in here and use the Top and Left values to position the text precisely where you want it</a>

你也可以使用href字段使你的文字成为超链接,或者如果你现在想要你可以jus删除href字段,但要注意保持&#34;

<a STYLE="position:absolute; TOP: 24px; LEFT:50px;">txt go here - use Top & Left values to position it. ex. of text with no hyperlink</a>