cssだけで、画像拡大モーダル表示
ネットショップ語りさんの CSSのみでモーダルウィンドウを作成からのコピペです。
- <a href="#modal-01">
この数字を変えれば、同じページでも複数表示が可能です。
ちょこちょこ数字を変えて、画像に拡大アイコンを重ねて、開いたときの余白を消して、閉じるアイコンをつけました。 スマホ用のサイズです。
でも、謎の線がでてしまいました...。
無理に消すと、モーダルウィンドウが消えて、画像が重なっただけになってしまいます…。
まぁ、いっか。
拡大アイコンを重ねたのは、こちらを参考にしました。
今度、重ねたいと思ったときは、こちらも勉強したいと思います。
今回の備忘録
◎HTML
- <div class="box">
- <div class="gazou"><img src="画像url"></div>
- <div class="icon"><a href="#modal-name"><img style="vertical-align: top;" src="拡大アイコンurl"></a></div>
- <div id="modal-name" class="modal-wrapper"><a href="#!" class="modal-overlay">?</a>
- <div class="modal-window">
- <div class="modal-content">
- <img src="画像url" width="100%">
- </div>
- <a href="#!" class="modal-close"><img src="閉じるアイコンurl"></a></div>
- </div></div>
◎css
- .box {
- max-width: 40%;
- height: auto;
- margin: 0 auto;
- padding: 0;
- position:relative;
- }
- .gazou img {
- max-width: 100%;
- height: auto;
- }
- .icon img {
- position: absolute;
- top: 0;
- right: 0;
- }
- /*-----ここから、ネットショップ語りさんからのコピペ。数カ所、変更してます。-----*/
- .modal-wrapper {
- z-index: 999;
- position: fixed;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- padding: 20px 10px;
- text-align: center
- }
- .modal-wrapper:not(:target) {
- opacity: 0;
- visibility: hidden;
- transition: opacity .3s, visibility .3s;
- }
- .modal-wrapper:target {
- opacity: 1;
- visibility: visible;
- transition: opacity .4s, visibility .4s;
- }
- .modal-wrapper::after {
- display: inline-block;
- height: 100%;
- margin-left: -.05em;
- vertical-align: middle;
- content: ""
- }
- .modal-wrapper .modal-window {
- box-sizing: border-box;
- display: inline-block;
- z-index: 20;
- position: relative;
- width: 85%;
- max-width: 400px;
- padding: 0;
- vertical-align: middle
- }
- .modal-wrapper .modal-window .modal-content {
- max-height: 80vh;
- overflow-y: auto;
- }
- .modal-overlay {
- z-index: 10;
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- background: rgba(0, 0, 0, .8)
- }
- .modal-wrapper .modal-close {
- z-index: 20;
- position: absolute;
- top: 2px;
- right: 2px;
- }
- .modal-wrapper .modal-close:hover {
- color: #2b2e38 !important
- }