admin管理员组文章数量:1130349
Background
My website is organised in a grid layout of four columns of divs. Each div is a container for a post and is a square of 200 x 200px. The title is a header at the bottom of the div and there is either an excerpt or a featured image above. Currently, if you click on either the excerpt text/featured image or the header, you will be taken to a page with that specific content.
Problem
I saw this codepen, and I wanted to emulate the same effect (preferably without haml and scss). In any case, what I wanted was for each div post to have a certain background and border colour with just the header in the centre, then after a hover or touchend, move the header down, remove background and border colours and reveal either the excerpt or the featured image.
I tried doing this by creating a div above each post called the hoverzone. Hovering over the zone would then change that div's class from post to post-hover with it's own separate styling. I got this to work except it would only change the first post's styling.
Because of Wordpress's loop, all posts have the same class and ID, i.e. 'post' and 'uniquepost' respectively.
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?
I tried using php with the class: hoverzone_<?php the_title_attribute(); ?>, only to realise that this could not be integrated into either JQuery nor CSS.
Thank you,
Background
My website is organised in a grid layout of four columns of divs. Each div is a container for a post and is a square of 200 x 200px. The title is a header at the bottom of the div and there is either an excerpt or a featured image above. Currently, if you click on either the excerpt text/featured image or the header, you will be taken to a page with that specific content.
Problem
I saw this codepen, and I wanted to emulate the same effect (preferably without haml and scss). In any case, what I wanted was for each div post to have a certain background and border colour with just the header in the centre, then after a hover or touchend, move the header down, remove background and border colours and reveal either the excerpt or the featured image.
I tried doing this by creating a div above each post called the hoverzone. Hovering over the zone would then change that div's class from post to post-hover with it's own separate styling. I got this to work except it would only change the first post's styling.
Because of Wordpress's loop, all posts have the same class and ID, i.e. 'post' and 'uniquepost' respectively.
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?
I tried using php with the class: hoverzone_<?php the_title_attribute(); ?>, only to realise that this could not be integrated into either JQuery nor CSS.
Thank you,
Share Improve this question asked Oct 21, 2018 at 12:14 Z. SteamZ. Steam 32 bronze badges2 Answers
Reset to default 0I'm not sure why this question is related to WordPress, but you should be able to accomplish what you're after with just CSS as demonstrated in the following Codepen.
In case something happens to that, the code is copied here.
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/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;
}
You can use the post_class() function to insert html classes specific to that post, or, just add a HTML class that contains the post ID. post_class will add classes for the post ID, type, etc
Background
My website is organised in a grid layout of four columns of divs. Each div is a container for a post and is a square of 200 x 200px. The title is a header at the bottom of the div and there is either an excerpt or a featured image above. Currently, if you click on either the excerpt text/featured image or the header, you will be taken to a page with that specific content.
Problem
I saw this codepen, and I wanted to emulate the same effect (preferably without haml and scss). In any case, what I wanted was for each div post to have a certain background and border colour with just the header in the centre, then after a hover or touchend, move the header down, remove background and border colours and reveal either the excerpt or the featured image.
I tried doing this by creating a div above each post called the hoverzone. Hovering over the zone would then change that div's class from post to post-hover with it's own separate styling. I got this to work except it would only change the first post's styling.
Because of Wordpress's loop, all posts have the same class and ID, i.e. 'post' and 'uniquepost' respectively.
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?
I tried using php with the class: hoverzone_<?php the_title_attribute(); ?>, only to realise that this could not be integrated into either JQuery nor CSS.
Thank you,
Background
My website is organised in a grid layout of four columns of divs. Each div is a container for a post and is a square of 200 x 200px. The title is a header at the bottom of the div and there is either an excerpt or a featured image above. Currently, if you click on either the excerpt text/featured image or the header, you will be taken to a page with that specific content.
Problem
I saw this codepen, and I wanted to emulate the same effect (preferably without haml and scss). In any case, what I wanted was for each div post to have a certain background and border colour with just the header in the centre, then after a hover or touchend, move the header down, remove background and border colours and reveal either the excerpt or the featured image.
I tried doing this by creating a div above each post called the hoverzone. Hovering over the zone would then change that div's class from post to post-hover with it's own separate styling. I got this to work except it would only change the first post's styling.
Because of Wordpress's loop, all posts have the same class and ID, i.e. 'post' and 'uniquepost' respectively.
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?
I tried using php with the class: hoverzone_<?php the_title_attribute(); ?>, only to realise that this could not be integrated into either JQuery nor CSS.
Thank you,
Share Improve this question asked Oct 21, 2018 at 12:14 Z. SteamZ. Steam 32 bronze badges2 Answers
Reset to default 0I'm not sure why this question is related to WordPress, but you should be able to accomplish what you're after with just CSS as demonstrated in the following Codepen.
In case something happens to that, the code is copied here.
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/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;
}
You can use the post_class() function to insert html classes specific to that post, or, just add a HTML class that contains the post ID. post_class will add classes for the post ID, type, etc
本文标签: phpStyling a specific post after hovering over it
版权声明:本文标题:php - Styling a specific post after hovering over it 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://it.en369.cn/questions/1749243813a2338544.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。


发表评论