将鼠标悬停在特定帖子上后设置其样式

时间:2018-10-21 作者:Z. Steam

背景我的网站是以四列div的网格布局组织的。每个div是一个post容器,是一个200 x 200px的正方形。标题是div底部的标题,上面有摘录或特色图片。目前,如果您单击摘录文本/特色图像或标题,您将进入包含该特定内容的页面


问题我看到了this codepen, 我想模拟同样的效果(最好没有haml和scss)。在任何情况下,我想要的是,每个部门的帖子都有一定的背景和边框颜色,只有标题在中间,然后在悬停或触屏后,向下移动标题,删除背景和边框颜色,并显示摘录或特色图片

我尝试在每个帖子上方创建一个div,名为hoverzone。将鼠标悬停在该区域上,将使该div的类从post更改为post悬停,并使用其自己的独立样式。我得到了这个工作,除了它只会改变第一篇文章的样式。

由于Wordpress的循环,所有帖子都有相同的类和ID,即“post”和“uniquepost”。

Is there a way to do a targeted selection of a specific post and change that post\'s style only during a hover or after a touchend?

我尝试将php用于类:hoverzone&\\60;?php the\\u title\\u attribute()>;,只有意识到这不能集成到JQuery或CSS中。

非常感谢。

2 个回复
最合适的回答,由SO网友:Nathan Johnson 整理而成

我不知道为什么这个问题与WordPress有关,但您应该能够通过CSS完成您想要的内容,如下所示Codepen.

如果发生了什么事情,代码将复制到这里。

HTML

<div class="wrapper">
  <a href="#">
    <article class="has-featured-image">
      <div class="post-title">Title</div>
      <div class="post-excerpt">This is an example excerpt. It is two sentences.</div>
      <div class="featured-image">
        <img src="https://lorempixel.com/200/200/"/>
      </div>
    </article>
  </a>
  <a href="#">
    <article>
      <div class="post-title">Title</div>
      <div class="post-excerpt">This is an example excerpt. It is two sentences.</div>
    </article>
  </a>
  <a href="#">
    <article>
      <div class="post-title">Title</div>
      <div class="post-excerpt">This is an example excerpt. It is two sentences.</div>
    </article>
  </a>
  <a href="#">
    <article>
      <div class="post-title">Title</div>
      <div class="post-excerpt">This is an example excerpt. It is two sentences.</div>
    </article>
  </a>
</div>
CSS

* {
  transition: all 0.2s ease-in-out;
}
.wrapper {
  display: flex;
  flex-wrap: wrap;
  margin: 2rem auto;
  width: 500px;
}
article {
  background-color: #eee;
  border: 1px solid #333;
  color: #000;
  height: 200px;
  margin: 0.125rem;
  max-height: 200px;
  max-width: 200px;
  min-height: 200px;
  min-width: 200px;
  overflow: hidden;
  position: relative;
  width: 200px
}
article:hover {
  background-color: #fff;
  background-image: initial;
  border-color: #fff;
}
.post-title {
  bottom: calc( 50% - 1rem );
  font-size: 2rem;
  left: calc( 50% - 2rem );
  max-width: calc( 100% - 3rem );
  position: absolute;
  z-index: 99;
}
.post-excerpt {
  color: #eee;
  left: 2rem;
  max-width: calc( 100% - 3rem );
  position: absolute;
  top: 3rem;
  transition: all 0.2s ease-in-out;
}
.featured-image {
  opacity: 0;
  z-index: 0;
}
article:hover .post-title {
  bottom: 2rem;
}
article:hover .post-excerpt {
  color: #111;
}
article.has-featured-image .post-excerpt {
  display: none;
}
article:hover .featured-image {
  opacity: 100;
}

SO网友:Tom J Nowell

您可以使用post_class() 函数插入特定于该帖子的html类,或者只添加一个包含帖子ID的html类。post_class 将为帖子ID、类型等添加类

结束