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

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

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

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

CSS

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

Q&A

2回答

5633閲覧

htmlのimgに合わせたボタンの配置

randr

総合スコア202

HTML5

HTML5 (Hyper Text Markup Language、バージョン 5)は、マークアップ言語であるHTMLの第5版です。

Bootstrap

BootstrapはウェブサイトデザインやUIのWebアプリケーションを素早く 作成する可能なCSSフレームワークです。 Twitter風のデザインを作成することができます。

CSS

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

0グッド

0クリップ

投稿2018/05/18 15:25

編集2018/05/19 14:21

実現したいこと

  • htmlにて画像とボタンを表示します。
  • 画像は常に全体が確認できるよう高さを調整します。
  • 画像の高さに合わせてアスペクト比を保持して横幅を調整します。
  • 画像のサイズは様々です。
  • 画像を画面の中央に表示します。
  • ボタンは画像の上側に表示します。 ←追記
  • そのボタンの左端を画像の左端に合わせます。
  • 表示したときだけではなく画面のサイズを変更したときもその条件に合うようにサイズが調整されます。

基準となる画像
イメージ説明
縦サイズが小さくなった場合
イメージ説明
横が小さくなった
イメージ説明

やれたこと

html

1<body> 2 <div id="d_main"> 3 <div id="d_waku" class="text-center"> 4 <img src="test.png" /> 5 </div> 6 </div> 7</body> 8

css

1html, body, #d_main { 2 height: 100%; 3 width: calc(100% - 20px); 4} 5#d_waku { 6 height: calc(100% - 100px); 7 width: auto; 8} 9img { 10 height: 100%; 11 widht: auto; 12 padding: 10px; 13 background-color: gray; 14}

ただこの状態だと縦長画面の場合に縦に伸びてアスペクト比が維持されません。
また、ボタンの左位置はまったく対応できていません。

やってみたこと

<table>タグを使用して、1つ目の<tr>に<button>、2つ目の<tr>に<img>を配置してみましたが、サイズ制御がうまくいきませんでした。

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

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

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

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

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

kei344

2018/05/18 15:57

アスペクト比が事前にわかっているならボタンの左位置の固定も出来ますが、わからないならJavaScriptが必要ですよ。
kei344

2018/05/18 16:05

画像がすべて表示されていないので、アップロードのしなおしをお勧めします。
guest

回答2

0

画面縦幅を下回る高さの画像は 高さが追随しないが。

HTML

1<div><button>button</button><img src="https://placehold.jp/24/cc9999/993333/1200x600.png" alt=""></div>

CSS

1div { 2 display: inline-block; 3} 4button { 5 height: 25px; 6} 7img { 8 max-width: 100vw; 9 max-height: calc(100vh - 25px); 10} 11button, img { 12 display: block; 13} 14body, html { 15 padding: 0; 16 margin: 0; 17 text-align: center; 18} 19```**動くサンプル:**[https://jsfiddle.net/v3h7atyr/](https://jsfiddle.net/v3h7atyr/)

投稿2018/05/22 16:27

kei344

総合スコア69407

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

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

0

object-fit: contain を使えば良いと思います。

IE と Edge v15 以下は非対応なのでそれらのブラウザも対応に含めるなら、 Polyfill 使わなければなりませんが。

css

1img { 2 height: 100%; 3 widht: 100%; 4 padding: 10px; 5 background-color: gray; 6 object-fit: contain; 7}

投稿2018/05/18 17:39

yhg

総合スコア2161

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問