HOME > cssAnimation > cssでborderが四角から伸びて枠線になる動きの作り方【コピペで1分】
cssでborderが四角から伸びて枠線になる動きの作り方【コピペで1分】
cssでborderが四角から伸びて枠線になる動きの作り方解説
cssでborderが四角から伸びて枠線になる動きとしては、擬似要素「::before」「::after」を使用して実装できます。
- 1.親要素にposition: relative;を指定し擬似要素の基点とします。
- 2.横と縦の動きを実装する為にspanに縦の動き用のクラスを付与します。
- 3.次に擬似要素にposition: absolute;を指定し絶対位置(今回は縦横、四つの角をそれぞれ個別に指定します。)
- 4.:hoverされた時にX軸(横軸)とY軸(縦軸)の0が指定されている部分が100%+1pxになるように指定する。
- 5.正しく動作していれば完成です。
HTML記述
HTMLをbody内の表示位置に記載します。
<a href="#" class="moveline">
<span class="moveline-vertical">SAMPLE</span>
</a>
css記述
cssを<style>~</style>または自作cssの中に記述します。
/* .movelineを基点にします */
.moveline {
display: inline-block;
position: relative;
}
.moveline::after,
.moveline::before,
.moveline-vertical::after,
.moveline-vertical::before {
content: '';
position: absolute;
z-index: 10; /* レイヤーの重ね順 */
background-color: #01a99d; /* 線色 */
transition: all .3s ease; /* アニメーション時間 */
}
/* .moveline::after は横幅0px、高さ1pxで、左上の位置に配置されます */
.moveline::after {
width: 0px;
height: 1px;
top: -1px;
left: -1px;
}
/* .moveline-vertical::after は横幅1px、高さ0pxで、左下に配置されます */
.moveline-vertical::after {
width: 1px;
height: 0px;
left: -1px;
bottom: -1px;
}
/* .moveline::before の要素は横幅0px、高さ1pxで、右下の位置に配置されます */
.moveline::before {
width: 0px;
height: 1px;
right: -1px;
bottom: -1px;
}
/* .moveline-vertical::before の要素は横幅1px、高さ0pxで、右上の位置に配置されます */
.moveline-vertical::before {
width: 1px;
height: 0px;
top: -1px;
right: -1px;
}
/* .movelineクラスの要素がホバーされた時に横幅が100% + 1pxになります */
.moveline:hover::after,
.moveline:hover::before {
width: calc(100% + 1px);
}
/* .movelineクラスの要素がホバーされた時に高さが100% + 1pxになります */
.moveline:hover .moveline-vertical::after,
.moveline:hover .moveline-vertical::before {
height: calc(100% + 1px);
}
関連アニメーション