質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

Q&A

解決済

1回答

1815閲覧

CSS - transform を利用して画像を移動させた場合にできる隙間を埋めたい

tiitoi

総合スコア21956

HTML

HTMLとは、ウェブ上の文書を記述・作成するためのマークアップ言語のことです。文章の中に記述することで、文書の論理構造などを設定することができます。ハイパーリンクを設定できるハイパーテキストであり、画像・リスト・表などのデータファイルをリンクする情報に結びつけて情報を整理します。現在あるネットワーク上のほとんどのウェブページはHTMLで作成されています。

CSS

CSSはXMLやHTMLで表現した色・レイアウト・フォントなどの要素を指示する仕様の1つです。

0グッド

0クリップ

投稿2020/11/15 05:50

質問内容

FlexBox を使って複数の画像を横に並べており、CSS の transform プロパティを利用して一部の画像を回転、移動させています。
移動させて空いた領域 (下画像の赤の領域) の隙間を空かないようにしたいのですが、なにかいい方法はありますでしょうか?
CSS のみの修正では難しい場合、HTML の DOM 構造を変更しても大丈夫です。
よろしくおねがいします。

イメージ説明

1つ前の質問: HTML - CSS - 画像を回転させ、重ならないように横に並べる方法|teratail

環境

  • Chrome 86

コード

sample.html

html

1<!DOCTYPE html> 2 3<head> 4 <link href="https://cdnjs.cloudflare.com/ajax/libs/normalize/8.0.0/normalize.css" rel="stylesheet"> 5 <style> 6 .hand_and_melded_blocks { 7 width: 500px; 8 height: 100px; 9 display: flex; 10 } 11 12 .hand_tiles { 13 display: flex; 14 align-self: flex-end; 15 } 16 17 .melded_block { 18 display: flex; 19 align-self: flex-end; 20 margin-left: 5px; 21 } 22 23 /* 横倒しになる画像 */ 24 .Rotated { 25 margin-left: 14px; 26 transform-origin: bottom right; 27 transform: rotate(270deg) translate(100%); 28 } 29 30 /* 横倒しになる画像の上に乗っかる画像 */ 31 .Rotated2 { 32 margin-left: 14px; 33 transform-origin: bottom right; 34 transform: rotate(270deg) translate(200%, -100%); 35 } 36 </style> 37</head> 38 39<body> 40 <div class="hand_and_melded_blocks"> 41 <div class="hand_tiles"> 42 <img src="tile.png" /> 43 <img src="tile.png" /> 44 <img src="tile.png" /> 45 <img src="tile.png" /> 46 </div> 47 48 <div class="melded_block"> 49 <img src="tile.png" class="Rotated"> 50 <img src="tile.png" /> 51 <img src="tile.png" /> 52 </div> 53 54 <div class="melded_block"> 55 <img src="tile.png" class="Rotated"> 56 <img src="tile.png" class="Rotated2"> 57 <img src="tile.png" /> 58 <img src="tile.png" /> 59 </div> 60 </div> 61</body> 62 63</html>

リソース

tile.png
イメージ説明

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

ベストアンサー

横倒しした時の幅(元の高さ)分、ネガティブマージンで移動させればいいでしょう。

css

1/* 横倒しになる画像の上に乗っかる画像 */ 2.Rotated2 { 3 margin-left: 14px; 4 margin-right: -54px; /* 追加 */ 5 transform-origin: bottom right; 6 transform: rotate(270deg) translate(200%, -100%); 7}

または、上の横倒しブロックをネガティブマージンで移動させてもいいですね。
こちらの方かシンプルになります。

css

1/* 横倒しになる画像の上に乗っかる画像 */ 2.Rotated2 { 3 margin-left: -40px; 4 transform-origin: bottom right; 5 transform: rotate(270deg) translate(200%); 6}

投稿2020/11/15 06:18

編集2020/11/15 06:24
hatena19

総合スコア33790

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

tiitoi

2020/11/15 06:30

なるほど。マージンを使って調整する方法は思いつきませんでした。 迅速なご回答ありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問