在悬停时更改另一个DIVs css属性不起作用

时间:2017-12-20 13:25:17

标签: css

我遇到了一个问题,我无法在悬停时更改另一个div来更改css属性。

我的HTML结构如下:

<section class="grid panel-small">
  <div class="col-6 grid-container">
    <div class="col-12 item">
        <a href="#" class="item-area gold">
           <div class="full-row" style="
               background-image: url(https://www.painterartist.com/static/ptr/product_content/painter/2018/bob-ross/gallery/03.jpg)">
           </div>
           <div class="item-description">
                 <div class="item-description-inner">
                     <h2>Title</h2>
                     <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec faucibus sed sem eget efficitur.</p>
                     <div class="feature-btn">
                         View more
                            <i class="fas fa-angle-right"></i>
                      </div>
                </div>
           </div>
        </a>
     </div>
  </div>
 </section>

我希望能够将item-description-inner更改为具有正余量而非负值。

这是我的CSS:

  main#container .grid, main#container .grid .grid-container {
     display: -webkit-flex;
     display: flex;
     -webkit-flex-flow: row wrap;
     flex-flow: row wrap;
  }

   main#container .grid .grid-container .item {
      -webkit-flex: 1 auto;
      flex: 1 auto;
      position: relative;
      overflow: hidden;
   }

    main#container .grid .grid-container .item > .item-area {
         position: relative;
         width: 100%;
         display: block;
         z-index: 1
      }

    main#container .grid .grid-container .item > .item-area > .full-row {
            padding-bottom: 56.222%;
         }

    main#container .grid .grid-container .item > .item-area > .half-row {
        padding-bottom: 112%;
        padding-bottom: calc( 2 * 56.222%);
     }

     main#container .grid .grid-container .item > .item-area .item-description {
        padding-right: 55px;
        padding-bottom: 33px;
        padding-left: 55px;
        position: relative;
        z-index: 2;
     }

        main#container .grid .grid-container .item > .item-area .item-description > .item-description-inner {
           margin-top: -31px;
           margin-bottom: 31px;
        }

.item > .item-area:hover .item-description > .item-description-inner {
    margin-top: 31px;
}

我阅读了这篇S.O文章,并阅读了~+,但这些选择器都不适用于我。

2 个答案:

答案 0 :(得分:1)

您正面临特异性问题,因为初始选择器比具有悬停

的选择器更具体

这个更具体:

 main#container .grid .grid-container .item > .item-area .item-description > .item-description-inner 

比这个:

.item > .item-area:hover .item-description > .item-description-inner

要解决此问题,您可以为第二个添加更多特定内容,并将其设为:

main#container .grid .grid-container .item > .item-area:hover .item-description > .item-description-inner 

你也可以使第一个不那么具体

答案 1 :(得分:-1)

试试这个:

.item-description-inner {
                margin-top: -31px;
                margin-bottom: 31px;
}

.item-description-inner:hover {
                 margin-top: 31px;
}