【问题标题】:CSS transition for opacity does not work不透明度的 CSS 过渡不起作用
【发布时间】:2016-12-08 20:13:49
【问题描述】:

我的问题已经在标题中说明了。我认为我做的一切都是正确的。但是,没有出现过渡效果。请注意,实际上出现了悬停效果,并且出现了 h5 标签内的文字,但没有过渡效果。这让我发疯,任何建议将不胜感激。

a.jobBoxLink {
  color: #B2B2B2;
  -moz-box-shadow: 3px 0 0px 0 #F2F2F2;
  -webkit-box-shadow: 3px 0 0px 0 #F2F2F2;
  box-shadow: 3px 0 0px 0 #F2F2F2;
}
.jobBoxLink:hover {
  text-decoration: none;
  color: black;
  display: block;
  background #B2B2B2;
}
.text-content {
  background: rgba(0, 0, 0, 0.5);
  color: white;
  cursor: pointer;
  height: 200px;
  position: absolute;
  width: 200px;
  margin: 0;
  opacity: 0;
  -webkit-transition: opacity 5000ms;
  -moz-transition: opacity 5000ms;
  -o-transition: opacity 5000ms;
  transition: opacity 5000ms;
}
a.jobBoxLink:hover .text-content {
  opacity: 1;
}
.books {
  -moz-box-shadow: 0 0 8px 3px #F2F2F2;
  -webkit-box-shadow: 0 0 8px 3px #F2F2F2;
  box-shadow: 0 0 8px 3px #F2F2F2;
  border-radius: 5px;
  height: 200px;
  width: 200px;
  margin-bottom: 10px;
  margin-top: 10px;
  padding-left: -100px;
  alignment-adjust: central;
}
<div class="col-sm-4 col-md-2 BoxCol">
  <a href="#" class="jobBoxLink ">

    <div class="books" style="background-image:  url('images/dummy/design.jpg'); background-size: cover; background-repeat: no-repeat; background-position: 50% 50%;">
      <h5 class="text-content">Place Name</h5>
    </div>
    <!-- Job boxes -->
  </a>
  <div class="caption">
    <a href="#" class="icon"> <span class="fa fa-thumbs-up fa-lg"></span> &nbsp;</a>
    <span class="greyCaption"> 22</span> 
    <a href="#" class="icon">   &nbsp;<span class="fa fa-thumbs-down fa-lg"></span> </a> 
  </div>
  <!--like caption -->
</div>

【问题讨论】:

    标签: html css hover transition


    【解决方案1】:

    这是因为您在锚点悬停时应用 css,默认情况下 &lt;a&gt; 是内联元素,如果检查元素,您会看到实际上没有 &lt;a&gt; 的高度和宽度。

    &lt;a&gt; 中使用display:block 将其转换为块元素,css 可以正常工作

    a.jobBoxLink {
      color: #B2B2B2;
      display:block;
      -moz-box-shadow: 3px 0 0px 0 #F2F2F2;
      -webkit-box-shadow: 3px 0 0px 0 #F2F2F2;
      box-shadow: 3px 0 0px 0 #F2F2F2;
    }
    .jobBoxLink:hover {
      text-decoration: none;
      color: black;
      display: block;
      background #B2B2B2;
    }
    .text-content {
      background: rgba(0, 0, 0, 0.5);
      color: white;
      cursor: pointer;
      height: 200px;
      position: absolute;
      width: 200px;
      margin: 0;
      opacity: 0;
      -webkit-transition: opacity 5000ms;
      -moz-transition: opacity 5000ms;
      -o-transition: opacity 5000ms;
      transition: opacity 5000ms;
    }
    a.jobBoxLink:hover .text-content {
      opacity: 1;
    }
    .books {
      -moz-box-shadow: 0 0 8px 3px #F2F2F2;
      -webkit-box-shadow: 0 0 8px 3px #F2F2F2;
      box-shadow: 0 0 8px 3px #F2F2F2;
      border-radius: 5px;
      height: 200px;
      width: 200px;
      margin-bottom: 10px;
      margin-top: 10px;
      padding-left: -100px;
      alignment-adjust: central;
    }
    <div class="col-sm-4 col-md-2 BoxCol">
      <a href="#" class="jobBoxLink ">
    
        <div class="books" style="background-image:  url('images/dummy/design.jpg'); background-size: cover; background-repeat: no-repeat; background-position: 50% 50%;">
          <h5 class="text-content">Place Name</h5>
        </div>
        <!-- Job boxes -->
      </a>
      <div class="caption">
        <a href="#" class="icon"> <span class="fa fa-thumbs-up fa-lg"></span> &nbsp;</a>
        <span class="greyCaption"> 22</span> 
        <a href="#" class="icon">   &nbsp;<span class="fa fa-thumbs-down fa-lg"></span> </a> 
      </div>
      <!--like caption -->
    </div>

    【讨论】:

      【解决方案2】:

      使用这个

      .text-content:hover{opacity : 1;} 
      

      而不是这个

       a.jobBoxLink:hover .text-content{ opacity: 1;}
      

       a.jobBoxLink{
       color: #B2B2B2;
       -moz-box-shadow:    3px 0 0px 0 #F2F2F2;
       -webkit-box-shadow: 3px 0 0px 0 #F2F2F2;
          box-shadow:        3px 0 0px 0 #F2F2F2; 
      
       }
      .jobBoxLink:hover{
      text-decoration:none;
      color: black;
      display:block;
      background #B2B2B2; 
        }
      
      
        .text-content {
       background: rgba(0,0,0,0.5);
        color: white;
        cursor: pointer;
        height: 200px;
         position: absolute;
         width: 200px;
            display:block;
        margin:0;
        opacity : 0;  
       -webkit-transition: opacity  2s;
      -moz-transition: opacity  2s;
      -o-transition: opacity  2s;
       transition: opacity  2s;
      
       } 
      
       .text-content:hover{
        opacity : 1;
        
        } 
      
      
       .books{
       -moz-box-shadow:    0 0 8px 3px #F2F2F2;
       -webkit-box-shadow: 0 0 8px 3px #F2F2F2;
          box-shadow:         0 0 8px 3px #F2F2F2;  
       border-radius: 5px; 
       height: 200px;
       width: 200px; 
       margin-bottom:10px;
       margin-top: 10px;
       padding-left: -100px;
       alignment-adjust: central;
        }
      <!DOCTYPE html>
      <html>
      <head>
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
        <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
        <script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/js/bootstrap.min.js"></script>
      </head>
      <body>
        <div class="col-sm-4 col-md-2 BoxCol">
      <a href="#" class="jobBoxLink ">
      
      <div class="books" style="background-image:  url('images/dummy/design.jpg'); background-size: cover; background-repeat: no-repeat; background-position: 50% 50%;">
              <h5 class="text-content">Place Name</h5>
      </div> <!-- Job boxes -->
      </a>
      <div class="caption">   
      <a href="#" class="icon"> <span class="fa fa-thumbs-up fa-lg"></span>  &nbsp;  </a> 
      <span class="greyCaption"> 22</span> 
          <a href="#" class="icon">   &nbsp;<span class="fa fa-thumbs-down fa-lg"></span> </a> 
         </div> <!--like caption -->
        </div>
        </body>
        
        </html>

      【讨论】:

        猜你喜欢
        • 2018-08-01
        • 2021-07-26
        • 2020-06-13
        • 2014-08-18
        • 1970-01-01
        • 2020-05-29
        • 2017-06-27
        • 2014-06-28
        • 2021-08-10
        相关资源
        最近更新 更多