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

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

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

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

CSS

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

Q&A

解決済

2回答

208閲覧

要素選択すると、他の要素が変わる

takesu

総合スコア14

HTML

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

CSS

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

0グッド

0クリップ

投稿2018/01/24 02:35

編集2018/01/24 02:44

選択前はこのように全てのボタンがアクティブ状態です。
menu1を選択すると、current付与、他のボタンに透明度.5を付与したいのですが、どうすればいいでしょうか。

選択前
イメージ説明

html

1<ul> 2 <li> 3 <a href="#">menu1</a> 4 </li> 5 <li> 6 <a href="#">menu2</a> 7 </li> 8 <li> 9 <a href="#">menu3</a> 10 </li> 11</ul>

選択後
イメージ説明

html

1<ul> 2 <li> 3 <a href="#" class="current">menu1</a> 4 </li> 5 <li> 6 <a href="#">menu2</a> 7 </li> 8 <li> 9 <a href="#">menu3</a> 10 </li> 11</ul>

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

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

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

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

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

x_x

2018/01/24 02:41

見た目の変更だけではなく、要素までも変更する必要がありますか?
takesu

2018/01/24 02:44

考え直してみまして、要素が変更しない場合の質問に変更させていただきました。
guest

回答2

0

いまのHTMLの構造でCSSだけでaのスタイルを書き換えるのは不可能です。

私ならこうします。

HTML

1<!--選択前--> 2<ul class="menu-list"><!-- メニュー全体にmenu-listというクラスを付与 --> 3 <li> 4 <a href="#">menu1</a> 5 </li> 6 <li> 7 <a href="#">menu2</a> 8 </li> 9 <li> 10 <a href="#">menu3</a> 11 </li> 12</ul>

HTML

1<!--選択後--> 2<ul class="menu-list selected"><!-- 選択後はselectedも付与 --> 3 <li> 4 <a href="#" class="current">menu1</a> 5 </li> 6 <li> 7 <a href="#">menu2</a> 8 </li> 9 <li> 10 <a href="#">menu3</a> 11 </li> 12</ul>

CSS

1.menu-list.selected a:not(.current) { 2 opacity:0.5; 3}

投稿2018/01/24 02:45

編集2018/01/24 02:52
masaya_ohashi

総合スコア9206

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

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

takesu

2018/01/24 02:49

おお!この手がありましたか。勉強になりました!ありがとうございます。 ただ、すみません質問を修正しまして、要素は変わらない場合でもできるようにしたいのですが、方法をご存知でしょうか。
takesu

2018/01/24 03:10

早速の修正をありがとうございます!
guest

0

ベストアンサー

アンカー(aタグ)をクリックするとpに変化するということは
他のアンカーをクリックするとpがaに戻らないといけません。
そうなると元のaについていた属性をとっておかないといけないので
そこそこ面倒です。アンカーはアンカーのままでよいのでは?

とりあえずわかりやすくするためulはmenuというidで管理するものとします。

CSS

1.uncurrent{opacity:0.5;}

javascript

1$(function(){ 2 $('#menu a').on('click',function(){ 3 $(this).removeClass('uncurrent').closest('li').siblings().find('a').addClass('uncurrent'); 4 }); 5});

HTML

1<ul id="menu"> 2<li><a href="#">menu1</a></li> 3<li><a href="#">menu2</a></li> 4<li><a href="#">menu3</a></li> 5</ul>

投稿2018/01/24 02:50

yambejp

総合スコア114814

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

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

takesu

2018/01/24 03:10

ありがとうございます!できました!jsも記載いただきましたのでこちらをベストアンサーとさせていただきました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問