CSSのみで作るモーダルウィンドウです。4種類の開き方エフェクトがあります。動作は各モーダルの[Modalを開く]ボタンをクリックします。モーダルウィンドウが各エフェクトで開き、画面はオーバーレイされます。閉じるのモーダルウィンドウの右上の[X]ボタンをクリックします。

中心から開くModal

上から開くModal

下から開くModal

回転しながら開くModal

 

htmlソース(一例)

<div class="card">
  <div class="content">
    <h1>中心から開くModal</h1>
      <label class="modal-open modal-label" for="modal-open">
        <p>Modalを開く</p>
      </label>
      <input type="radio" name="modal" value="open" id="modal-open" class="modal-radio" />
        <div class="modal">
          <label class="modal-label overlay">
            <input type="radio" name="modal" value="close" class="modal-radio"/>
          </label>
        <div class="content">
          <div class="top">
            <h2>Heading </h2>
            <label class="modal-label close-btn">
              <input type="radio" name="modal" value="close" class="modal-radio"/>
            </label>
          </div>
          <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.</p>
      </div>
    </div>
  </div>
</div>

 

cssソース(主要動作部分)

.modal {
    position: fixed;
    height: 100%;
    width: 100%;
    top: 0;
    left: 0;
    overflow: hidden;
    opacity: 0;
    transform: scale(0);
    transition: opacity .25s, transform .25s;
    z-index:99;
    }
.overlay {
    position: absolute;
    width: 100%;
    height: 100%;
    background: rgba(0, 0, 0, 0.5);
    top: 0;
    left: 0;
    }
.modal .content {
    position: absolute;
    width: 70%;
    height: 300px;
    max-height: 70%;
    top: 10%;
    left: 15%;
    background: #fff;
    border-radius: 15px;
    box-shadow: 0 3px 15px -2px #222;
    padding: 20px;
    }
 .close-btn {
    position: absolute;
    width: 30px;
    height: 30px;
    top: 10px;
    right: 20px;
    border-radius: 50%;
    border: 2px solid #f44336;
    cursor: pointer;
    }
.close-btn:after,
.close-btn:before {
    content: "";
    position: absolute;
    width: 70%;
    height: 2px;
    background: #f44336;
    left: 15%;
    top: 50%;
    top: calc(50% - 1px);
    transform-origin: 50% 50%;
    transform: rotate(45deg);
    }
 .close-btn:before {
    transform: rotate(-45deg);
    }
 .action-btn{
    display:inline-block;
    padding: 10px 20px;
    background:#4caf50;
    color:#fff;
    border-radius:15px;
    }

 

※引用と参考にさせていただいたページ:https://codepen.io/akzhy/pen/rRZEmW

 

 

 

 

inserted by FC2 system