<article>
  <section id="part-one">
    <h1>CodePen Challenge</h1>
    <p>Hover over the title above. You’ll see a link appear. We want you to style that link! The markup for each title and link, just so you know, looks like this: 
    <pre>
    &lt;h1&gt;
      &lt;span&gt;Codepen Challenge&lt;/span&gt;
      &lt;a href="#part-one"&gt;#part-one&lt;/a&gt;
    &lt;/h1&gt;</pre></p>
  <p>Make sure you retain the <a href="https://codepen.io/tag/tutplus/">tutsplus</a> tag on your pen so we can identify it–good luck!</p>
  </section>
  <section id="part-two">
    <h1>Here’s another part of the article</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Libero consequuntur, voluptatem ducimus eligendi corporis, expedita quidem suscipit beatae harum ab illum autem consectetur aliquid ullam rerum et debitis alias ipsam.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Totam vero porro recusandae, minus possimus dolorum placeat quas nihil quod cumque ipsa ratione magni? Error autem repudiandae incidunt ducimus inventore velit?</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quisquam facere suscipit cumque, totam, nisi unde nobis, libero ipsum non ad nostrum eligendi! Saepe quidem beatae, cupiditate rem explicabo repellat. Nulla!</p>
  </section>
  <section id="part-three">
    <h1>Here’s yet one more</h1>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Quo perferendis dicta voluptas adipisci ratione saepe facere hic deleniti illo ipsa iste cum, incidunt iure eum nobis aliquam, id quod porro.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Recusandae blanditiis, expedita deserunt ipsam. Esse nostrum placeat culpa impedit harum, architecto at, inventore quidem aliquam natus nisi libero deleniti nesciunt expedita.</p>
    <p>Lorem ipsum dolor sit amet, consectetur adipisicing elit. Ipsa nulla alias tempore ipsam odio ullam asperiores, eveniet repellat. Impedit laudantium in tempore veniam sed ratione ipsam sint tenetur nisi, officiis.</p>
  </section>
</article>
/* these are some base styles which you can ignore */
body{font:100%/1.5 sans-serif;color: #444;}article{width:90%;margin:0 auto;}pre{background: #f2f2f2;padding:1em 0;}

/* this is where we start styling.. make any changes you like! */

h1 {
  a {
    position: relative;
    display: inline-block;
    padding: 0 10px;
    margin-left: 10px;
    color: #999;
    font-size: 1rem;
    font-weight: 100;
    opacity: 0;
    text-decoration: none;
    transition: opacity 0.3s;
    vertical-align: middle;
    
    &:after {
      content: '';
      position: absolute;
      top: 50%;
      left: 0;
      z-index: 2;
      display: block;
      width: 0;
      height: 0;
      padding: 0.25em 0;
      border-right: 1px solid #999;
      transform: translate(0,-50%);
      transition: height 0.3s, width 0.3s, background-color 0.3s;
    }
    
    &:before {
      content: '';
      position: absolute;
      left: 0;
      top: 50%;
      width: 100%;
      height: 0;
      border-top: 1em solid white;
      border-bottom: 1em solid white;
      transform: translate(0, -50%);
      transition: height 0.3s;
    }
    
    &:hover:after,
    &:focus:after{
      width: 100%;
      background-color: rgba(0,0,0,0.05);
    }
  }
  
  &:hover a,
  a:focus {
    opacity: 1;
    outline: none;

    &:after {
      height: 100%;
    }
    
    &:before {
      height: 100%;
    }
  }
}
View Compiled
$('article section').each(function(i,el){
  var id = $(this).attr('id');
  var h1 = $(this).find('h1').first();
  var t = h1.text();
  h1.html("<span>" + t + "</span>");
  h1.append("<a href='#"+id+"'>#"+id+"</a>");
});

External CSS

This Pen doesn't use any external CSS resources.

External JavaScript

  1. https://cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.min.js