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

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

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

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

CSS

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

Q&A

解決済

2回答

2911閲覧

HTMLとCSSでアイコンをクリックしたら別のアイコンに切り替えたい

dehi0923

総合スコア7

HTML

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

CSS

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

0グッド

0クリップ

投稿2020/12/11 11:47

写真のピンクの部分(フォントオーサムのアイコン)をクリックしたら別のアイコンに切り替えたいです。
イメージ説明

html

1<div class="wrappir"> 2 <div class="sidebar"> 3 4 <input type="checkbox" id="label1" class="csc"/> 5 <label for="label1"> <i class="fas fa-bars"></i></label> 6 7<img class="sidelogo" src="logo.png" alt="店名"> 8 9 10 <div class="side-container"> 11<!--ここから非表示--> 12 13 <ul class="flex-container"> 14 <li><a href="#">TOP</a></li> 15 <li><a href="#">MESSAGE</a></li> 16 <li><a href="#">GALLERY</a></li> 17 <li><a href="#">BRAND</a></li> 18 <li><a href="#">PROJECT</a></li> 19 <li><a href="#">COMPANY</a></li> 20 </ul> 21 <div class="side-icon"> 22 <a href="#"><i class="fab fa-facebook-square"></i></a> 23 <a href="#"><i class="fab fa-twitter-square"></i></a> 24 <a href="#"><i class="fab fa-instagram-square"></i></a> 25 <a href="#"><i class="fab fa-youtube-square"></i></a> 26 </div> 27 </div> 28 </div> 29 30 </div> 31 32

css

1@media screen and (max-width: 900px) { 2 .container{ 3 width: 130%; 4 } 5 6 7 /*サイドメニューの固定解除*/ 8 .sidebar{ 9 position: static; 10 width: 77%; 11 background-color: green; 12 } 13 14 15 16 .sidelogo { 17 margin: 0 auto; 18 display: block; 19 position: relative; bottom:25px; 20 21 } 22 23 24 .sidebar label { 25 float: right; 26 font-weight: bold; 27 cursor :pointer; 28 background-color: pink; 29 display: block; 30 font-size: 20px; 31 padding-top: 15px; 32 padding-right: 20px; 33 transition: 0.2s; 34 35 36 } 37 38/*ロゴを回転させる*/ 39 #label1:checked ~ label{ 40 transform: rotate(360deg); 41 42 } 43 44 45/*チェックは見えなくする*/ 46 #label1{ 47 display: none; 48 } 49 50/*ロゴ以外の中身を非表示にしておく*/ 51 .side-container { 52 height: 0; 53 padding: 0; 54 overflow: hidden; 55 opacity: 1; 56 transition: 0.8s; 57 } 58 59 60 61/*クリックして表示*/ 62 #label1:checked ~ .side-container { 63 padding: 5px; 64 height: auto; 65 opacity: 1; 66 display: block; 67 position: absolute; 68 width: 100%; 69 background-color: white; 70  } 71 72 .flex-container li::before{ 73 font-family: "Font Awesome 5 Free"; 74 font-weight: 900; 75 content: "\f105"; 76 } 77 78 .flex-container li{ 79 border-bottom: solid 1px #ccc; 80 } 81 82 .side-icon i{ 83 margin-right: 10px; 84 } 85 86 87 .bottom-logo{ 88 flex-direction: column; 89 align-items: center; 90 } 91} 92

cssで下記コードを試してみましたが、クリックしたら回転するのみでアイコンは切り替わりませんでした。どのようにすればアイコンが切り替わるのかご教授いただければと思います。

css

1 #label1:checked ~ label{ 2 font-family: "Font Awesome 5 Free"; 3 content: "\f26e"; 4 transform: rotate(360deg); 5 } 6

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

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

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

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

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

cerfweb

2020/12/11 12:08

Fontawesomeはどのバージョンをどのように読み込んでいますか。
dehi0923

2020/12/11 12:33 編集

バージョンは6の無料版です。 HTMLのhead部分にリンクを読み込んでいます。
cerfweb

2020/12/11 12:40

6.0.0-alpha1ですか。
guest

回答2

0

ベストアンサー

よく確かめてみたら、cssの書き方が原因だということがわかりました。
SVGを使っていない場合、以下のように::beforeのところにUnicodeを指定することで任意のものが表示されます。

css

1#label1:checked ~ label .fa-bars::before{ 2 font-family: "Font Awesome 5 Free"; 3 content: "\f00d"; /* これは.fa-times のものですが、ご希望のものに書き換えてください。*/ 4}

投稿2020/12/13 13:25

cerfweb

総合スコア1907

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

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

dehi0923

2020/12/14 04:43

書き換えてみたところ画像は変わりました。ありがとうございます。 しかし今度はtransform: rotate(360deg);が効かなくなり、画像が回転しなくなってしまいました。この場合は何が原因なのでしょうか?
cerfweb

2020/12/14 07:59

#label1:checked ~ label{ transform: rotate(360deg); } ↑はそのまま残していますか。
dehi0923

2020/12/14 08:44

解決しました。 #label1:checked ~ label .fa-bars::before{ font-family: "Font Awesome 5 Free"; content: "\f00d"; /* } 上記のCSS内にtransformを記述してしまっていたので効かなくなっていました。 別で記述したら回転しました。 本当に助かりました。ありがとうございます。 今後ともよろしくお願いいたします。
dehi0923

2020/12/14 09:07

何度も本当に申し訳ございません。 先ほどは回転して、ロゴも替わっていたのですが少し時間が経って再度 確認しましたらロゴは替わるのですが、また回転しなくなってしまいました。 なぜなのでしょうか?
cerfweb

2020/12/14 09:28

ブラウザのキャッシュはクリアしてみましたか。
dehi0923

2020/12/14 09:51

今クリアしてみたのですが、変化ありませんでした。 #label1:checked ~ label{ transform: rotate(360deg); } この記述が間違っているのでしょうか?
cerfweb

2020/12/14 11:12

content: "\f00d"; /* <-- これがついたままになっていませんか。
dehi0923

2020/12/14 11:39

いえ #label1:checked ~ label .fa-bars::before{ font-family: "Font Awesome 5 Free"; content: "\f00d"; } と記述してるので間違ってはないと思います。一度ロゴも替わって回転もしていたのに急に回転しなくなったので何が間違っているのか分からないです。
cerfweb

2020/12/14 11:57

#label1:checked ~ label{ transform: rotate(360deg); } #label1:checked ~ label .fa-bars::before{ font-family: "Font Awesome 5 Free"; content: "\f00d"; } で間違いないですよね!?。ほかにcssに何か変更を加えたということはありませんか。
dehi0923

2020/12/14 13:34

間違いありません。cssの変更もしてないです。元々は #label1:checked ~ label{ transform: rotate(360deg); } こちらのCSSは反応しておりロゴも回転していて、画像だけが変わらなかったのですが、transformのみが急に適用できなくなるのもおかしいですよね。
guest

0

Fontawesome6のドキュメントは確認していないのでわかりませんが、all.jsまたはall.min.jsを読み込んでいる場合、その部分に以下の記述を入れて試してみてください。

html

1<script data-search-pseudo-elements defer src="...

投稿2020/12/11 12:57

cerfweb

総合スコア1907

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

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

cerfweb

2020/12/11 12:58

cssを見ると、バージョン5の書き方なので、6じゃなくて5のバージョンを読み込んでください。
dehi0923

2020/12/11 13:19

何度もごめんなさい。 またall.jsとall.min.jsとはどこを見ればよいのでしょうか? 素人の質問で大変申し訳ございません。
cerfweb

2020/12/11 13:29

Fontawesomeのjsファイル名です。もし違っていたら、読み込んでいるファイル名を教えてください。
dehi0923

2020/12/11 13:51

scriptというkit codeをコピーして貼り付けています。前の回答の記述を入れてみましたが変化ありません。フォントオーサムの読み込み方が違うのでしょうか?
cerfweb

2020/12/11 13:53

どんなコードですか。
cerfweb

2020/12/11 14:09

その部分を以下に置換したらどうなりますか。 <script data-search-pseudo-elements defer src="https://use.fontawesome.com/releases/latest/js/all.js" integrity="sha384-L469/ELG4Bg9sDQbl0hvjMq8pOcqFgkSpwhwnslzvVVGpDjYJ6wJJyYjvG3u8XW7" crossorigin="anonymous"></script>
dehi0923

2020/12/11 14:19

今までフォントオーサムで表記されてたアイコンが全て表示されなくなってしまいました。
dehi0923

2020/12/13 03:37

お返事遅れて申し訳ありません。アイコンは表示されますが、画像は変わりません。フォントオーサムの読み込みに問題があるのでしょうか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問