我试图在图像旁边放两行文字,有点像这样
_________
| | Line one of text
| image |
| | Line two of text
---------
这是我到目前为止的代码
<p style="color: #fff;"><img src="assets/image.png"><span style="">Line one of text</span>
<br>
<span class="ban2">Line 2 of text</span></p>
.banner p {
font-family: "Gentium Basic";
font-size: 19px;
text-align: center;
color: #aaa;
margin-top: -10;
display: block;
}
.banner img {
float: center;
margin: 5px;
}
.banner span {
padding-top: 50px;
font-size: 17px;
vertical-align:top;
}
.banner .ban2 span {
padding-top: 50px;
font-size: 17px;
vertical-align:top;
}
但目前这样做:
_________
| | Line one of text
| image |
| |
---------
Line two of text
我已经浏览了整个网络,但未能弄清楚如何做到这一点,非常欢迎任何帮助。
答案 0 :(得分:16)
没有float: center;
这样的事情您可以选择left
,right
或none
。
如果您在图片上float: left;
,那么它就能完成你所追求的目标。
如果你想让它居中,那么你将不得不将图像和文本包装在容器中,修复容器的宽度并对其进行margin: 0 auto;
,然后继续让图像浮动 - 除非它受到包装器的约束。
答案 1 :(得分:3)
这是一个使用svg的代码段,因此您可以在任何地方进行测试。
.img{
float: left;
margin-right:1rem;
}
&#13;
<div>
<svg class="img" width="50" height="50" >
<rect width="50" height="50" style="fill:black;"/>
</svg>
<p>
Line 1
<br>
Line 2
</p>
</div>
&#13;
答案 2 :(得分:2)
我知道这篇文章已经过时但是将您的元素包装在div
并将vertical-align:top
应用于此div
并且您已完成。
答案 3 :(得分:1)
检查一下。这是明确定义的css。
<!DOCTYPE html>
<html>
<head>
<title>Selectors</title>
<style>
.banner p {
font-family: "Gentium Basic";
font-size: 19px;
text-align: center;
color: #aaa;
margin-top: -10;
display: block;
}
img, span {
float:left;
}
.banner img {
float: center;
margin: 5px;
}
[class="ban1"]{
font-size: 17px;
position:relative;
top:50px;
left:11px;
}
[class="ban2"] {
font-size: 17px;
position: relative;
left: -97px;
top: 74px;
}
</style>
</head>
<body>
<div class="banner">
<div class="wrapper">
<p><img src="span.png"><span class="ban1">Line one of text</span>
<span class="ban2">Line 2 of text</span>
</p>
</div>
</div>
</body>
</html>
答案 4 :(得分:1)
这是我的演示,其中使用了float
和overflow
并进行了一些解释
.div1 {
border: 3px solid #0f0;
overflow:auto; // without overflow here, if the "Line 1" and "Line 2" is short then "Next elements" will display below "Line 2" and the image will cover the "Next elements"
}
.img {
float: left;
width:100px;
height:100px;
background: #000
}
.div2 {
float: left; // without float here, if "Line 1" and "Line 2" is long -> text will display both at right and bottom the image
}
<div class="div1">
<img class="img"/>
<div class="div2">
<p> Line 1 </p>
<p> Line 2 </p>
</div>
</div>
<p>Next elements</p>
希望有帮助
答案 5 :(得分:0)
我知道这是旧文章,但仍然想说,不仅float
会这样做,<img>
标记还有一个名为align="left"
的内置属性,它可以像好
<p>
<img src="smiley.gif" align="left"><span>Line one of text</span>
<br>
<span class="ban2">Line 2 of text</span>
</p>
答案 6 :(得分:0)
我建议使用效果很好的旧表。就CSS而言,只需要添加vertical-align: top
属性。
<table>
<tbody>
<tr>
<td class="img-container">
<img src="https://img2.gratispng.com/20180324/sbe/kisspng-google-logo-g-suite-google-5ab6f1f0dbc9b7.1299911115219389289003.jpg"/>
</td>
<td class="content-container">
<span class="description">This is a very long text that creates multiple lines with the image at left side</span>
</td>
</tr>
</tbody>
</table>