链接图像悬停 - 需要帮助定位图像

时间:2012-09-02 22:25:38

标签: css css3

问题: 我有一个响应式设计和一组2列链接。每组链接都是一个列表。它们是对齐的中心。当你悬停时,会出现一个应该出现在文本旁边的箭头,但是我无法顺畅地定位它。最好的我想出了将箭头放在悬停上的绝对位置,这样它就可以与我的所有列表项“一起工作”。它看起来像垃圾。我希望它位于每个列表中每个h3的左侧。我只是没有想出一个聪明的方法。

<div class="contentLeft">
        <ul class="ca-menu">
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>  
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>
                </a>
            </li>
        </ul>
    </div>
    <div class="contentRight">
        <ul class="ca-menu">
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>  
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>
                </a>
            </li>
            <li>
                <a href="#">
                    <div class="ca-content">
                        <h3 class="ca-main"><img src="<?php bloginfo('template_url') ?>/images/arrow-hover.jpg" class="arrow" width="61" height="29" alt="Arrow Hover">This is the link</h3>
                        <p class="ca-sub">This is the subheading</p>
                    </div>
                </a>
            </li>
        </ul>
        </div>

这是我的CSS:

    .arrow {
  display: none;
  width: 61px;
     }
.ca-menu li:hover .arrow {
  display: inline;
  width: 61px;
  position: absolute;
  top: 10px;

}
.ca-menu {
  margin-left: 0;
  padding-left: 0;
  z-index: 1;
}
.ca-menu li {
  height: 100px;
  overflow: hidden;
  position: relative;
  display: block;
  margin-bottom: 4px;
  -webkit-transition: all 300ms linear;
  -moz-transition: all 300ms linear;
  -o-transition: all 300ms linear;
  -ms-transition: all 300ms linear;
  transition: all 300ms linear;
}
.ca-menu li:last-child {
  margin-bottom: 0px;
}
.ca-menu li a {
  text-align: center;
  width: 100%;
  height: 100%;
  display: block;
  color: #333;
  position: relative;
  text-decoration: none;
}
.ca-content {
  height: 60px;
}
.ca-main {
  font-size: 26px;
  color: #666;
  margin-bottom: 10px;
  text-decoration: none;
  line-height: 29px;
  -webkit-transition: all 300ms linear;
  -moz-transition: all 300ms linear;
  -o-transition: all 300ms linear;
  -ms-transition: all 300ms linear;
  transition: all 300ms linear;
}
.ca-sub {
  color: #999 !important;
  -webkit-transition: all 300ms linear;
  -moz-transition: all 300ms linear;
  -o-transition: all 300ms linear;
  -ms-transition: all 300ms linear;
  transition: all 300ms linear;
}
.ca-menu li:hover .ca-icon {
  color: #e3721e;
  opacity: 0.8;
  text-shadow: 0px 0px 13px #fff;
}
.ca-menu li:hover .ca-main {
  opacity: 1;
  color: #e3721e;
  -webkit-animation: moveFromTop 300ms ease-in-out;
  -moz-animation: moveFromTop 300ms ease-in-out;
  -ms-animation: moveFromTop 300ms ease-in-out;
}
.ca-menu li:hover .ca-sub {
  opacity: 1;
  -webkit-animation: moveFromBottom 300ms ease-in-out;
  -moz-animation: moveFromBottom 300ms ease-in-out;
  -ms-animation: moveFromBottom 300ms ease-in-out;
  color: #333 !important;
}

感谢任何帮助。谢谢!

2 个答案:

答案 0 :(得分:0)

开始了一个jsfiddle开始这方面的工作,因为它肯定值得关注。现在我不确定我是否得到了你想要的东西,但我很肯定这需要更多的工作。我得到了起始格式和箭头外观,但要激活它们,你需要将链接悬停在链接中的“the”上,然后将鼠标向上滑动一点。我将继续研究这个问题,以便你可以实际使用我提供的内容,但如果还有其他任何你想要的不同,请告诉我。

这是小提琴:jsfiddle linked here :)

答案 1 :(得分:0)

快速解决此问题的方法是-ve margin。 Here 是一个有效的现场演示。但你必须考虑一些事情。如果为图像指定高度和宽度,如果没有更改,并且已经在CSS中设置了它,则无需将其与<img>一起放置。只需在CSS中定义图像宽度和高度。