Edit in JSFiddle

<p><a href="http://web-wost.ru" target="_blank" class="effect1">WebWost</a></p>
<p><a href="http://web-wost.ru" target="_blank" class="effect2">WebWost</a></p>
<p><a href="http://web-wost.ru" target="_blank" class="effect3">WebWost</a></p>
<p><a href="http://web-wost.ru" target="_blank" class="effect4">WebWost</a></p>
a {
  color:#000;
  text-decoration:none;
  position:relative;
  margin: 10px;
  top:10px;
}
a.effect1:after {
  content: ' ';
  height:1px;
  width:0;
  left:0;
  background:#000;
  position:absolute;
  bottom:-1px;
  transition:width 0.2s ;
}
a.effect1:hover:after {
  width:100%;
}
a.effect2:after {
  content: ' ';
  height:1px;
  width:100%;
  left:0;
  background:#000;
  position:absolute;
  bottom:-1px;
  transition: transform 0.2s;
  transform:scaleX(0);
}
a.effect2:hover:after {
  transform:scaleX(1);
}
a.effect3:after {
  content: ' ';
  height:1px;
  width:0;
  left:0;
  background:#000;
  position:absolute;
  bottom:-1px;
  transition:width 0.2s ;
}
a.effect3:before {
  content: ' ';
  height:1px;
  width:0;
  right:0;
  background:#000;
  position:absolute;
  bottom:-1px;
  transition:width 0.2s ;
}
a.effect3:hover:after,a.effect3:hover:before {
  width:100%;
}
a.effect4 {
  padding:10px;
}
a.effect4:after,a.effect4:before{
position:absolute;
content: ' ';
border-style:solid;
border-color:#000;
width:100%;
height:100%;
left:0;
top:0;
transition:transform 0.2s ease;
box-sizing:border-box;
}
a.effect4:after {
border-width: 1px 0;
transform:scaleX(0);
}
a.effect4:before{
border-width: 0 1px;
transform:scaleY(0);
}
a.effect4:hover:after,a.effect4:hover:before{
transform:scale(1,1);
}