例如,您想在文本旁边显示图像,通常我会这样做:
<table>
<tr>
<td><img ...></td>
<td>text</td>
</tr>
</table>
有更好的选择吗?
答案 0 :(得分:19)
你应该浮动它们在清除的容器中。
示例:
https://jsfiddle.net/W74Z8/504/
一个干净的实现是“clearfix hack”。这是Nicolas Gallagher的版本:
/**
* For modern browsers
* 1. The space content is one way to avoid an Opera bug when the
* contenteditable attribute is included anywhere else in the document.
* Otherwise it causes space to appear at the top and bottom of elements
* that are clearfixed.
* 2. The use of `table` rather than `block` is only necessary if using
* `:before` to contain the top-margins of child elements.
*/
.clearfix:before,
.clearfix:after {
content: " "; /* 1 */
display: table; /* 2 */
}
.clearfix:after {
clear: both;
}
/**
* For IE 6/7 only
* Include this rule to trigger hasLayout and contain floats.
*/
.clearfix {
*zoom: 1;
}
答案 1 :(得分:7)
是的,div和CSS通常是放置HTML的更好,更简单的方法。有很多不同的方法可以做到这一点,这完全取决于上下文。
例如,如果您想将图像放在文本的右侧,您可以这样做:
<p style="width: 500px;">
<img src="image.png" style="float: right;" />
This is some text
</p>
如果你想并排显示多个项目,通常也会选择float。例如:
<div>
<img src="image1.png" style="float: left;" />
<img src="image2.png" style="float: left;" />
<img src="image3.png" style="float: left;" />
</div>
将这些图像浮动到同一侧,只要你有水平空间,就会彼此相邻。
答案 2 :(得分:3)
这些天div是新常态
<div style="float:left"><img.. ></div>
<div style="float:right">text</div>
<div style="clear:both"/>
答案 3 :(得分:3)
所有这些答案都可以追溯到2016年或更早...使用flex-boxes
为此提供了一个新的网络标准。一般来说,floats
这类问题现在被人们所反对。
HTML
<div class="image-txt-container">
<img src="https://images4.alphacoders.com/206/thumb-350-20658.jpg">
<h2>
Text here
</h2>
</div>
CSS
.image-txt-container {
display:flex;
align-items:center;
flex-direction: row;
}
答案 4 :(得分:1)
display:inline
怎么样?
<html>
<img src='#' style='display:inline;'/>
<p style='display:inline;'> Some text </p>
</html>
答案 5 :(得分:1)
通常我会这样做:
<div>
<p>
<img src='1.jpg' align='left' />
Text Here
<p>
</div>
答案 6 :(得分:0)
这取决于您要执行的操作以及您显示的数据/信息类型。通常,表保留用于显示表格数据。
您的情况的替代方案是使用css。一个简单的选择是浮动图像并给它一个余量:
<p>
<img style="float: left; margin: 5px;" ... />
Text goes here...
</p>
这会导致文本环绕图像。如果您不希望文本环绕图像,请将文本放在单独的容器中:
<div>
<img style="float: left; margin: ...;" ... />
<p style="float: right;">Text goes here...</p>
</div>
请注意,可能需要为段落标记指定宽度以显示您喜欢的方式。另请注意,对于浮动元素下方显示的元素,您可能需要添加样式“clear:left;” (或明确:正确,或明确:两者)。
答案 7 :(得分:0)
negative margin
会有很多帮助!
html DOM如下所示:
<div class="main">
<div class="main_body">Main content</div>
</div>
<div class="left">Left Images or something else</div>
CSS:
.main {
float:left;
width:100%;
}
.main_body{
margin-left:210px;
height:200px;
}
.left{
float:left;
width:200px;
height:200px;
margin-left:-100%;
}
main_body
会响应它,可能会帮助你!
答案 8 :(得分:-1)
尝试在<DIV>
标记中调用图像,这样可以实现更平滑,更快的加载时间。请注意,因为这是背景图像,您还可以在<DIV></DIV>
标记之间的图像上放置文本。这适用于自定义商店/商店列表...以发布一个很酷的“售完!”叠加,或任何你可能想要的。
这是图片/文本并排版本,可用于博客文章和文章列表:
<div class="whatever_container">
<h2>Title/Header Here</h2>
<div id="image-container-name"style="background-image:url('images/whatever-this-is-named.jpg');background color:#FFFFFF;height:75px;width:20%;float:left;margin:0px 25px 0px 5px;"></div>
<p>All of your text goes here next to the image.</p></div>