使用背景图片、标题和类别添加指向 div 的链接
Add links to div with Background Image, title and category
我们的特色图片作为 div 背景,我们不能 link 它
当我们尝试将 href 用作绝对值时一定是错误的!!
我们需要 link div 及其标题,但保留类别和评论 url 及其
urls 并且在 div
上不受 post url 的影响
你可以在这里看到实时代码http://codepen.io/earngate/pen/dvVLEj
#thumb-wrap {
margin: 0 auto;
overflow: hidden;
}
.thumb-element:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
right: 0;
bottom: 0;
left: 0;
background: -moz-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: -o-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: -ms-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: -webkit-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: linear-gradient(to bottom, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001b1a19', endColorstr='#1b1a19', GradientType=0);
}
.thumb-element:hover .thumb-title,
.thumb-element:hover .thumb-summary {
margin-bottom: 5px;
background: no-repeat 50% 70%;
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.thumb-category {
position: absolute;
background: green;
border-radius: 30px;
padding: 1px 15px;
top: -30px;
right: 15px;
}
#thumb-wrap a {
opacity: 1.0;
color: #fff;
}
.relative {
position: relative
}
#thumb-first-container {
width: 50%;
float: right;
height: 390px !important;
}
#thumb-container {
float: right;
width: 20%;
height: 195px !important;
}
#thumb-container:nth-child(5n+2),
#thumb-container:nth-child(5n+5) {
width: 30%;
}
.thumb-title {
position: absolute;
bottom: 10px;
right: 10px;
direction: rtl
}
.thumb-link {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.thumb-dummy {
padding-top: 60%;
}
.thumb-element {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
text-align: center;
border: 1px solid white;
padding-top: 19px;
background: no-repeat 50% 50%;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.thumb-content {
width: 100%;
}
.thumb-next {
position: absolute;
top: 50%;
}
.thumb-prev {
position: absolute;
top: 50%;
}
h2 {
font-size: 10pt;
}
<div id="thumb-wrap">
<div class="thumb-content">
<div id="thumb-first-container" class="relative">
<div class="thumb-dummy">
</div>
<div title="6 Animals that Went Viral Around the World" class="thumb-element" style="background-image: url('http://i.imgur.com/9GnXdDFl.jpg')">
<div class="thumb-title">
<div class="thumb-category">
<a href="http://animal-site.com/?cat=102363">News</a>
</div>
<a class="thumb-link" title="6 Animals that Went Viral Around the World" href="http://animal-site.com/?p=106588" rel="bookmark">
<h2>6 Animals that Went Viral Around the World </h2>
</a>
<div class="post-meta-info">
<span class="post-meta"><i class="fa fa-clock-o"></i>
<a rel="bookmark">2 weeks ago</a></span> <span class="post-meta">
<i class="fa fa-comments"></i>
<a href="http://animal-site.com/?p=106588#respond">0</a></span>
</div>
<p></p>
<div class="thumb-summary">
</div>
</div>
</div>
</div>
</div>
</div>
为什么不把有背景的Div改成span然后用anchor包起来呢。拥有主要包装器,因此 post meta(categories link,comments link) 将是绝对的,然后只需增加 z-index 即可使其位于顶部。
你可以试试这个。我已经更改了代码,因为不需要标签。
#featured-image{
position: relative;
width: 50%;
float: right;
margin: 10px;
}
*{
margin: 0;
padding: 0;
}
#featured-image figure a{
display: block;
}
#featured-image figure span{
display: block;
height: 390px;
background: no-repeat 50% 50%;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
background-image: url('http://i.imgur.com/9GnXdDFl.jpg');
}
#featured-image figure span:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
right: 0;
bottom: 0;
left: 0;
background: -moz-linear-gradient(top, rgba(27,26,25,0) 0%, rgba(27,26,25,0) 46%, rgba(27,26,25,0.44) 65%, rgba(27,26,25,1) 99%, rgba(27,26,25,1) 100%);
background: -o-linear-gradient(top, rgba(27,26,25,0) 0%, rgba(27,26,25,0) 46%, rgba(27,26,25,0.44) 65%, rgba(27,26,25,1) 99%, rgba(27,26,25,1) 100%);
background: -ms-linear-gradient(top, rgba(27,26,25,0) 0%, rgba(27,26,25,0) 46%, rgba(27,26,25,0.44) 65%, rgba(27,26,25,1) 99%, rgba(27,26,25,1) 100%);
background: -webkit-linear-gradient(top, rgba(27,26,25,0) 0%,rgba(27,26,25,0) 46%,rgba(27,26,25,0.44) 65%,rgba(27,26,25,1) 99%,rgba(27,26,25,1) 100%);
background: linear-gradient(to bottom, rgba(27,26,25,0) 0%,rgba(27,26,25,0) 46%,rgba(27,26,25,0.44) 65%,rgba(27,26,25,1) 99%,rgba(27,26,25,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001b1a19', endColorstr='#1b1a19',GradientType=0 );
}
#featured-image .info-wrap{
position: absolute;
bottom: 0;
right: 0;
width: 20%;
z-index: 1000;
}
.info-wrap {
text-align: right;
padding: 10px;
}
.info-wrap h2{
font-size: 12pt;
padding-bottom: 15px;
}
.info-wrap a{
color: #fff;
text-decoration: none;
}
.info-wrap .post-cat{
background: green;
border-radius: 30px;
padding: 1px 15px;
text-align: center;
display: inline-block;
margin-bottom: 10px;
}
.post-meta p a{
display: inline-block;
margin: 0 3px;
}
.post-meta p a:hover,
.info-wrap h2 a:hover{
color: green;
}
<div id="featured-image">
<figure>
<a href="#imagelinkhere"><span title="6 Animals that Went Viral Around the World"></span></a>
</figure>
<div class="info-wrap">
<h2 class="entry-title">
<a href="#titlelinkhere">6 Animals that Went Viral Around the World</a>
</h2>
<div class="post-meta">
<div class="post-cat"><a href="#cat-link">News</a></div>
<p><a href="#comments-link">Comments</a><a href="#respond-link">Respond</a></p>
</div><!--// end .post-meta -->
</div><!--// end .info-wrap -->
</div><!--// end #featured-image -->
只需在 "thumb-title" 之前添加新的 "a" 并使其成为绝对的。
这是更新版本 jsfiddle
已添加 HTML:
<a href="http://google.com" class='imageLink'>Click Image</a>
并在 CSS
.imageLink{
position: absolute;
top:0;
right: 0;
bottom: 0;
left: 0;
}
我们的特色图片作为 div 背景,我们不能 link 它
当我们尝试将 href 用作绝对值时一定是错误的!!
我们需要 link div 及其标题,但保留类别和评论 url 及其
urls 并且在 div
上不受 post url 的影响你可以在这里看到实时代码http://codepen.io/earngate/pen/dvVLEj
#thumb-wrap {
margin: 0 auto;
overflow: hidden;
}
.thumb-element:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
right: 0;
bottom: 0;
left: 0;
background: -moz-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: -o-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: -ms-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: -webkit-linear-gradient(top, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
background: linear-gradient(to bottom, rgba(27, 26, 25, 0) 0%, rgba(27, 26, 25, 0) 46%, rgba(27, 26, 25, 0.44) 65%, rgba(27, 26, 25, 1) 99%, rgba(27, 26, 25, 1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001b1a19', endColorstr='#1b1a19', GradientType=0);
}
.thumb-element:hover .thumb-title,
.thumb-element:hover .thumb-summary {
margin-bottom: 5px;
background: no-repeat 50% 70%;
-webkit-transition: all 0.3s;
transition: all 0.3s;
}
.thumb-category {
position: absolute;
background: green;
border-radius: 30px;
padding: 1px 15px;
top: -30px;
right: 15px;
}
#thumb-wrap a {
opacity: 1.0;
color: #fff;
}
.relative {
position: relative
}
#thumb-first-container {
width: 50%;
float: right;
height: 390px !important;
}
#thumb-container {
float: right;
width: 20%;
height: 195px !important;
}
#thumb-container:nth-child(5n+2),
#thumb-container:nth-child(5n+5) {
width: 30%;
}
.thumb-title {
position: absolute;
bottom: 10px;
right: 10px;
direction: rtl
}
.thumb-link {
position: absolute;
top: 0;
left: 0;
bottom: 0;
width: 100%;
height: 100%;
z-index: 1;
}
.thumb-dummy {
padding-top: 60%;
}
.thumb-element {
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
text-align: center;
border: 1px solid white;
padding-top: 19px;
background: no-repeat 50% 50%;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
}
.thumb-content {
width: 100%;
}
.thumb-next {
position: absolute;
top: 50%;
}
.thumb-prev {
position: absolute;
top: 50%;
}
h2 {
font-size: 10pt;
}
<div id="thumb-wrap">
<div class="thumb-content">
<div id="thumb-first-container" class="relative">
<div class="thumb-dummy">
</div>
<div title="6 Animals that Went Viral Around the World" class="thumb-element" style="background-image: url('http://i.imgur.com/9GnXdDFl.jpg')">
<div class="thumb-title">
<div class="thumb-category">
<a href="http://animal-site.com/?cat=102363">News</a>
</div>
<a class="thumb-link" title="6 Animals that Went Viral Around the World" href="http://animal-site.com/?p=106588" rel="bookmark">
<h2>6 Animals that Went Viral Around the World </h2>
</a>
<div class="post-meta-info">
<span class="post-meta"><i class="fa fa-clock-o"></i>
<a rel="bookmark">2 weeks ago</a></span> <span class="post-meta">
<i class="fa fa-comments"></i>
<a href="http://animal-site.com/?p=106588#respond">0</a></span>
</div>
<p></p>
<div class="thumb-summary">
</div>
</div>
</div>
</div>
</div>
</div>
为什么不把有背景的Div改成span然后用anchor包起来呢。拥有主要包装器,因此 post meta(categories link,comments link) 将是绝对的,然后只需增加 z-index 即可使其位于顶部。
你可以试试这个。我已经更改了代码,因为不需要标签。
#featured-image{
position: relative;
width: 50%;
float: right;
margin: 10px;
}
*{
margin: 0;
padding: 0;
}
#featured-image figure a{
display: block;
}
#featured-image figure span{
display: block;
height: 390px;
background: no-repeat 50% 50%;
-webkit-background-size: cover;
-moz-background-size: cover;
-o-background-size: cover;
background-size: cover;
background-image: url('http://i.imgur.com/9GnXdDFl.jpg');
}
#featured-image figure span:before {
content: "";
position: absolute;
width: 100%;
height: 100%;
right: 0;
bottom: 0;
left: 0;
background: -moz-linear-gradient(top, rgba(27,26,25,0) 0%, rgba(27,26,25,0) 46%, rgba(27,26,25,0.44) 65%, rgba(27,26,25,1) 99%, rgba(27,26,25,1) 100%);
background: -o-linear-gradient(top, rgba(27,26,25,0) 0%, rgba(27,26,25,0) 46%, rgba(27,26,25,0.44) 65%, rgba(27,26,25,1) 99%, rgba(27,26,25,1) 100%);
background: -ms-linear-gradient(top, rgba(27,26,25,0) 0%, rgba(27,26,25,0) 46%, rgba(27,26,25,0.44) 65%, rgba(27,26,25,1) 99%, rgba(27,26,25,1) 100%);
background: -webkit-linear-gradient(top, rgba(27,26,25,0) 0%,rgba(27,26,25,0) 46%,rgba(27,26,25,0.44) 65%,rgba(27,26,25,1) 99%,rgba(27,26,25,1) 100%);
background: linear-gradient(to bottom, rgba(27,26,25,0) 0%,rgba(27,26,25,0) 46%,rgba(27,26,25,0.44) 65%,rgba(27,26,25,1) 99%,rgba(27,26,25,1) 100%);
filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#001b1a19', endColorstr='#1b1a19',GradientType=0 );
}
#featured-image .info-wrap{
position: absolute;
bottom: 0;
right: 0;
width: 20%;
z-index: 1000;
}
.info-wrap {
text-align: right;
padding: 10px;
}
.info-wrap h2{
font-size: 12pt;
padding-bottom: 15px;
}
.info-wrap a{
color: #fff;
text-decoration: none;
}
.info-wrap .post-cat{
background: green;
border-radius: 30px;
padding: 1px 15px;
text-align: center;
display: inline-block;
margin-bottom: 10px;
}
.post-meta p a{
display: inline-block;
margin: 0 3px;
}
.post-meta p a:hover,
.info-wrap h2 a:hover{
color: green;
}
<div id="featured-image">
<figure>
<a href="#imagelinkhere"><span title="6 Animals that Went Viral Around the World"></span></a>
</figure>
<div class="info-wrap">
<h2 class="entry-title">
<a href="#titlelinkhere">6 Animals that Went Viral Around the World</a>
</h2>
<div class="post-meta">
<div class="post-cat"><a href="#cat-link">News</a></div>
<p><a href="#comments-link">Comments</a><a href="#respond-link">Respond</a></p>
</div><!--// end .post-meta -->
</div><!--// end .info-wrap -->
</div><!--// end #featured-image -->
只需在 "thumb-title" 之前添加新的 "a" 并使其成为绝对的。 这是更新版本 jsfiddle
已添加 HTML:
<a href="http://google.com" class='imageLink'>Click Image</a>
并在 CSS
.imageLink{
position: absolute;
top:0;
right: 0;
bottom: 0;
left: 0;
}