2016-10-12 18 views
2

私はホバーエフェクトを作成しようとしています。マウスの動きに合わせて、イメージの色が青に変わります。私はすでに画像用のクラスを作成してCSSでスタイルを設定しましたが、まだ動作していません。私もzインデックスの変更を試みましたが、無駄です。CSS Image Hoverが驚くほど機能していませんか?

@import url(http://fonts.googleapis.com/css?family=Black+Ops+One:400,700);  /*--- Header --*/ 
 
    @import url(http://fonts.googleapis.com/css?family=Open+Sans:400,700); /*--- Navigation --*/ 
 

 
    * 
 
    { 
 
\t margin: 0; 
 
\t border: 0; 
 
\t padding: 0; 
 
    } 
 

 
    body 
 
    { 
 
\t background-image: url('../Images/background.png'); 
 
\t background-repeat: repeat-x; 
 
\t 
 
    } 
 

 
    .clearfix 
 
    { 
 
\t clear:both; 
 
    } 
 

 
    #wrapper 
 
    { 
 
\t margin: 0 auto; 
 
\t max-width: 1120px; 
 
\t overflow: auto; \t 
 
\t border: 1px solid black; 
 
    } 
 

 
    #main_header 
 
    { 
 
\t width: 100%; 
 
\t font-family: 'Black Ops One', sans-serif; 
 
\t background-color: black; 
 
\t border: 1px solid black; 
 
\t color: white; 
 
    } 
 

 
    #main_header h1 
 
    { 
 
\t float: left; 
 
\t font-size: 380%; 
 
\t margin: -10% 0 0 2%; 
 
\t 
 
    } 
 

 
    #callout 
 
    { 
 
\t margin: 50px 20px 0 0; 
 
    } 
 

 
    #callout h2{ 
 
\t text-align: right; 
 
\t color: white; 
 
    } 
 

 
    #callout p{ 
 
\t text-align: right; 
 
\t padding: 0%; 
 
\t color: grey; 
 
\t font-size: 20px; 
 
\t margin-bottom: 3px; 
 
    } 
 

 
    #nav_menu 
 
    { 
 
\t 
 
\t width: 100%; 
 
\t height: 10%; 
 
\t background-color: white; 
 
    } 
 

 
    #nav_menu li 
 
    { 
 
\t display: inline-block; 
 
\t margin: 20px 20px 20px 63px; 
 
\t font-family: 'Open Sans', sans-serif; 
 
\t font-size: 20px; 
 
\t font-weight: bold; 
 
    } 
 

 
    #nav_menu li a 
 
    { 
 
\t text-decoration: none; 
 
\t color: black; 
 
    } 
 

 
    #nav_menu li a:hover 
 
    { 
 
\t color: grey; 
 
    } 
 

 
    #content_area 
 
    { 
 
    width: 100%; 
 
    margin: 10px; 
 
    } 
 

 
    .sub-menu 
 
    { \t 
 
\t position: absolute; 
 
\t background-color: white; 
 
\t list-style-type: none; 
 
\t width: 5px; 
 
\t display: none; 
 
\t z-index: 60; 
 
\t border-radius: 15px; 
 
    } 
 

 
    #nav_menu .sub-menu li a 
 
    { 
 
\t color: black; 
 
    } 
 

 
    #nav_menu li:hover .sub-menu 
 
    { 
 
\t display: block; 
 
    } 
 

 
    #nav_menu li .sub-menu 
 
    { 
 
\t width: 16.5%; 
 
    } 
 

 
    #nav_menu li .sub-menu li 
 
    { 
 
\t display: block; 
 
\t margin-left: 20px; 
 
    } 
 

 
    .sub-menu li:hover 
 
    { 
 
\t color: green; 
 
\t background-color: yellow; 
 
    } 
 

 
    /*--- Start Image Slider --*/ 
 
    .slider{ 
 
\t max-width: 1100px; 
 
\t box-shadow: 0px 0px 0px 0 rgba(0, 0, 0, 0.07); 
 
    
 
    
 
    } 
 

 
    .slider1 img{ 
 
\t width: 100%; 
 
\t margin: 0 auto; 
 
    } 
 

 
    .slider .bx-wrapper .bx-controls-direction a{ 
 
\t outline: 0 none; 
 
\t position: absolute; 
 
\t text-indent: -9999px; 
 
\t top: 40%; 
 
\t height: 71px; 
 
\t width: 40px; 
 
\t transition: all 0.7s; 
 
    } 
 

 
    .slider .bx-wrapper:hover .bx-controls-direction a{ 
 
\t 
 
    } 
 

 
    .slider .bx-wrapper .bx-prev{ 
 
\t background: url("../Images/arrow_left.png") no-repeat 7px 9px; 
 
\t left: 0px; 
 
    } 
 

 
    .slider .bx-wrapper .bx-prev:hover{ 
 
\t background: url("../Images/arrow_left.png") no-repeat 8px 15px; 
 
    } 
 

 
    .slider .bx-wrapper .bx-next{ 
 
\t background: url("../Images/arrow_right.png") no-repeat 10px 12px; 
 
\t right: 0px; 
 
    } 
 

 
    .slider .bx-wrapper .bx-next:hover{ 
 
\t background: url("../Images/arrow_right.png") no-repeat 10px 17px; 
 
    } 
 

 
    /*--- End Image Slider --*/ 
 

 
    .one-third img{ 
 
\t text-align: center; 
 
\t max-width: 100%; 
 
\t height: auto; 
 
\t opacity: 0.9; 
 
    } 
 

 
    .border_section p{ 
 
\t font-family: 'Lato', sans-serif; 
 
\t padding: 2%; 
 
\t color: white; 
 
\t text-align: justify; 
 
    } 
 

 
    .border_section h3 
 
    { 
 
\t font-family: 'Open Sans', sans-serif; 
 
\t text-align: center; 
 
\t color: white; 
 
\t text-transform: uppercase; 
 
\t letter-spacing: 1%; 
 
    } 
 

 
    .border_section 
 
    { 
 
\t border: 1px solid black; 
 
\t background-color: black; 
 
    } 
 

 
    .one-third { 
 
    width: 27.35%; 
 
    float: left; 
 
    margin: 2% 0 3% 4%; 
 
    text-align: center; 
 
    background-color: white; 
 
    } 
 

 
    .guitarLogo img:hover 
 
    { 
 
    color: yellow; 
 
    background-color: blue; 
 

 
    } 
 

 
    footer{ 
 
\t font-family: 'Open Sans', sans-serif; 
 
\t font-weight: bold; 
 
\t text-align: center; 
 
\t width: 100%; 
 
\t height: 6%; 
 
\t background-color: black; 
 
\t overflow: auto; 
 
    } 
 

 
    footer p 
 
    { 
 
\t margin-top: 1%; 
 
\t color: white; 
 
    } 
 

 

 

 
<div class="border_section"> 
 
      <img class="guitarLogo" src="../Images/Guitar Brands/ibanezLogo.jpg" runat="server"/> 
 
\t \t </div> 
 
\t  </section> 
 
    
 
     <section class="one-third"> 
 
\t \t <div class="border_section"> 
 
\t \t \t <img class="guitarLogo" src="../Images/Guitar Brands/fenderLogo.jpg" runat="server"/> 
 
\t \t </div> 
 
\t  </section> 
 

 
     <section class="one-third"> 
 
\t \t <div class="border_section"> 
 
\t \t \t <img class="guitarLogo" src="../Images/Guitar Brands/gibsonLogo.jpg" runat="server"/> 
 
\t \t </div> 
 
\t  </section> 
 

 
     <section class="one-third"> 
 
\t \t <div class="border_section"> 
 
\t \t \t <img class="guitarLogo" src="../Images/Guitar Brands/prsLogo.jpg" runat="server"/> 
 
\t \t </div> 
 
\t  </section> 
 

 
     <section class="one-third"> 
 
\t \t <div class="border_section"> 
 
\t \t \t <img class="guitarLogo" src="../Images/Guitar Brands/ernieballLogo.jpg" runat="server"/> 
 
\t \t </div> 
 
\t  </section> 
 

 
     <section class="one-third"> 
 
\t \t <div class="border_section"> 
 
\t \t \t <img class="guitarLogo" src="../Images/Guitar Brands/espLogo.jpg" runat="server"/> 
 
\t \t </div> 
 
\t </section>

+1

にオーバーレイ背景色が、あなたはおそらくフィドルを作るだろうか?また、それは動作していないと確信していますか? ' '要素の背景色が変更された場合、画像自体の背後に隠れるように感じます。 –

+2

すべての代わりに関連するCSSだけを投稿するともっと便利になります – imjared

+0

このような画像の背景のプロパティを設定することはできません。青色のオーバーレイを作成したい場合は、青色の背景色を持つdivを追加します。これは、ホバー上で色あせます。 –

答えて

2

あなたが他の要素に影響を与え、あなたのイメージの周りdiv要素の背景色を変更し、myHoverのように新しいクラスを作成し、それに既存のCSSを追加し、同じようにしたくない場合は、次の

HTML

<div class="border_section myHover"> 
    <img class="guitarLogo" src="../Images/Guitar Brands/fenderLogo.jpg" runat="server" /> 
</div> 

CSS

.myHover:hover { 
    color: yellow; 
    background-color: blue; 
} 

JSFiddle例:https://jsfiddle.net/59drat5e/4/

1

セレクタはimg.guitarLogo:hover

であろう。しかし(ANYがある場合)は、画像の背景色を設定するだけ周辺の画像の可視部分に影響を与える、とcolorはテキストにのみ影響を与えます(そして何もありません)ので、効果があっても効果は見られません。

+0

私はすでにこれを試しました。まだ動かない。 – BrunoEarth

+0

おそらく要素セレクタを追加することで特異性を上げる必要はありません。 '.guitarlogo:hover'はおそらく完全に十分です。 – connexo

+0

@connexoはい、true – Johannes

0

あなたのCSS:.guitarLogoはすでに<img>要素ターゲットので

.guitarLogo img:hover { 
    color: yellow; 
    background-color: blue;  
} 

が正しくありません - IMGの必要はありません:ホバーを。

また、これは機能しません。なぜなら、z-indexをバックグラウンドのみに設定する方法がないからです。要素に対してのみ可能です。

あなたが望むことをする方法は、登録することです:親コンテナにホバーし、擬似要素を使用してそれをフォアグラウンドとして前に/:後に望みの効果を得ることができます。

+0

内容を持たない要素( 'img')も、擬似要素のホストとして動作することはできません。 – connexo

+0

それは私が親コンテナと言った理由です。実際には、正確な解決策はすでに提供されています。 –

0

はあなたのCSS

.guitarLogo:hover { 
    background: blue; 
} 
+0

これも機能しません – BrunoEarth

0

それはあなたが間違った要素をターゲットにしていることのように見えるには、このコードを試してみてください。 background-color:blueは、画像がtransparentの場合にのみ表示されます。そうでない場合は、ほとんどの場合、画像が表示されるための背景色と重なることになります。

あなたがしなければならないことは、以下に示すようにコンテナ要素をターゲットにすることです。

.border_section:hover 
{ 
color: yellow; 
background-color: blue; 

} 

DEMO

あなたは透明度で画像を持っているか、まだあなたはそれのためにimgbackground-colorを設定したい場合は、多分あなたは以下のようにルールを記述する必要がある場合。

img.guitarLogo:hover 
{ 
color: yellow; 
background-color: blue; 

} 
0

あなたはまた、画像

.overlay { 
 
    position:relative; 
 
    width:400px; 
 
    height:auto; 
 
} 
 
.overlay img { 
 
    width:100%; 
 
    vertical-align:top; 
 
} 
 
.overlay:after { 
 
    content:''; 
 
    position:absolute; 
 
    width:100%; 
 
    height:100%; 
 
    top:0; left:0; 
 
    background:red; 
 
    opacity:0; 
 
    transition: all 0.5s; 
 
    -webkit-transition: all 0.5s; 
 
} 
 
.overlay:hover:after { 
 
    opacity:1; 
 
}
<div class="overlay"> 
 
    <img src="https://www.google.co.in/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png" alt="" /> 
 
</div>

関連する問題