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

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

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

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

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

Q&A

解決済

1回答

991閲覧

【HTML/CSS】このデザインの実装方法がわかりません【画像あり】

yjrc6eek

総合スコア1

CSS3

CSS(Cascading Style Sheet)の第3版です。CSS3と略されることが多いです。色やデザインを柔軟に変更することが可能になります。

HTML5

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

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/06/24 04:27

編集2020/06/24 08:40

イメージ説明
上図のようなデザインを実装しようと試みています。
rowの中でボタン&テキストをcol-autoに、画像をcolに入れることでボタンと画像を横並びにしたいのですが、下図のようにボタンが画像の上に来てしまいます。
イメージ説明
そのため、ボタンを押すと下図のような動きになります。
イメージ説明

【実現したいこと】
①ボタンと画像を同じ行に置く
②ボタンをクリックしテキストを表示すると、テキストが表示された領域分画像が縮小される

最終的には画像の右にもボタンを置き、画像をサンドイッチするような形にしたいです。

よろしくお願いします。

HTML

1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="utf-8"> 6 <title>Title</title> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <meta name="viewport" content="width=device-width, initial-scale=1"> 9 <link rel="stylesheet" href="css/bootstrap.css"> 10 <link rel="stylesheet" href="css/style.css"> 11 12 <script type="text/javascript" src="js/jquery-3.5.1.js"></script> 13 <script type="text/javascript" src="js/bootstrap.js"></script> 14</head> 15 16<body> 17 <div class="container-fluid" style="height: auto;"> 18 <div class="row"> 19 <!-- テキスト(左) --> 20 <div class="col-auto"> 21 <button type="button" class="btn btn-info" data-toggle="collapse" data-target="#target01">click 22 me</button> 23 <div id="target01" class="collapse"> 24 <div class="panel panel-default"> 25 <div class="panel-body"> 26 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト 27 </div> 28 </div> 29 </div> 30 </div> 31 <!-- 画像 --> 32 <div class="col"> 33 <img src="img/img.png" alt="" class="img-responsive center-block"> 34 </div> 35 </div> 36 <!-- フッター --> 37 <div class="row"> 38 <footer class="footer"> 39 <div class="container"> 40 <p class="text-muted">フッター</p> 41 </div> 42 </footer> 43 </div> 44 </div> 45</body> 46 47</html> 48

CSS

1html { 2 position: relative; 3 min-height: 100%; 4} 5 6body { 7 margin-bottom: 60px; 8} 9 10.footer { 11 position: absolute; 12 bottom: 0; 13 width: 100%; 14 height: 60px; 15 background-color: #f5f5f5; 16} 17 18.panel { 19 margin-top: 0px; 20} 21 22/* テキスト */ 23 24#target01 { 25 width: 300px; 26 max-height: 300px; 27 overflow: scroll; 28} 29 30/* 画像 */ 31 32img { 33 padding: 15px; 34} 35 36@media (min-width: 1201px) { 37 img { 38 width: 80%; 39 } 40} 41 42@media (max-width: 1200px) { 43 img { 44 width: 100%; 45 padding: 0px; 46 } 47}

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

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

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

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

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

miyabi_takatsuk

2020/06/24 06:05

最低限CSSは必要ですが、CSSも記載お願いします。 また、ボタンクリック時の変化の処理はJavaScriptを使っているなら、そのソースコードも記載したほうがいいかと。
guest

回答1

0

ベストアンサー

現在の状態は左に隠しているテキスト部分が画像を押しのけているのではなく、Bootstrapのグリッドシステムでcol-lg-3を利用して3列分の幅を確保されている状態です。
これはテキスト部分とは関係ない話なので、テキスト部分の表示有無に関わらず幅が確保されてしまっています。

col-autoを利用して幅を要素に合わせて変わるようにしれやれば、テキスト部分の表示を行ったときに幅が変わるようになります。

html

1<!DOCTYPE html> 2<html lang="ja"> 3 4<head> 5 <meta charset="utf-8"> 6 <title>Title</title> 7 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 8 <meta name="viewport" content="width=device-width, initial-scale=1"> 9 <link rel="stylesheet" href="css/style.css"> 10 11 <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous"> 12 <script src="https://code.jquery.com/jquery-3.3.1.slim.min.js" integrity="sha384-q8i/X+965DzO0rT7abK41JStQIAqVgRVzpbzo5smXKp4YfRvH+8abtTE1Pi6jizo" crossorigin="anonymous"></script> 13 <script src="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/js/bootstrap.min.js" integrity="sha384-JjSmVgyd0p3pXB1rRibZUAYoIIy6OrQ6VrjIEaFf/nJGzIxFDsf4x0xIM+B07jRM" crossorigin="anonymous"></script> 14 15</head> 16 17<body> 18 <div class="container-fluid" style="height: auto;"> 19 <div class="row"> 20 <!-- テキスト(左) --> 21 <div class="col-auto"> 22 <button type="button" class="btn btn-info" data-toggle="collapse" data-target="#target01">click 23 me</button> 24 <div id="target01" class="collapse" style="width:300px;"> 25 <div class="panel panel-default"> 26 <div class="panel-body"> 27 テキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキストテキスト 28 </div> 29 </div> 30 </div> 31 </div> 32 <!-- 画像 --> 33 <div class="col"> 34 <img src="img/img.png" alt="" class="img-responsive center-block"> 35 </div> 36 </div> 37 <!-- フッター --> 38 <div class="row"> 39 <footer class="footer"> 40 <div class="container"> 41 <p class="text-muted">フッター</p> 42 </div> 43 </footer> 44 </div> 45 </div> 46</body> 47 48</html>

イメージ

投稿2020/06/24 06:42

編集2020/06/24 12:53
ku__ra__ge

総合スコア4524

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

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

yjrc6eek

2020/06/24 08:41

ku__ra__ge様のご回答を参考に修正を行いましたが、ボタンと画像の間で改行が行われてしまい未解決の状態です。修正後のソースを再度ご確認いただけますと幸いです。
ku__ra__ge

2020/06/24 08:46

改行されるのは表示領域の横幅が足りていないからだと思います。 `style="width:300px;"`の部分を調整してみてください。
yjrc6eek

2020/06/24 09:02

画像に届かない表示領域(width:50px)にしてみましたが、改行されてしまいます。
ku__ra__ge

2020/06/24 12:50

うーん、私の環境では改行されませんが。 回答にhtml全体をのせるようにしました。css/style.cssの中身は質問にかかれているスタイルシートです。 firefox77.0.1、chrome83.0.4103.116で動作確認しています。
yjrc6eek

2020/06/24 13:55

ku__ra__ge様のhtmlを私の環境で動かしたところ、改行されませんでした。(Bootstrapのバージョンで挙動が違うのでしょうか?) とにかく、これで先に進むことができます。ご回答ありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問