odecember1205
@odecember1205

Are you sure you want to delete the question?

If your question is resolved, you may close it.

Leaving a resolved question undeleted may help others!

We hope you find it useful!

メニュのリンクをマウスオーバーしたい

解決したいこと

下の画像からマウスがリンク部分に乗せるとリンクの色が変わるようにしたいです。

IMG_0907.jpg

該当するソースコード

<!DOCTYPE html>
<html lang="ja">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <link rel="stylesheet" href="style.css">
        <title>メニュー</title>
    </head>
    <body>
        <header>
          <div class="header">
            <h2>メニュー</h2>
          </div>
          <div class="toggle">
            <span></span>
            <span></span>
            <span></span>
          </div>
        </header>   
      
        <article>
          <div id="toggle-menu" style="display:none">
            <div class="side">
              <div class="menu">
                <span>メニュー</span>
              </div>
              <div class="list">
                <ol class="pagelist">
                  <li><a href="page1.html">テキスト</a></li>
                  <li>
                    <a href="">テキスト</a>
                    <ol>
                      <li><a href="">テキスト-------------------------------------------</a></li>
                      <li><a href="">テキスト</a></li>
                      <li><a href="">テキスト</a></li>
                      <li><a href="">テキスト</a></li>
                    </ol>
                  </li>
                  <li><a href="">テキスト</a>
                    <ol>
                      <li><a href="">テキスト</a></li>
                      <li><a href="">テキスト</a></li>
      
                    </ol>
                  </li>
                  </div>
              </div>
            </div>
            <div id="toggle-main" class="hidden" >
              <div class="main">
                <div class="contents">
                  <span>コンテンツ</span>
                </div>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキストテキストテキストテキストテキストテキストテキストテキストテキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
                <p>
                  テキスト
                </p>
      
      
              </div>
            </div>
          </div>
      
        </article>
      

   
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
 
        <script>
        $(function() {
  $('.toggle').click(function() {
    $(this).toggleClass('active');
    $('#toggle-menu').toggle();
    $('#toggle-main').toggle();
  });
});
        </script>
</body>
</html>

例)

* {
    margin: 0;
    padding: 0;
}

body {
    /* padding-top: 90px;  */
    background-color: #f8f8f8;
}
h1{
    margin-left: 30px;
    margin-top: 20px;
    font-size: 30px;
}
h2{
    margin-left: 60px;
    font-size: 25px;
}


 .marker{
    list-style: none;
    margin-left: 90px;
    font-size: 20px;

 }


  
.header {
    background-color: #37538C;
    padding: 20px;
    color: white;
}

/*メニューバーとコンテンツを横並びにする*/
article{
    display: flex;
}

.side{
    margin-top: 0;
    border-radius: 5px;
    border: 2px solid #97C1E5;
    display: inline-block;
    margin: 15px;
    font-family: serif;
}
.menu{
    color: #000000;
    background-color: #E9F1FF;
    border-color: #97C1E5;
    padding: 10px 15px;
    border-bottom: 2px solid #97C1E5;
    display: block;
}
.list{
    padding-top: 5px;
    padding-bottom: 5px;
    padding-left: 5px;

}

.list li{
    padding: 5px;
    white-space: nowrap;
    list-style: none;
}
 
.list li a{
    text-decoration: none;
    color: #000000;
    line-height: 2em;
}
 li a:hover{
    background-color:#ff0000; 
    font-size: 20px;
}

ul.pagelist li ul{
    margin: 0 0 0 1em;
    padding: 0;
}

.main{
    margin-top: 0;
    border-radius: 5px;
    border: 2px solid #97C1E5;
    display: inline-block;
    margin-left:20px;
    margin: 15px;
}
.contents{
    color: #000000;
    background-color: #E9F1FF;
    border-color: #97C1E5;
    padding: 10px 15px;
    border-bottom: 2px solid #97C1E5;
    display: block;
}
.description{
    font-size: 20px;
    font-family: serif;
    margin-top: 0px;
    margin-bottom: 50px;
    margin-right: 50px;
    margin-left: 50px;
    line-height: 2;
    padding-left: 2em;
    text-indent: -1em;
}
.sentence{
    text-indent: 1em;
    font-size: 20px;
    font-family: serif;
    line-height: 2;
    margin-top: 40px;
    margin-bottom: 0px;
    margin-right: 40px;
    margin-left: 40px;
    text-align: justify;

}
.statement{
    font-size: 20px;
    font-family: serif;
    margin-top: 0px;
    margin-bottom: 60px;
    margin-right: 60px;
    margin-left: 60px;
    line-height: 2;
   
}
.red{
    color: red;
}

自分で試したこと

li a:hover
background-color:red;
としましたが、リンクの文字だけが赤色になり四角全体は赤くなりません。

一応私が求める色としましては、
マウスがリンクに乗っかった時は黒色で文字の色を白にする。
マウスが押された時(visited)は水色でお願い致します。
よろしくお願い致します。

0

2Answer

li:hoverで指定する手もありますが,今回はリストが入れ子になっている部分があってめんどくさいことになりますね.
個人的にはaをブロックにしてしまうのが手っ取り早いと思います.

.list {
    padding-top: 5px;
    padding-bottom: 5px;
-   padding-left: 5px;

}

.list li {
-   padding: 5px;
    white-space: nowrap;
    list-style: none;
}

.list li a {
+   display: block;
+   padding: 5px;
    text-decoration: none;
    color: #000000;
    line-height: 2em;
}

.list li a:hover {
    background-color: #ff0000;
+   color: white;

    /*文字周りのピクセル指定は慣習的によろしくない*/
-   font-size: 20px;
}

+.list li a:active {
+    background-color: skyblue;
+}

li a等セレクタが広範な部分がいくつかあるので,想定しない要素にスタイルが適用されないよう書き換えてください.

:activeはマウスダウン時のセレクタで,:visited訪問済みのリンクを指すセレクタです.

1Like

次をご参考ください。 width: auto;

汎用性がなくなりますが、javascriptの場合、細やかなデータ処理が可能になります。

<div id="背景01" width="100%"><li> <a href="">テキスト</a></li></div>

mouseoutのサンプルは割愛

document.getElementById('背景01').addEventListener('mouseover', function() { 
    document.getElementById("背景01").style.backgroundColor = '#背景色'
}, false);

残念、サイトに mouseover、mouseoutの説明がないですね!

暇人x in電車

0Like

Comments

  1. @odecember1205

    Questioner

    ご回答ありがとうございます。
    別の手段で試した結果解決出来ました。
    ご迷惑をおかけしました。
    誠にありがとうございました

Your answer might help someone💌