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

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

新規登録して質問してみよう
ただいま回答率
85.47%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

HTML

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

CSS

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

Q&A

解決済

4回答

258閲覧

:checkedを使用してフローティングバナーを閉じたい

0murice7

総合スコア1

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

HTML

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

CSS

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

1グッド

0クリップ

投稿2024/03/21 06:44

編集2024/03/29 05:17

実現したいこと

  • フローティングバナーを閉じる
  • 重なっているimgを削除したい

前提

HTMLとCSSでフローティングバナーを作成しようとしています。
左下に画像の固定、×ボタンの実装まではできたものの画像を非表示にすることができません。
javaはまだ勉強していないので可能ならば:checkedを使用して、×ボタン押下→画像非表示を実現したいです。
コードに誤りがあるか見ていただけますと幸いです。

(3/29追記)
:checked実行後、画像が後ろに回り込みます。もしくは何かしらの原因で後ろにももう一枚画像が重なって表示されていたものが出現します。
確認はgoogleのデベロッパーツールで行っています。

該当のソースコード(HTML)(3/29更新)

HTML

1<div class="taikenbatu"> 2 <input type="checkbox" id="batu"> 3 <div class="taikenbn"> 4  <a href="html/taiken.html"><img src="images/taiken.png" alt=""></a> 5 </div> 6 <label for="batu"> 7  <span class="batu"></span> 8 </label> 9</div>

該当のソースコード(CSS)(3/29更新)

pc.CSS

1.taikenbn{ 2 padding: 0; 3 margin: 80px auto 30px auto; 4 text-align: center; 5} 6 7.taikenbn img{ 8 width: 30%; 9 height: auto; 10 margin: 0 auto; 11} 12 13.batu{ 14 display: none; 15}

mobile.CSS

1.taikenbatu{ 2 position: relative; 3 z-index: 999; 4} 5 6.taikenbn{ 7 position: fixed; 8 text-align: left; 9 bottom: 0; 10 left: 0; 11 padding: 0; 12 margin: 0; 13} 14 15.taikenbn img{ 16 width: 40vw; 17 height: auto; 18 margin: 0 auto; 19} 20 21.batu{ 22 display: inline-block; 23 width: 8vw; 24 height: 8vw; 25 position: fixed; 26 bottom: 19vw; 27 left: 0.5vw; 28 padding: 0; 29 margin: 0; 30 z-index: 999; 31 background-color: #fff; 32 border-radius: 8vw; 33} 34 35.batu::before, .batu::after { /* 共通設定 */ 36 position: absolute; 37 content: ""; 38 top: 50%; 39 left: 50%; 40 width: 3px; /* 棒の幅(太さ) */ 41 height: 5vw; /* 棒の高さ */ 42 background: #333; 43 border-radius: 3px; 44} 45 46.batu::before { 47 transform: translate(-50%,-50%) rotate(45deg); 48} 49 50.batu::after { 51 transform: translate(-50%,-50%) rotate(-45deg); 52} 53 54.taikenbatu input[type="checkbox"]{ 55 display: block; 56 width: 8vw; 57 height: 8vw; 58 position: fixed; 59 bottom: 0; 60 right: 0; 61} 62 63.taikenbatu input[type="checkbox"]:checked ~ label{ 64 display: none; 65} 66 67.taikenbatu input[type="checkbox"]:checked ~ .taikenbn{ 68 display: none; 69}

試したこと

①id=taikenbnの付与をimgにしてみた
→変わらず
②コードの順番を書き換えてみた
→変わらず
③mobile.CSSの68行目に!importantを追加
→変わらず

補足情報(FW/ツールのバージョンなど)

・visual studio codeを使用してローカル環境で作成中
・PCファーストで作成したものをスマートフォン対応させるために作成(PC用SP用で別のCSSを読み込ませる)

ulxsth👍を押しています

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

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

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

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

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

guest

回答4

0

自己解決

フローティングバナーを閉じるコードは該当コード(3/29更新)通りで正解でした。

画像が消えない原因はHTMLの別箇所に同じコードが記載されていたためでした。そこを削除することで目標の通り実装できました。

ご協力くださった皆さまありがとうございました。

投稿2024/03/29 07:05

0murice7

総合スコア1

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

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

0

見た感じ、バツ印を押すと消える部分は実装できていそうです!僕の環境では問題なく実行できています。
ただ、画像が重なっていてクリックできないのではないでしょうか。

たとえば画像部分の CSS を以下のように変更して、もう一度バツ印を押してみてください。

css

1.taikenbn img{ 2 height: 1rem; 3 margin: 0 auto; 4}

これはちょっと小さすぎますが、バツ印が動作するかの確認はできると思います。

動作環境

https://codepen.io/yotu-shigure/pen/MWRmwvz

投稿2024/03/22 05:02

編集2024/03/22 05:03
ulxsth

総合スコア2

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

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

0murice7

2024/03/27 07:50

お返事遅くなりすみません。ご回答くださりありがとうございます。 ×マークを押してチェックボックスにマークが入ることはこちらでも確認できております。 伝わりにくい文章で申し訳ありません。 ほかの方のアドバイスにより×マークの非表示も解決したのですが、画像の非表示には成功しておりません。 何かわかることありましたら教えていただけますと幸いです。
guest

0

順番を入れ替えてみては?

HTML

1<div class="taikenbatu"> 2 <input type="checkbox" id="batu"> 3 <div class="taikenbn" id="taikenbn"> 4  <a href="html/taiken.html"><img src="images/taiken.png" alt=""></a> 5 </div> 6 <label for="batu"> 7  <span class="batu"></span> 8 </label> 9</div>

投稿2024/03/21 09:11

yambejp

総合スコア114878

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

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

0murice7

2024/03/22 02:14

回答ありがとうございます。試してみましたが解決できませんでした。 なぜか×マークは消えたのですが、画像が非表示になりませんでした。 この場合どの辺りに原因がありそうでしょうか?
guest

0

z-index の設定が間違ってますね。

z-index は兄弟要素間でのz方向の位置(重なり)を指定します。
つまり、同じブロック内の要素の重なりを操作します。
別のブロックに含まれる要素間では重なりを操作できません。
まずは、これを理解しましょう。

現状は、×ボタン(.batu)の全面に.taikenbnが覆いかぶさっているので、×ボタンをクリックできない状態です

.taikenbnと兄弟要素である.batuの親要素のlabelにz-index を設定すれば前面にきてクリックできるようになります。

css

1/* 下記追加 */ 2.taikenbatu label{ 3 position: relative; 4 z-index: 999; 5} 6/* ここまで */ 7 8.taikenbn{ 9 position: fixed; 10 bottom: 0; 11 left: 0; 12 padding: 0; 13 margin: 0; 14 text-align: left; 15 /* z-index: 999; 削除*/ 16}

投稿2024/03/21 07:40

編集2024/03/21 07:41
hatena19

総合スコア33740

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

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

0murice7

2024/03/22 02:20

回答ありがとうございます。試してみましたが解決できませんでした。 クリックできているかを確認するために右下にチェックボックスを表示しているのですが、該当コードのままでも×マーク押下で右下チェックボックスにチェックは入る状態です。それとはまた別の状況を作る必要があるということでしょうか? ご教授いただいたとおりにコードを書き換えてみたのですが、現状と変化ありませんでした。 この場合どの辺りに原因がありそうでしょうか?
hatena19

2024/03/23 07:12

質問のHTMLならこの回答の修正で#taikenbnの表示/非表示を切り替えられます。 下記サンプルで確認できます。 https://codepen.io/hatena19/pen/NWmjYpe 提示されていない他の部分に原因があるのでしょう。
0murice7

2024/03/27 07:52

お返事遅くなりすみません。再びコメントありがとうございます。 たしかに上記サンプルで動作確認できました。 おっしゃる通り、ほかの部分に原因があるのかもしれません。 アドバイスくださりありがとうございます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.47%

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

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

質問する

関連した質問