2017-12-11 12 views
1

グリッドのホバー上にイメージの代わりにテキストを表示しようとしています。私はw3schoolsの例を使ってみましたが、私のコードではうまくいきませんでした。ここに私のコードです。また、私のコードに関するヒントやコメントもありがとうございます。イメージのホバー上のテキストオーバーレイがグリッドで機能しない

私のコードにはホバーの試行はありません。私はすべての試行を削除しました。これは以前の場所です。私はあなたの質問を理解

/*Navigation Bar*/ 
.hlogo { 
    text-align: center; 
    background-color: transparent; 
    width: 100%; 
    padding-top: 20px; 
} 

.hlogo a { 
    color: #092140; 
    text-decoration: none; 
    display: inline-block; 
    font-size: 50px; 
    font-family: 'Oswald', sans-serif; 
} 
.navbar { 
    background-color: transparent; 
    overflow: hidden; 
    text-align: center; 
    width: 100%; 
} 

.navbar a { 
    color: #092140; 
    text-decoration: none; 
    display: inline-block; 
    padding: 15px 10px; 
    padding-top: 5px; 
    font-family: 'Oswald', sans-serif; 
    font-weight: 300; 
} 

.navbar a:hover { 
    color:#F24738; 
} 

/* Grid */ 

.featured { 
    display: grid; 
    grid-template-columns: 25% 25% 25% 25%; 
    grid-template-rows: 50% 50%; 
} 

.featured > div { 
    text-align: center; 
} 

.fmain { 
    grid-column: 1/span 2; 
    grid-row: 1/span 2; 
    position: relative; 
} 

.fmain img { 
    width: 100%; 
} 

.main1 { 
    grid-column: 3/span 1; 
    grid-row: 1; 
} 

.main1 img { 
    width: 100%; 
} 

.main2 { 
    grid-column: 4/span 1; 
    grid-row: 1; 
} 

.main2 img { 
    width: 100%; 
} 

.main3 { 
    grid-column: 3/span 1; 
    grid-row: 2; 
} 

.main3 img { 
    width: 100%; 
} 

.main4 { 
    grid-column: 4/span 1; 
    grid-row: 2; 
} 

.main4 img { 
    width: 100%; 
} 

答えて

0

わからない場合

HTML

<!-- Header Logo --> 
    <div class="hlogo"> 
     <a href="Home">Hidden Listen</a> 
    </div> 
    <!-- Header Links --> 

    <div class="navbar"> 
     <a href="Home">Home</a> 
     <a href="Reviews">Reviews</a> 
     <a href="Artists">Artists</a> 
    </div> 

    <!-- Grid of Home page --> 

    <div class="featured"> 
     <div class="fmain"> 
      <img src="/img/Album Covers/marvel1.jpg" alt="Album Cover"> 
      <h1>Text hover shit</h1> 
     </div> 
     <div class="main1"> 
      <img src="/img/Album Covers/fantasy.jpg"> 
     </div> 
     <div class="main2"> 
      <img src="/img/Album Covers/No Dope on Sundays.jpg"> 
     </div> 
     <div class="main3"> 
      <img src="/img/Album Covers/Scum Tyler.jpg"> 
     </div> 
     <div class="main4"> 
      <img src="/img/Album Covers/syre.jpg"> 
     </div> 
    </div> 

CSS。混乱しているように見えますが、グリッド内のホバー上に画像の代わりにテキストが表示されます。しかし、あなたはw3schoolで試してみましたが、何とか私はあなたが以下の解決策を探していることを理解しました。ここでは、ホバーテキストのクラスを追加する必要があり、プロパティを追加する必要があります。下のように試して、これがあなたが望むものか他のものを探しているのかどうかを教えてください。

/*Navigation Bar*/ 
 
.hlogo { 
 
    text-align: center; 
 
    background-color: transparent; 
 
    width: 100%; 
 
    padding-top: 20px; 
 
} 
 

 
.hlogo a { 
 
    color: #092140; 
 
    text-decoration: none; 
 
    display: inline-block; 
 
    font-size: 50px; 
 
    font-family: 'Oswald', sans-serif; 
 
} 
 
.navbar { 
 
    background-color: transparent; 
 
    overflow: hidden; 
 
    text-align: center; 
 
    width: 100%; 
 
} 
 

 
.navbar a { 
 
    color: #092140; 
 
    text-decoration: none; 
 
    display: inline-block; 
 
    padding: 15px 10px; 
 
    padding-top: 5px; 
 
    font-family: 'Oswald', sans-serif; 
 
    font-weight: 300; 
 
} 
 

 
.navbar a:hover { 
 
    color:#F24738; 
 
} 
 

 
/* Grid */ 
 

 
.featured { 
 
    display: grid; 
 
    grid-template-columns: 25% 25% 25% 25%; 
 
    grid-template-rows: 50% 50%; 
 
} 
 

 
.featured > div { 
 
    text-align: center; 
 
} 
 

 
.fmain { 
 
    grid-column: 1/span 2; 
 
    grid-row: 1/span 2; 
 
    position: relative; 
 
} 
 

 
.fmain img { 
 
    width: 100%; 
 
} 
 

 
.main1 { 
 
    grid-column: 3/span 1; 
 
    grid-row: 1; 
 
} 
 

 
.main1 img { 
 
    width: 100%; 
 
} 
 

 
.main2 { 
 
    grid-column: 4/span 1; 
 
    grid-row: 1; 
 
} 
 

 
.main2 img { 
 
    width: 100%; 
 
} 
 

 
.main3 { 
 
    grid-column: 3/span 1; 
 
    grid-row: 2; 
 
} 
 

 
.main3 img { 
 
    width: 100%; 
 
} 
 

 
.main4 { 
 
    grid-column: 4/span 1; 
 
    grid-row: 2; 
 
} 
 

 
.main4 img { 
 
    width: 100%; 
 
} 
 
.overlay { 
 
    position: absolute; 
 
    bottom: 100%; 
 
    left: 0; 
 
    right: 0; 
 
    background-color: #008CBA; 
 
    overflow: hidden; 
 
    width: 100%; 
 
    height:0; 
 
    transition: .5s ease; 
 
} 
 
.text { 
 
    white-space: nowrap; 
 
    color: white; 
 
    font-size: 20px; 
 
    position: absolute; 
 
    overflow: hidden; 
 
    top: 25%; 
 
    left: 50%; 
 
    transform: translate(-50%, -50%); 
 
    -ms-transform: translate(-50%, -50%); 
 
} 
 
.fmain:hover .overlay { 
 
    bottom: 0; 
 
    height: 100%; 
 
}
<!-- Header Logo --> 
 
    <div class="hlogo"> 
 
     <a href="Home">Hidden Listen</a> 
 
    </div> 
 
    <!-- Header Links --> 
 

 
    <div class="navbar"> 
 
     <a href="Home">Home</a> 
 
     <a href="Reviews">Reviews</a> 
 
     <a href="Artists">Artists</a> 
 
    </div> 
 

 
    <!-- Grid of Home page --> 
 

 
    <div class="featured"> 
 
     <div class="fmain"> 
 
      <img src="/img/Album Covers/marvel1.jpg" alt="Album Cover"> 
 
      <div class="overlay"> 
 
      <h1 class="text">Text hover shit</h1> 
 
      </div> 
 
     </div> 
 
     <div class="main1"> 
 
      <img src="/img/Album Covers/fantasy.jpg"> 
 
     </div> 
 
     <div class="main2"> 
 
      <img src="/img/Album Covers/No Dope on Sundays.jpg"> 
 
     </div> 
 
     <div class="main3"> 
 
      <img src="/img/Album Covers/Scum Tyler.jpg"> 
 
     </div> 
 
     <div class="main4"> 
 
      <img src="/img/Album Covers/syre.jpg"> 
 
     </div> 
 
    </div>

0

あなたは要素のidに:hoverを使用して、テキストなしの表示を設定する必要があり、それを

を行うには、多くの方法がありますCSSを使用してホバリングを行うためにかこのようなクラスは.hoverText:hoverのようになります。display:block;それだけです。

https://jsfiddle.net/Liamm12/n2w38whv/

.hlogo { 
 
    text-align: center; 
 
    background-color: transparent; 
 
    width: 100%; 
 
    padding-top: 20px; 
 
} 
 

 
.hlogo a { 
 
    color: #092140; 
 
    text-decoration: none; 
 
    display: inline-block; 
 
    font-size: 50px; 
 
    font-family: 'Oswald', sans-serif; 
 
} 
 
.navbar { 
 
    background-color: transparent; 
 
    overflow: hidden; 
 
    text-align: center; 
 
    width: 100%; 
 
} 
 

 
.navbar a { 
 
    color: #092140; 
 
    text-decoration: none; 
 
    display: inline-block; 
 
    padding: 15px 10px; 
 
    padding-top: 5px; 
 
    font-family: 'Oswald', sans-serif; 
 
    font-weight: 300; 
 
} 
 

 
.navbar a:hover { 
 
    color:#F24738; 
 
} 
 

 
/* Grid */ 
 

 
.featured { 
 
    display: grid; 
 
    grid-template-columns: 25% 25% 25% 25%; 
 
    grid-template-rows: 50% 50%; 
 
} 
 

 
.featured > div { 
 
    text-align: center; 
 
} 
 

 
.fmain { 
 
    grid-column: 1/span 2; 
 
    grid-row: 1/span 2; 
 
    position: relative; 
 
} 
 
.hoverText{ 
 
    display:none; 
 
    position: absolute; 
 
    top: 10%; 
 
    font-size: 28px; 
 
    left: 15%; 
 
    color: #fff; 
 
    transition: all 0,3s ease; 
 
} 
 
.hoverText:hover{ 
 
    display: block; 
 
} 
 

 

 

 
.fmain img { 
 
    width: 100%; 
 
} 
 
.fmain img:hover ~ .hoverText { 
 
    display:block; 
 
} 
 

 

 
.main1 { 
 
    grid-column: 3/span 1; 
 
    grid-row: 1; 
 
} 
 

 
.main1 img { 
 
    width: 100%; 
 
} 
 
.main2 { 
 
    grid-column: 4/span 1; 
 
    grid-row: 1; 
 
} 
 

 
.main2 img { 
 
    width: 100%; 
 
} 
 

 
.main3 { 
 
    grid-column: 3/span 1; 
 
    grid-row: 2; 
 
} 
 

 
.main3 img { 
 
    width: 100%; 
 
} 
 

 
.main4 { 
 
    grid-column: 4/span 1; 
 
    grid-row: 2; 
 
} 
 

 
.main4 img { 
 
    width: 100%; 
 
}
<!-- Header Logo --> 
 
    <div class="hlogo"> 
 
     <a href="Home">Hidden Listen</a> 
 
    </div> 
 
    <!-- Header Links --> 
 

 
    <div class="navbar"> 
 
     <a href="Home">Home</a> 
 
     <a href="Reviews">Reviews</a> 
 
     <a href="Artists">Artists</a> 
 
    </div> 
 

 
    <!-- Grid of Home page --> 
 

 
    <div class="featured"> 
 
     <div class="fmain"> 
 
      <img src="http://cdn.pcwallart.com/images/universe-wallpaper-3d-wallpaper-2.jpg" alt="Album Cover"> 
 
      <h1 class="hoverText">Text hover shit</h1> 
 
     </div> 
 
     <div class="main1"> 
 
      <img src="/img/Album Covers/fantasy.jpg"> 
 
     </div> 
 
     <div class="main2"> 
 
      <img src="/img/Album Covers/No Dope on Sundays.jpg"> 
 
     </div> 
 
     <div class="main3"> 
 
      <img src="/img/Album Covers/Scum Tyler.jpg"> 
 
     </div> 
 
     <div class="main4"> 
 
      <img src="/img/Album Covers/syre.jpg"> 
 
     </div> 
 
    </div>

0

.hlogo { 
 
    text-align: center; 
 
    background-color: transparent; 
 
    width: 100%; 
 
    padding-top: 20px; 
 
} 
 

 
.hlogo a { 
 
    color: #092140; 
 
    text-decoration: none; 
 
    display: inline-block; 
 
    font-size: 50px; 
 
    font-family: 'Oswald', sans-serif; 
 
} 
 
.navbar { 
 
    background-color: transparent; 
 
    overflow: hidden; 
 
    text-align: center; 
 
    width: 100%; 
 
} 
 

 
.navbar a { 
 
    color: #092140; 
 
    text-decoration: none; 
 
    display: inline-block; 
 
    padding: 15px 10px; 
 
    padding-top: 5px; 
 
    font-family: 'Oswald', sans-serif; 
 
    font-weight: 300; 
 
} 
 

 
.navbar a:hover { 
 
    color:#F24738; 
 
} 
 

 
/* GRID---- */ 
 

 
.grid{ 
 
     width:100%; 
 
     position:relative; 
 
     overflow:hidden; 
 
     list-style-type: none; 
 
     margin-left:120px; 
 
} 
 

 

 
.griditem .gridhover{ 
 
     transform: scaleY(1); 
 
} 
 

 
.griditem{ 
 
    max-width:100%; 
 
    height:auto; 
 
    position:relative; 
 
    float:left; 
 
    width: 200px; 
 
    margin: 0 0 10px 10px; 
 
} 
 

 
.gridhover{ 
 
    position:absolute; 
 
    width:100%; 
 
    height:100%; 
 
    top:0%; 
 
    transform: translateY(-50%); 
 
    z-index: 2; 
 
    opacity:0; 
 
    text-align: center; 
 
    -webkit-transition:all 0.3s ease-in; 
 
    -moz-transition:all 0.3s ease-in; 
 
    -o-transition:all 0.3s ease-in; 
 
    transition:all 0.3s ease-in; 
 
    background: grey; 
 
    
 

 
} 
 
.gridhover:hover{ 
 
    opacity: 0.96; 
 

 
} 
 
.gridhover h{ 
 
    font-size:30px; 
 
    width: 100%; 
 
    position:absolute; 
 
    font-weight:700; 
 
    line-height: 50px; 
 

 
} 
 
.gridhover p{ 
 
    font-size:20px; 
 
    position:absolute; 
 

 
} 
 
.grid img{ 
 
    width: 100%; 
 
} 
 

 
    
 
<!DOCTYPE html> 
 
<html> 
 
<head> 
 
<title>HTML, CSS and JavaScript demo</title> 
 
</head> 
 
<body> 
 
<!-- Header Logo --> 
 
    <div class="hlogo"> 
 
     <a href="Home">Hidden Listen</a> 
 
    </div> 
 
    <!-- Header Links --> 
 

 
    <div class="navbar"> 
 
     <a href="Home">Home</a> 
 
     <a href="Reviews">Reviews</a> 
 
     <a href="Artists">Artists</a> 
 
    </div> 
 
<ul class="grid"> 
 
      
 
      <li class="griditem"> 
 
      <img src="https://helloworld.co.nz/images/helloworld-logo.jpg" alt="Album Cover"> 
 
       <a class="link" href="https://www.google.co.uk/search?q=hello&oq=hello&aqs=chrome..69i57j0l5.703j0j7&sourceid=chrome&ie=UTF-8"> 
 
       <div class="gridhover" id="marvel1"> 
 
        <h1>Text hover shit</h1> 
 
       </div> 
 
       </a> 
 
      </li> 
 
      
 
      
 
      
 
      <li class="griditem"> 
 
      <img src="https://s-media-cache-ak0.pinimg.com/originals/9c/b7/ea/9cb7ea4872cf0622377402694c26228a.jpg" alt="Album Cover"> 
 
       <a class="link" href="https://www.google.co.uk/search?q=hello&oq=hello&aqs=chrome..69i57j0l5.703j0j7&sourceid=chrome&ie=UTF-8"> 
 
       <div class="gridhover" id="marvel1"> 
 
        <h1>Text hover shit</h1> 
 
       </div> 
 
       </a> 
 
      </li> 
 
    </ul> 
 
</body> 
 
</html>

まず第一に、私は、それはあなたのように非常に簡単にCSSを書いなるだろうという理由だけでグリッドのリストを使用しますすべてのグリッドアイテムに同じCSSを使用できます。

グリッド画像のサイズが異なる場合は、若干のサイズの変更を行うために、各グリッド項目に固有のIDタグを追加することができます。

<li class="griditem" id="special_item"> 

この形式は、あなたの時間を節約し、 HTML形式を処理する方が簡単ですになります。

 <ul class="grid"> 

     <li class="griditem"> 
     <img src="/img/Album Covers/marvel1.jpg" alt="Album Cover"> 
      <a class="link" href="projects/something/something.php"> 
      <div class="gridhover" id="marvel1"> 
       <h1>Text hover shit</h1> 
      </div> 
      </a> 
     </li> 

このように拡張するのはずっと簡単であり、そうでない場合でも意味的に正しいものにしたいと考えています。

このシナリオでは、divのリストを使用すると、Googleロボット、スクリーンリーダー、およびインターネットのブラインドユーザーに役立ちます。

関連する問題