モーダルウィンドウは、JavaScriptで作るのが一般的です。
ちょっとしたモーダルウィンドウを作りたかったので、CSSのみで作ってみました。
IE11にも対応しています。
HTML
サンプルコードは下記の通り。
<input id="popup_btn" type="checkbox" />
<div class="popup">
	<label class="close_popup" for="popup_btn"></label>
	<div class="popup_wrap">
		<label class="close_btn" for="popup_btn">✖</label>
		<p>サンプル文章</p>
	</div>
</div>
<label class="open_btn" for="popup_btn">オープン</label>
CSS
 #popup_btn,.popup{
 	display: none;
 	opacity: 0
 }
 #popup_btn:checked ~ .popup {
 	display: block;
 	opacity: 1;
 	width: 100vw;
 	height: 100vh;
 	position: absolute;
 	top: 0;
 	left: 0;
 	z-index: 9999;
 }
 .close_popup{
 	position: fixed;
 	display: block;
 	left: 0;
 	top: 0;
 	width: 100vw;
 	height: 100vh;
 	background: rgba(0,0,0,.8);
 	z-index: 10000;
 	cursor: pointer;
 }
 .popup_wrap {
 	position: fixed;
 	left: 50%;
 	top: 50%;
 	transform: translate(-50%,-50%);
 	width: 80%;
 	height: 90%;
 	height: fit-content;
 	max-width: 540px;
 	padding: 24px 24px;
 	background: #fff;
 	border-radius: 10px;
 	z-index: 10001;
 	overflow-y: scroll;
 	overflow-x: hidden;
 	-ms-overflow-style:none;
 }
 .popup_wrap p{
 	margin-bottom: 24px;
 }
 .popup_wrap p:last-child{
 	margin-bottom: 0;
 }
 .popup_wrap::-webkit-scrollbar{
 	display:none;
 }
 .close_btn {
 	position: absolute;
 	right: 6px;
 	top: -4px;
 	cursor: pointer;
 	font-size: 20px;
 	color: #333;
 	margin: 0;
 }
 .open_btn{
 	margin: 0 auto;
 	padding: 8px 16px;
 	background: #07a;
 	display: table;
 	color: #fff;
 }
 .open_btn:hover{
 	background: #00b3ff;
 }
解説
inputタグとlabelタグを使った方法です。
inputタグにチェックが入る事で、モーダルを表示させます。
背景を隠す黒い部分はlabelタグを使い、黒い部分、もしくは✖を選択することで、モーダルを解除します。
デモ1
上記コードを使ったデモです。
サンプル文章
デモ2
上記コードに閉じるボタンを追加した使ったデモです。
サンプル文章
WordPressで使う場合は
ちなみにWordPressにこのサンプルコードを入れると、inputタグの前後にPタグが自動で入ってしまいます。
上記サンプルコードを使う際はinputタグの前後にdivタグで囲む必要があります。
このページのデモもdivタグを追加する事で対応しています。
それ以外の方法としては、
remove_filter( 'the_content', 'wpautop' );上記コードをテーマのfunctions.phpに記載する必要があります。
これでpタグが自動で入る事を止められます。
ただこれでは全てのページでpタグ抜けてしまいます。
ページを限定的にする場合は下記の通りです。
add_action( 'wp_enqueue_scripts', function(){
if(is_page('inquiry')){
	remove_filter( 'the_content', 'wpautop' );
}
});
スラッグがinquiryの場合は上記の様な感じになります。
投稿のIDでもOKです。
さらにスタイルシートを限定的に読み込む場合は下記の様なコードになります。
add_action( 'wp_enqueue_scripts', function(){
if(is_page('inquiry')){
	remove_filter( 'the_content', 'wpautop' );
	wp_register_style( 'zipang_inquiry_style', false );
	wp_enqueue_style( 'zipang_inquiry_style' );
	$css = file_get_contents( get_stylesheet_directory_uri() . '/inquiry.min.css', true );
	wp_add_inline_style( 'zipang_inquiry_style', $css );
}
});
子テーマのディレクトリに
inquiry.min.css
の名前で上記スタイルシートをアップしています。
そしてインラインでスタイルシートを読み込むことで、時差無しで即時表示を実現しています。
