画像の横に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
私はウェブ全体を見ましたが、これを行う方法を理解することができませんでした。どんな助けも大歓迎です。
float: center;
のようなものはありません。left
、right
、またはnone
のいずれかを選択できます。
画像上でfloat: left;
を実行すると、目的の処理が実行されます。
中央に配置したい場合は、画像とテキストをコンテナにラップし、コンテナの幅を修正してmargin: 0 auto;
を実行してから、引き続き画像をフロートさせる必要があります。ただし、ラッパーによって制約されます。
これは、どこでもテストできるように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>
この投稿は古いものですが、要素をdiv
でラップし、vertical-align:top
これでdiv
が完成しました。
確認してください。明確に定義された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>
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>
お役に立てば幸いです
私はこれが古い投稿であることを知っていますが、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>