簡體   English   中英

將鼠標懸停在div上

[英]make a div overlay link on hover

當用戶將鼠標懸停在div上時,我一直試圖使div覆蓋鏈接指向另一個頁面。 我希望鏈接整個鏈接,而不僅僅是我當前擁有的文本鏈接。 誰能告訴我我哪里出問題了。

Jfiddle附上。

https://jsfiddle.net/ahh6Lars/

    <div class="portfolio-project-container">
<div class="portfolio-project">
<div class="portfolio-project-image">
<ul class="portfolio-project-image">
    <li>
        <div class="portfolio-project-image-one"></div>
        <div class="portfolio-overlay"><a href="#"></a><div class="bt4">Marks & Spencer</div><div class="bt5"><a href="images/flyer_mock_up.jpg" class="html5lightbox" data-width="853" data-height="480" title="">Summer Fete A5 Flyers</a></div><div class="bt6"></div></div>
    </li>
</ul>
</div>
</div>
</div>

CSS

.portfolio-overlay {
  width:100%;
  height:100%;
  opacity: 0.75;
  position:absolute;
  background-color:black;
  top:-100%;
  transition: top 0.3s ease-in-out;
  display:block;

}
.portfolio-overlay div {
    position:relative;
  display:inline-block;;

}

ul.portfolio-project-image { 
    list-style: none; 
    width:100% 

}

ul.portfolio-project-image li {
    position: relative;
    display: inline-block;
    width:100%;
  height: 100%;
  overflow: hidden;
}

li:hover .portfolio-overlay {
  top: 0;
  display:block;


}
.bt4 {
    text-align: center;
    margin-top: 160px;
    font: 200 12px/1.3 'Roboto', 'Helvetica Neue', 'Segoe UI Light', sans-serif;
    font-size: 14px;
    font-weight: 500;
    color:#FFF;
    width:100%;
    height:10px;
    margin-left:auto;
    margin-right:auto;
}
.bt5 {
    text-align: center;
    font: 100 14px/1.3 'Roboto', 'Helvetica Neue', 'Segoe UI Light', sans-serif;
    font-size: 16px;
    font-weight: 200;
    color:#FFF;
    width:100%;
    height:10px;
    margin-left:auto;
    margin-right:auto;
    margin-top: 10px;
}

.portfolio-project {
    width: 32%;
    height: 373px;
    box-shadow: 0 0 3px rgba(0, 0, 0, 0.2);
    margin-left:15px;
    float:left;
}


.portfolio-project-image{
    width: 100%;
    height: 373px;
}

.portfolio-project-image-one{
    width: 100%;
    height: 373px;
    background-image:url(../images/flyer_mock_up.jpg);
    background-position:center;
}



.portfolio-project-image-one:hover{
    width: 100%;
    height: 373px;
    background-image:url(../images/flyer_mock_up.jpg);
    background-position:center;
    display:block;
}

.bt5 a {
    text-align: center;
    font: 100 14px/1.3 'Roboto', 'Helvetica Neue', 'Segoe UI Light', sans-serif;
    font-size: 16px;
    font-weight: 200;
    color:#FFF;
    width:100%;
    height:10px;
    margin-left:auto;
    margin-right:auto;
    margin-top: 10px;
    text-decoration:none;
}

portfolio-project div由主播包裹起來:

<div class="portfolio-project">
  <a href="images/flyer_mock_up.jpg" class="html5lightbox" data-width="853" data-height="480" title="">
  <div class="portfolio-project-image">
    <ul class="portfolio-project-image">
      <li>
        <div class="portfolio-project-image-one"></div>
        <div class="portfolio-overlay"><div class="bt4">Marks & Spencer</div><div class="bt5">Summer Fete A5 Flyers</div><div class="bt6"></div></div>
     </li>
  </ul>
 </div>
</a>
</div>

並在錨點中應用以下CSS:

a.html5lightbox {
 height: 100%;
 width: 100%;
 display: block;
}

將DIV包裹在錨點內

嘗試:

<a href="Yourhref.html">
    <div class="overlay-or-whatever">Div content here</div>
</a>

然后,您可以根據需要在a放置盡可能多的元素。

編輯:

查看您的小提琴,您的代碼看起來相當復雜,我將無法深入研究所有內容。

CSS可能會對您希望實現的目標產生影響。 例如,將display: blockline-height應用於鏈接可以幫助實現目標。 但是,您可能還需要對周圍容器的CSS進行其他更改。

祝你好運!

這是一個JSFiddle,它可以工作https://jsfiddle.net/Lfz34a8x/

您想將div包裝在“ a”標簽中(並刪除其他“ a”標簽)。 例:

<a href="images/flyer_mock_up.jpg" class="html5lightbox" data-width="853" data-height="480" title="">
    <div class="portfolio-overlay">
        <div class="bt4">Marks & Spencer</div>
        <div class="bt5">Summer Fete A5 Flyers</div>
        <div class="bt6"></div>
    </div>
</a>

閱讀更多有關錨標簽中嵌套元素的信息

<div class="portfolio-project-container">
<div class="portfolio-project">
<div class="portfolio-project-image">
<ul class="portfolio-project-image">
    <li>
        <div class="portfolio-project-image-one"></div>
        <div class="portfolio-overlay"><a class="demoLink" href="#"></a><div class="bt4">Marks & Spencer</div><div class="bt5"><a href="images/flyer_mock_up.jpg" class="html5lightbox" data-width="853" data-height="480" title="">Summer Fete A5 Flyers</a></div><div class="bt6"></div></div>
    </li>
</ul>
</div>
</div>
</div>

添加肥胖的CSS鏈接

.portfolio-overlay a.demoLink{
    width:100%;
    height:100%;
    position:absolute
}

演示

嗨,我不知道您是否找到答案! 但是,如果您可以檢查我在此答案中輸入的代碼段,那就太好了!

我剛剛編輯了您的代碼,並修復了HTML代碼中的一個小錯誤:

<a href="#">

我刪除了該部分並將div包裝在您所需的標簽內!

希望這對您有所幫助!

干杯!

 .portfolio-overlay { width:100%; height:100%; opacity: 0.75; position:absolute; background-color:black; top:-100%; transition: top 0.3s ease-in-out; display:block; } .portfolio-overlay div { position:relative; display:inline-block;; } ul.portfolio-project-image { list-style: none; width:100% } ul.portfolio-project-image li { position: relative; display: inline-block; width:100%; height: 100%; overflow: hidden; } li:hover .portfolio-overlay { top: 0; display:block; } .bt4 { text-align: center; margin-top: 160px; font: 200 12px/1.3 'Roboto', 'Helvetica Neue', 'Segoe UI Light', sans-serif; font-size: 14px; font-weight: 500; color:#FFF; width:100%; height:10px; margin-left:auto; margin-right:auto; } .bt5 { text-align: center; font: 100 14px/1.3 'Roboto', 'Helvetica Neue', 'Segoe UI Light', sans-serif; font-size: 16px; font-weight: 200; color:#FFF; width:100%; height:10px; margin-left:auto; margin-right:auto; margin-top: 10px; } .portfolio-project { width: 32%; height: 373px; box-shadow: 0 0 3px rgba(0, 0, 0, 0.2); margin-left:15px; float:left; } .portfolio-project-image{ width: 100%; height: 373px; } .portfolio-project-image-one{ width: 100%; height: 373px; background-image:url(../images/flyer_mock_up.jpg); background-position:center; } .portfolio-project-image-one:hover{ width: 100%; height: 373px; background-image:url(../images/flyer_mock_up.jpg); background-position:center; display:block; } .bt5 a { text-align: center; font: 100 14px/1.3 'Roboto', 'Helvetica Neue', 'Segoe UI Light', sans-serif; font-size: 16px; font-weight: 200; color:#FFF; width:100%; height:10px; margin-left:auto; margin-right:auto; margin-top: 10px; text-decoration:none; } 
 <div class="portfolio-project-container"> <div class="portfolio-project"> <div class="portfolio-project-image"> <ul class="portfolio-project-image"> <li> <div class="portfolio-project-image-one"></div> <a href="images/flyer_mock_up.jpg" class="html5lightbox" data-width="853" data-height="480" title=""> <div class="portfolio-overlay"><div class="bt4">Marks & Spencer</div><div class="bt5">Summer Fete A5 Flyers</div><div class="bt6"></div></div> </a> </li> </ul> </div> </div> </div> 

我嘗試將所有代碼減少到問題的最小中心,但是足夠的html使其可理解。

https://jsfiddle.net/luarmr/ahh6Lars/4/

HTML

<ul class="portfolio-project-image">
    <li><a href="images/flyer_mock_up.jpg">
        <span>
        Marks &amp; Spencer 
        <span>Summer Fete A5 Flyers</span>
         </span>
        </a>
    </li>
</ul>

CSS

body{
    font: 200 14px/1.3 'Roboto', 'Helvetica Neue', 'Segoe UI Light', sans-serif;
}

ul.portfolio-project-image{
    margin:10px;
    padding:0;
    text-decoration:none;
    list-style-type:none;

}

ul.portfolio-project-image li a,
ul.portfolio-project-image li a>span{
    display:block;
    width:200px;
    height:300px;
    text-align:center;
    background:#fabada;
    position:relative;
    box-sizing:border-box;
    overflow:hidden;

}

ul.portfolio-project-image li span{
    display:block;
}

ul.portfolio-project-image li a>span{
    padding-top:80px;
    background:#fe0;
    position:absolute;
    top:-100%;
    -webkit-transition: top 0.3s ease-in-out;
            transition: top 0.3s ease-in-out;
}

ul.portfolio-project-image li a:hover>span{
    top:0%;
}

基本上,鏈接覆蓋了所有元素,並且內部范圍具有過渡,我建議您也使用flex將內容居中垂直,這里我直接使用padding-top。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM