图像旁边有多行文字(CSS-HTML)

时间:2013-12-05 04:00:12

标签: html css image alignment

我试图在图像旁边放两行文字,有点像这样

_________
|       | 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

我已经浏览了整个网络,但未能弄清楚如何做到这一点,非常欢迎任何帮助。

7 个答案:

答案 0 :(得分:16)

没有float: center;这样的事情您可以选择leftrightnone

http://jsfiddle.net/vd7X8/1/

如果您在图片上float: left;,那么它就能完成你所追求的目标。

如果你想让它居中,那么你将不得不将图像和文本包装在容器中,修复容器的宽度并对其进行margin: 0 auto;,然后继续让图像浮动 - 除非它受到包装器的约束。

答案 1 :(得分:3)

这是一个使用svg的代码段,因此您可以在任何地方进行测试。

&#13;
&#13;
.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;
&#13;
&#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)

这是我的演示,其中使用了floatoverflow并进行了一些解释

.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>

希望有帮助

enter image description here

答案 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>

提琴:http://jsfiddle.net/356akcoy/

答案 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>

小提琴https://jsfiddle.net/fypa0k4w/