开发者

Jquery gradient behavior applies to all but first URL

I've got a page that shows my photography portfolio. I'm trying to do a jquery gradient on the text, and it's working on all but the first link. Here's the html:

<h1><a href="portfolio/engagements"><s开发者_高级运维pan></span>engagements</a>  | </h1><br>
<h1><a href="portfolio/weddings"><span></span>weddings</a>  |  </h1>    <br>
<h1><a href="portfolio/bridals"><span></span>bridals</a>  |  </h1>  <br>
<h1><a href="portfolio/families"><span></span>families</a>  |  </h1>    <br>
<h1><a href="portfolio/seniors"><span></span>seniors</a>  </h1>     <br>

And here's the jquery call:

$(".jquery h1").prepend("<span></span>");

And here's the css for it:

.gradient4 span {
    background: url(images/gradient-dark.png) repeat-x;
    position: absolute;
    bottom: -0.1em;
    display: inline;
    width: 100%;
    height: 29px;
}

The problem I'm having is that all urls but the first link (currently 'engagements'), have the gradient effect. Any ideas why the first link isn't working?


This is more of a design question as it turns out, but to give you an idea of what is happening, the <span> element that provides the gradient overlay is shifted way off to the left.

Here's a screen shot of the issue.

Look at the blue highlighted box all the way on the left. That's your overlay. It is positioned incorrectly somehow.

alt text http://dalewhalen.com/stackoverflow/grad_overlay.png


I think that the problem is that when you prepend the <span> and set with position:absolute, the first element is going to inherit its top- and left-values from its parent and, in this case, appear at the top-left position. Instead of using the <span>s, why not manipulate the <h1> using addClass and removeClass. Its hover state would get rendered as <h1 class="gradient"> and its normal state it's just plain <h1>.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜