![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
以下の HTML タグがありますが、 style="width: 170; height: 20; border: 1px dashed yellowgreen" という行が数行書かれていて、これを id 宣言して、css ファイルにこの Style を記述したのですが、うまくいきませんでした。
どうすればいいのでしょうか?
ご教授よろしくお願い致します。
<body>
<font color="black" id="menu5">MENU: </font><br>
<a onmouseover="this.style.backgroundColor='#27595a'; menu5.innerText='AAAについて'" onmouseout="this.style.backgroundColor='#D9F4E1'; menu5.innerText=''" style="width: 170; height: 20; border: 1px dashed yellowgreen" href="AAA/AAA/" target="I5" onClick="return closeMenu(this)">AAA</A><BR>
<a onmouseover="this.style.backgroundColor='#27595a'; menu5.innerText='BBBについて'" onmouseout="this.style.backgroundColor='#D9F4E1'; menu5.innerText=''" style="width: 170; height: 20; border: 1px dashed yellowgreen" href="AAA/BBB/" target="I5" onClick="return closeMenu(this)">BBB</a><BR>
<a onmouseover="this.style.backgroundColor='#27595a'; menu5.innerText='CCCについて'" onmouseout="this.style.backgroundColor='#D9F4E1'; menu5.innerText=''" style="width: 170; height: 20; border: 1px dashed yellowgreen" href="AAA/CCC/" target="I5" onClick="return closeMenu(this)">CCC</A><BR>
</body>
No.2ベストアンサー
- 回答日時:
No1です。
ご提示のHTMLにはいくつかの機能が設定されています。単純化すると
1)マウスオン、オフでの背景色の変化
2)マウスオン、オフでの文字列の表示/非表示(MENU部への表示)
3)クリック時の処理(これは質問文には明示されていません)
になるかと思います。
>JavaScript はできれば使いたくないのですが~
ご提示のソースでは上記の1)~3)の全ての処理をjavascriptで行っています。
( 3)の内容が不明ですが、多分、javascriptと推測されます)
それなので、回答はそのままスクリプトを利用したものとしました。
さて、
1)は通常ロールオーバーと言われているもので、CSSでも可能ですが、マウスオフ時は元の表示状態に戻ります。
一方、ご提示のものは初期状態→オン(#27595a)→オフ(#D9F4E1)と元には戻らない仕組みです。
初期状態とオンの2通りの変化でよければCSSで可能です。
2)をCSSで行うのは、なかなか難しそうです。(私が知らないだけかも)
3)は質問文にないため内容が不明なので、CSSで可能な処理なのか判断できかねます。
というわけで、1)の機能のみなら、以下のようにすればCSSで可能になります。
(マウスオフ時の背景色はCSSで設定している初期の色(現状は白?)に戻ります)
<html>
<head>
<style type="text/css">
a.item2 {display:block; width:170px; height:20px; border:1px dashed yellowgreen;}
a.item2:hover{background-color:#27595a;}
</style>
</head>
<body>
<a href="AAA/AAA/" target="I5" class="item2">AAA</a>
<a href="AAA/BBB/" target="I5" class="item2">BBB</a>
<a href="AAA/CCC/" target="I5" class="item2">CCC</a>
</body>
</html>
だいぶすっきりして見やすくなり、修正しやすくなりました。
このソースで私の希望していることが実現できました。どうもありがとうございました。
No.1
- 回答日時:
基本的に同じようになるようにstyleをまとめました。
一部、ブラウザによって違うかも知れないところを、変えています。
同じ様式でよさそうなものは、仮にitem1というクラスにしてあります。
ついでにスクリプト部もまとめてしまいました。表示用の文字列はtitle属性を利用して定義しています。closeMenu()の動作が不明(質問文にないので)でしたので、そのままにしてあります。
ちなみに、styleもscriptも外部ファイル化が可能です。
<参考として>
<html>
<head>
<style type="text/css">
#menu5 {color:black;}
a.item1 {display:block; width:170px; height:20px; border:1px dashed yellowgreen;}
</style>
<script type="text/javascript">
window.onload=function(){
var a=document.getElementsByTagName('A');
for (var i=0; i<a.length; i++){
if (a[i].className=='item1'){
a[i].onmouseover = function(){change(this,1);}
a[i].onmouseout = function(){change(this,0);}
a[i].onclick = function(){return closeMenu(this);}
}}}
function change(e,f) {
e.style.backgroundColor=f?'#27595a':'#D9F4E1';
document.getElementById('menu5').innerHTML=f?e.title:'';
}
</script>
</head>
<body>
<span id="menu5">MENU: </span><br>
<a href="AAA/AAA/" target="I5" class="item1" title="AAAについて">AAA</a>
<a href="AAA/BBB/" target="I5" class="item1" title="BBBについて" >BBB</a>
<a href="AAA/CCC/" target="I5" class="item1" title="CCCについて" >CCC</a>
</body>
</html>
きれいにまとめてくださり、ありがとうございます。
JavaScript はできれば使いたくないのですが、css のみで記述できないものでしょうか?
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- JavaScript jQueryでのドラッグアンドドロップについて 1 2022/07/30 09:10
- HTML・CSS html/cssで要素が出てこなくて困ってます 1 2022/12/31 16:59
- HTML・CSS アコーディオンメニューが思うように動作しません。 1 2023/08/20 16:48
- HTML・CSS cssが効かなくて困ってます 1 2023/01/01 23:57
- HTML・CSS HTML & CSS 縦ボックス内の文字の左右センタリング 3 2023/03/25 04:23
- PHP style.cssのjQuery条件付きcssが機能しない 4 2022/07/17 18:27
- HTML・CSS ヘッダーの画像にメインエリアがかぶってしまいます 1 2022/11/28 14:06
- JavaScript vertical sliderをautoplayしたい 2 2022/08/25 14:47
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
スクロール可能なチェックボックス
-
【CSS】floatで左右に並べた...
-
オンマウス時に別画像を上に重...
-
1行で左寄せと右寄せと中央揃え...
-
CSS <div>の入れ子が反映さ...
-
チェックボックスの背景色って...
-
css ファイルでまとめたい
-
Ctrl+F(検索)の窓を出したいの...
-
フッター上部に謎の隙間
-
背景の過
-
MAX関数を使ってからLEFT JOIN...
-
前回の質問の続き
-
textareaに画像を表示したい
-
Javascriptで画像を水面のよう...
-
JavaScriptで変更した属性の元...
-
c++std::string型をTCHARに変換...
-
createElementで作成した要素を...
-
ダイアログから画像ファイルは...
-
画像が表示でnull; this.src
-
複数画像のランダム複数表示(...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
フッター上部に謎の隙間
-
CSS <div>の入れ子が反映さ...
-
【CSS】floatで左右に並べた...
-
css固定したフッターが本文と重...
-
文字をクリックしたら別の文字...
-
textareaで入力した文字を改行...
-
オンマウス時に別画像を上に重...
-
スクロール可能なチェックボックス
-
文字を固定したいのですが…
-
1行で左寄せと右寄せと中央揃え...
-
Ctrl+F(検索)の窓を出したいの...
-
チェックボックスの背景色って...
-
Webサイト作成 プログレスバー ...
-
離れた場所にマウスオーバーで...
-
スタイルシートで画面を上下に...
-
メニューバーもスクロールに合...
-
ホームページのsidebar とconte...
-
CSSで背景を下までのばすには?
-
TABLEの高さを固定したいのですが…
-
かなり困っています。知恵を貸...
おすすめ情報