ここにマウスカーソルが来ると、
境界線をアニメーション表示します。
境界線をアニメーション表示します。
HTML、CSSソース
<div class="frame_line"> ここにマウスカーソルが来ると、<br> 境界線をアニメーション表示します。 </div> <style> /* css変数 疑似クラス:root で宣言するとグローバル変数になる */ :root{ --base-sec:0.1s;} .frame_line{ position:relative; padding:10px; display:inline-block; } .frame_line::before, .frame_line::after{ position:absolute; content:" "; margin:0; box-sizing:border-box; width:0; height:0; } .frame_line::before{ left:0; right:auto; top:0; bottom:auto; border-left:0px solid #777; border-right:0; border-top:0; border-bottom:0px solid #777; transition: width calc(var(--base-sec)*1) linear calc(var(--base-sec)*2), border-bottom calc(var(--base-sec)*3), height calc(var(--base-sec)*1) linear calc(var(--base-sec)*3), border-left calc(var(--base-sec)*4); } .frame_line::after{ left:auto; right:0; top:auto; bottom:0; border-left:0; border-right:0px solid #777; border-top:0px solid #777; border-bottom:0; transition: width calc(var(--base-sec)*1) linear calc(var(--base-sec)*0), border-top calc(var(--base-sec)*1), height calc(var(--base-sec)*1) linear calc(var(--base-sec)*1), border-right calc(var(--base-sec)*2); } .frame_line:hover::before{ border-left:1px solid #777; border-bottom:1px solid #777; height:100%; width:100%; transition: height calc(var(--base-sec)*1) linear calc(var(--base-sec)*0), border-left calc(var(--base-sec)*0), width calc(var(--base-sec)*1) linear calc(var(--base-sec)*1), border-bottom calc(var(--base-sec)*1); } .frame_line:hover::after{ border-right:1px solid #777; border-top:1px solid #777; height:100%; width:100%; transition: height calc(var(--base-sec)*1) linear calc(var(--base-sec)*2), border-right calc(var(--base-sec)*2), width calc(var(--base-sec)*1) linear calc(var(--base-sec)*3), border-top calc(var(--base-sec)*3); } /* transition プロパティは、 transition-property transition-duration transition-timing-function(ease,linear,ease-in-out等) transition-delay の一括指定プロパティです。 */ </style>