web-dev-qa-db-ja.com

画像の横にある複数行のテキスト(CSS-HTML)

画像の横に2行のテキストを配置しようとしています。

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

私はウェブ全体を見ましたが、これを行う方法を理解することができませんでした。どんな助けも大歓迎です。

22
OstlerDev

float: center;のようなものはありません。leftright、またはnoneのいずれかを選択できます。

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

画像上でfloat: left;を実行すると、目的の処理が実行されます。

中央に配置したい場合は、画像とテキストをコンテナにラップし、コンテナの幅を修正してmargin: 0 auto;を実行してから、引き続き画像をフロートさせる必要があります。ただし、ラッパーによって制約されます。

16
Ming

これは、どこでもテストできるようにsvgを使用したスニペットです。

.img{
    float: left;
    margin-right:1rem;
}
<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>
3
mvndaai

この投稿は古いものですが、要素をdivでラップし、vertical-align:topこれでdivが完成しました。

2
user3491125

確認してください。明確に定義された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>
1
Asraful Haque

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

1
Phan Van Linh

私はこれが古い投稿であることを知っていますが、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/

0
Ricky Levi