<div class="cp_page">
<!-- 表示しておくページのコンテンツ -->
<a href="#cp_popup_block" class="cp_popup_op">OPEN</a>
</div>
<div id="cp_popup_block" class="cp_popup">
<div class="cp_popupitem">
<!-- POPUPで表示するコンテンツ -->
<h1>h1テキスト</h1>
<h2>h2テキスト</h2>
<p>テキスト</p>
<!-- /POPUPで表示するコンテンツ -->
<a href="" class="cp_popup_cl"></a>
</div>
</div>
/*POPUPするウィンドウ*/
.cp_popup {
position: fixed;
top: 0;
right: 0;
width: 100%;
height: 100vh;
display: none;/*最初は非表示に設定*/
}
#cp_popup_block:target {
display: flex;/*OPENをクリックしたらflexとして表示*/
}
.cp_popup:before {/*上下に開くアニメーション*/
position: fixed;
content: '';
left: 0;
top: 50%;
background: #ffffff;
width: 100%;
animation: open-animation 0.6s cubic-bezier(0.83, 0.04, 0, 1.16) 0.65s both;
}
.cp_popup:after {/*横にラインが出るアニメーション*/
position: absolute;
content: '';
top: 50%;
left: 0;
width: 0;
height: 2px;
background-color: #ffffff;
animation: line-animation 0.6s cubic-bezier(0.83, 0.04, 0, 1.16) both;
}
.cp_popupitem {/*フェードで現れるアイテム*/
position: relative;
padding: 5% 15%;
animation: fade 0.5s ease-out 1.3s both;
}
.cp_popup_cl {/*クローズボタン背景*/
position: fixed;
top: 1em;
right: 1em;
width: 30px;
height: 30px;
background: #1b2538;
clip-path: circle(50% at 50% 50%);
}
.cp_popup_cl::before {/*クローズボタンの「×」*/
position: absolute;
content: '';
background: #ffffff;
width: 10px;
height: 10px;
margin: 10px;
clip-path: polygon(20% 0%, 0% 20%, 30% 50%, 0% 80%, 20% 100%, 50% 70%, 80% 100%, 100% 80%, 70% 50%, 100% 20%, 80% 0%, 50% 30%);
}
/*ベースの設定*/
.cp_page {
background-color: #1b2538;
display: flex;
min-height: 100vh;/*ページ全体を覆う*/
/*ページのコンテンツを真ん中に設置*/
align-items: center;
justify-content: center;
}
.cp_page a {
text-decoration: none;
}
.cp_popup_op {/*オープンボタン*/
color: #ffffff;
padding: 15px 30px;
border: 1px solid #ffffff;
}
/*アニメーションの設定*/
@keyframes line-animation {
/*横にラインが出るアニメーション*/
0% { width: 0; opacity: 1;}
99% { width: 100%; opacity: 1;}
100% { width: 100%; opacity: 0;}
}
@keyframes open-animation {
/*上下に割れるアニメーション*/
0% { height: 0; top: 50%;}
100% { height: 100vh; top: 0;}
}
@keyframes fade {
/*POPUPするアイテムのフェードイン*/
0% { opacity: 0;}
100% { opacity: 1;}
}