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

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

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

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

CSS

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

Q&A

解決済

1回答

577閲覧

CSSで自身よりも上に位置する要素のスタイルを変更したい

退会済みユーザー

退会済みユーザー

総合スコア0

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/05/20 10:15

CSSで自身よりも上に位置する要素のスタイルを変更したいです。
下記のようなコードで考えています。

HTML

1<html> 2 <body> 3 <div class="box box1"></div> 4 <input type="checkbox" class="checkbox">check box 5 <div class="box box2"></div> 6 </body> 7</html>

CSS

1.box { 2 width: 100px; 3 height: 100px; 4 background-color: red; 5} 6 7.checkbox:cheked ~ .box2 { 8 background-color: black; 9}

このようなコードで、チェックボックスにチェックが入った際に、チェックボックスよりも上の要素であるbox1のスタイルを変更したいと考えています。こうした動作をCSSで実現することは可能でしょうか?とりあえず今のところはJavaScriptで対応していますが、CSS内で完結できればいいなと思っています。

間接セレクタを使用すると、チェックボックスの下にある要素、box2のスタイルは変更できますが、今回は上に適応させたいと考えています。間接セレクタの逆バージョンがあれば楽なのですが...

pointer-eventも考えてみましたが、hoverやactiveではなくチェックしている間はずっと変更後のスタイルと適応させておきたいです。

ざっと調べた結果、出来そうにないとは思っていますが、もしかしたら調べ方が悪かったり、見落としていたりするかもしれないと思い質問させていただきました。

何かご存じの方いましたら、よろしくお願いいたします。

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

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

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

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

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

guest

回答1

0

ベストアンサー

将来的に:has()が使えるようになったら簡単にできるでしょうね。

【:has() - CSS: カスケーディングスタイルシート | MDN】
https://developer.mozilla.org/ja/docs/Web/CSS/:has

今のCSSだけで行うなら、HTMLの順番を変えて、チェックボックスをCSSで描画するように変えるとかだと思います。

HTML

1<html> 2 <body> 3 <input type="checkbox" class="checkbox"><!-- これを画面外にでも置く --> 4 <div class="box box1"></div> 5 <span class="span-checkbox"><!-- チェックの状況に合わせた表示をCSSで表現 --></span>check box 6 <div class="box box2"></div> 7 </body> 8</html>

投稿2020/05/20 11:38

kei344

総合スコア69606

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問