ホームページ > ウェブフロントエンド > CSSチュートリアル > HTML と CSS でテキストを折り返して画像を右下に浮かせるにはどうすればよいですか?

HTML と CSS でテキストを折り返して画像を右下に浮かせるにはどうすればよいですか?

Susan Sarandon
リリース: 2024-11-27 10:30:09
オリジナル
887 人が閲覧しました

How Can I Float an Image to the Bottom Right with Text Wrap in HTML and CSS?

テキストの回り込みによるフローティング画像: 包括的なガイド

HTML と CSS では、特に画像をフローティングさせたい場合、テキストの横に画像を配置するのが難しい場合があります。右下とそれを囲むテキスト。この記事では、スペーサー要素と JavaScript を使用してこの効果を実現する方法について説明します。

スペーサー要素を作成する

画像をページの下部にプッシュするには、 float: right とコンテンツと画像の差に等しい高さを持つスペーサー要素高さ:

<div class="spacer"></div>
<img class="bottomRight" src="" />
ログイン後にコピー

CSS スタイル

次の CSS スタイルを使用します:

.spacer {
  float: right;
  width: 0px;
}
.bottomRight {
  float: right;
  clear: right;
}
ログイン後にコピー

スペーサーの高さの計算

画像を正確に配置するには、 JavaScriptを使用してスペーサーの高さを調整します。この関数は引数としてスペーサー要素を取ります:

function sizeSpacer(spacer) {
  var container = spacer.parentNode;
  var img = spacer.nextElementSibling || spacer.nextSibling;
  var lastContentNode = container.children[container.children.length - 1];
  var h = Math.max(0, container.clientHeight - img.clientHeight);
  var imgBottom = img.getBoundingClientRect().bottom;
  var lastContentBottom = lastContentNode.getBoundingClientRect().bottom;

  // Adjust spacer height to align with content bottom
  while (h > 0 && imgBottom > lastContentBottom) {
    spacer.style.height = --h + "px";
    imgBottom = img.getBoundingClientRect().bottom;
    lastContentBottom = lastContentNode.getBoundingClientRect().bottom;
  }

  if (lastContentBottom > imgBottom) {
    spacer.style.height = ++h + "px";
  }
}
ログイン後にコピー

jQuery Plugin

便宜上、左下または右下のフローティング画像をサポートするこの jQuery プラグインを使用できます。 :

$(function() {
  $(".bottomRight").bottomRight();
});
ログイン後にコピー

以上がHTML と CSS でテキストを折り返して画像を右下に浮かせるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート