2017-12-21 16 views
1

画像の上にオーバーレイを作成し、オーバーレイに成功しました。私が画像の上にマウスを置くと、それは青色に変わり、私の望むテキストが現れます。CSS/HTMLオーバーレイアライメントが不十分

しかし、オーバーレイは画像と位置がずれるため、どうすればよいか分かりません。位置や画像コードなどのオーバーレイコードを調整する必要があるかどうかはわかりません。それは次のようになります。

h1 {color: green; letter-spacing:5px; 
 
    \t font-family: "Times New Roman"; 
 
    \t text-align: center; padding-bottom: 5px;} 
 
    \t 
 
    .img {width:80%; 
 
    height:80%; margin-bottom:100px; 
 
    display: block; position: relative 
 
     
 
    } 
 
    .container { 
 
     position: relative; 
 
     width: 50%; 
 
    } 
 
    
 
    
 
    .overlay { 
 
     position: absolute; 
 
     top: 0; 
 
     bottom: 0; 
 
     left: 0; 
 
     right: 0; 
 
     height: 80%; 
 
     width: 80%; 
 
     opacity: 0; 
 
     transition: .5s ease; 
 
     background-color: #008CBA; 
 
    } 
 
    
 
    .container:hover .overlay { 
 
     opacity: 1; 
 
    } 
 
    
 
    .text { 
 
     color: white; 
 
     font-size: 20px; 
 
     position: absolute; 
 
     top: 50%; 
 
     left: 50%; 
 
     transform: translate(-50%, -50%); 
 
     -ms-transform: translate(-50%, -50%); 
 
    }
<!DOCTYPE html> 
 
    <html> 
 
    <body> 
 
    \t <h1> 
 
    \t <marquee behavior="alternate" direction="right" scrollamount="20"> 
 
    \t The Harry Potter Series</marquee></h1> 
 
    
 
    
 
    <div class="container"> 
 
    \t <img class="img" src="https://ewedit.files.wordpress.com/2016/09/kkhp1-lg.jpg?w=399.png" > 
 
    \t <div class="overlay"> 
 
    \t <div class="text">Hello World</div> 
 
     </div> 
 
    </div> 
 
    
 
    <div class="container"> 
 
    \t <img class="img move" src="https://ewedit.files.wordpress.com/2016/09/kkhp2.jpg?w=399.png"> 
 
    \t <div class="overlay"> 
 
    \t <div class="text">Hello World</div> 
 
     </div> 
 
    </div> 
 
    </body> 
 
    </html>

+1

のために働くだろう.overlay {height:100%;}を作る実際のコードだけでなく、スクリーンショットを共有してください。ありがとう! –

+0

スクリーンショットだけでなく、作業コードを投稿してください。誰もあなたのためにそれを再入力しません。 –

+0

またhtmlです – Noni

答えて

1

は、あなたのオーバーレイクラスであなたのheight: 80%height: 100%に変更:

Misaligned Overlay

これは私のコードです。例えば。幅にあなたのimgを設定

.overlay { 
    position: absolute; 
    top: 0; 
    bottom: 0; 
    left: 0; 
    right: 0; 
    height: 100%; 
    width: 100%; 
    opacity: 0; 
    transition: .5s ease; 
    background-color: #008CBA; 
} 

Codepen link

+0

私はあなたのcodepenリンクをスニペットをstackoverflowにすることを提案しています。何らかの理由で何らかの理由でそのコードが見つかった場合、その例はstackoverflowにとどまります。時間がたつにつれあなたの答えの有用性は、死んだリンクや何かのために悪化しない – zack6849

1

:80%、高さ:80%は、彼らは絶対的ではないので、それは両方の相対座標を維持することを保証するものではありません。幅を100%にしてからオーバーレイ幅と高さを100%に設定すると、オーバーレイが画像全体を確実に覆うようになります。

h1 { 
 
    color: green; 
 
    letter-spacing: 5px; 
 
    font-family: "Times New Roman"; 
 
    text-align: center; 
 
    padding-bottom: 5px; 
 
} 
 

 
.img { 
 
    width: 100%; 
 
    margin-bottom: 100px; 
 
    display: block; 
 
    position: relative 
 
} 
 

 
.container { 
 
    position: relative; 
 
    width: 50%; 
 
    background:Red; 
 
} 
 

 
.overlay { 
 
    position: absolute; 
 
    top: 0; 
 
    bottom: 0; 
 
    left: 0; 
 
    right: 0; 
 
    height: 100%; 
 
    width: 100%; 
 
    opacity: 0; 
 
    transition: .5s ease; 
 
    background-color: #008CBA; 
 
} 
 

 
.container:hover .overlay { 
 
    opacity: 1; 
 
} 
 

 
.text { 
 
    color: white; 
 
    font-size: 20px; 
 
    position: absolute; 
 
    top: 50%; 
 
    left: 50%; 
 
    transform: translate(-50%, -50%); 
 
    -ms-transform: translate(-50%, -50%); 
 
}
<div class="container"> 
 
    <img class="img" src="https://ewedit.files.wordpress.com/2016/09/kkhp1-lg.jpg?w=399.png"> 
 
    <div class="overlay"> 
 
    <div class="text">Hello World</div> 
 
    </div> 
 
</div> 
 

 
<div class="container"> 
 
    <img class="img move" src="https://ewedit.files.wordpress.com/2016/09/kkhp2.jpg?w=399.png"> 
 
    <div class="overlay"> 
 
    <div class="text">Hello World</div> 
 
    </div> 
 
</div>

1

それはU

h1 {color: green; letter-spacing:5px; 
 
    \t font-family: "Times New Roman"; 
 
    \t text-align: center; padding-bottom: 5px;} 
 
    \t 
 
    .img {width:80%; 
 
    height:80%; margin-bottom:100px; 
 
    display: block; position: relative 
 
     
 
    } 
 
    .container { 
 
     position: relative; 
 
     width: 50%; 
 
    } 
 
    
 
    
 
    .overlay { 
 
     position: absolute; 
 
     top: 0; 
 
     bottom: 0; 
 
     left: 0; 
 
     right: 0; 
 
     height: 100%; 
 
     width: 80%; 
 
     opacity: 0; 
 
     transition: .5s ease; 
 
     background-color: #008CBA; 
 
    } 
 
    
 
    .container:hover .overlay { 
 
     opacity: 1; 
 
    } 
 
    
 
    .text { 
 
     color: white; 
 
     font-size: 20px; 
 
     position: absolute; 
 
     top: 50%; 
 
     left: 50%; 
 
     transform: translate(-50%, -50%); 
 
     -ms-transform: translate(-50%, -50%); 
 
    }
<!DOCTYPE html> 
 
    <html> 
 
    <body> 
 
    \t <h1> 
 
    \t <marquee behavior="alternate" direction="right" scrollamount="20"> 
 
    \t The Harry Potter Series</marquee></h1> 
 
    
 
    
 
    <div class="container"> 
 
    \t <img class="img" src="https://ewedit.files.wordpress.com/2016/09/kkhp1-lg.jpg?w=399.png" > 
 
    \t <div class="overlay"> 
 
    \t <div class="text">Hello World</div> 
 
     </div> 
 
    </div> 
 
    
 
    <div class="container"> 
 
    \t <img class="img move" src="https://ewedit.files.wordpress.com/2016/09/kkhp2.jpg?w=399.png"> 
 
    \t <div class="overlay"> 
 
    \t <div class="text">Hello World</div> 
 
     </div> 
 
    </div> 
 
    </body> 
 
    </html>

関連する問題