Step by Step Membuat Modal Box Pure CSS tanpa JavaScript

Pada postingan kali ini kita akan Belajar Step by Step Membuat Modal Box Pure CSS tanpa JavaScript. Untuk modal latihan saya mempunyai layout web seperti pada tombol Tampilan Awal. Silahkan lihat Source yang akan kita modifikasi di Tryit Editor. Saya sertakan juga Hasil Akhir yang akan kita pelajari.

Menambahkan Background sekaligus Modal

Silahkan tambahkan CSS ini pada CSS yang sudah ada

/* Modal */
.modal {
  opacity: 1;
  visibility: visible;
  position: fixed;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  text-align: left;
  background: rgba(0,0,0, .4);
  -webkit-backdrop-filter: saturate(180%) blur(10px);
  backdrop-filter: saturate(180%) blur(5px);
  transition: opacity .25s ease;
}

Tambahkan juga Kode HTML ini (untuk penempatan silahkan lihat Source)

<div class="modal">
</div>

Menambahkan Modal Body

Tambahkan lagi CSS ini, untuk body Modal dan tanda X

.modalInner {
  transition: top .25s ease;
  position: absolute;
  top: -20%;
  right: 0;
  bottom: 0;
  left: 0;
  width: 50%;
  margin: auto;
  overflow: auto;
  background: #fff;
  border-radius: 5px;
  padding: 1em 2em;
  height: 40%;
}

.modalClose {
  position: absolute;
  right: 1em;
  top: 1em;
  width: 1.1em;
  height: 1.1em;
  cursor: pointer;
}

.modalClose:after,
.modalClose:before {
  content: '';
  position: absolute;
  width: 2px;
  height: 1.5em;
  background: #ccc;
  display: block;
  transform: rotate(45deg);
  left: 50%;
  margin: -3px 0 0 -1px;
  top: 0;
}

.modalClose:hover:after,
.modalClose:hover:before {
  background: #aaa;
}

.modalClose:before {
  transform: rotate(-45deg);
}

Saya tambahkan juga Media Queries, untuk Halaman Responsive. Silahkan sesuaikan dengan kebutuhan

/* Reponsive */
@media screen and (max-width: 768px) {	
  .modalInner {
    width: 80%;
    height: 80%;
    box-sizing: border-box;
  }
}

@media screen and (max-width: 480px) {
  .modalClose{
    top: 0.8em;
    right: 0.5em;
  }	
  .modalClose:after,
  .modalClose:before {
    height: 1em;
  }
}
@media screen and (max-width: 320px) {	
  .modalInner {
    width: 85%;
    height: 90%;
    box-sizing: border-box;
  }
}

Sekarang tambahkan kode HTML pada kode yang telah kita buat sebelumnya

<div class="modal">
<div class="modalInner">
    <label class="modalClose"></label>
    <h2>judul_modal</h2>
    <p>isi_modal_disini</p>
  </div>
</div>

Sembunyikan Modal

Pada .modal ubah, opacity dan visibilty

.modal {
  opacity: 0;
  visibility: hidden;
  ......

Munculkan Modal saat Klik Button

Buat dulu CSS untuk input Label

.modalState {
  display: none;
}

.modalState:checked + .modal {
  opacity: 1;
  visibility: visible;
}

.modalState:checked + .modal .modalInner {
  top: 0;
}

Simpan Kode ini diatas <div class="modal">

<input class="modalState" id="modal-1" type="checkbox" />

Perhatikan Kode HTML pada Button Selamat Idul Fitri, asalnya seperti ini

<label class="btn">Selamat Idul Fitri</label>

Tambahkan for="modal-1" menjadi

<label class="btn" for="modal-1">Selamat Idul Fitri</label>

Sampai sini, Button sudah bisa di Klik dan Modal sudah bisa muncul. Namun belum bisa di Close

Menutup Modal dengan tanda X

perhatikan kode ini

<label class="modalClose"></label>

Tambahkan for="modal-1" menjadi

<label class="modalClose" for="modal-1"></label>

Sampai sini, Modal sudah bisa di Close dengan klik X. Namun ketika klik background belum bisa menutup

Menutup Modal dengan klik Background

Kita buat dulu CSS untuk input Label Background

.modalBg {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  cursor: pointer;
}

Tambahkan kode ini di atas <div class="modalInner">

<label class="modalBg" for="modal-1"></label>

Sampai saat ini, kita sudah belajar membuat Modal Box Pure CSS tanpa JavaScritp. Silahkan dipelajari baik-baik untuk lebih memahaminya. Kita bisa menambahkan beberapa modal, contoh kita akan menambahkan Modal-2

Membuat Modal ke-2

Untuk menambah modal ke-2, ke-3 dst, copy kode yang sudah ada. Ganti for="modal-1" menjadi for="modal-2" dst. Jangan lupa edit judul dan isinya.

Apabila ada masukan atau pertanyaan silahkan di kolom komentar.

Berita Lebih Baru Berita Lebih Lama
  • 72Lite.com
    Profil: https://www.blogger.com/profile/04557021583299941165
    20 April, 2023

    Kang request. Cara membuat dan memasang lazyload img dengan animasi loading atau animasi slash.

    Ditunggu kang.

    • Kang Ismet
      Profil:https://www.blogger.com/profile/07706142952405337288
      20 April, 2023

      banyak alternative sih coba search di codepen

    • 72Lite.com
      Profil:https://www.blogger.com/profile/04557021583299941165
      20 April, 2023

      Kasih tutorial lagi aja kang. Biar sekalian belajar dan paham nantinya.

    • 72Lite.com
      Profil:https://www.blogger.com/profile/04557021583299941165
      20 April, 2023

      Atau kalo gak, saya minta script untuk menambah -rw dibelakang url ukuran gambar.

      Contohnya gini
      https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-qB_J1cfKQUyW-JkrxI49OMWAaiTjEwWu_frCVQpL6TUIDvGUrGTsT7MGYbCPy-DEKIgRb0hU5l0awdTDgcXSNz_OF6tIDIt4zL2QiIn6WeJRBUbiU-dqzTCd7I2J8anq2Sw3U3lTlvBGMzZo0-z522NQj94Dvj12D5smvVF4zPXq9trGBRNEnw59/s1280/fungsi-border-radius-pada-css.jpg

      Jadi gini kang
      https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj-qB_J1cfKQUyW-JkrxI49OMWAaiTjEwWu_frCVQpL6TUIDvGUrGTsT7MGYbCPy-DEKIgRb0hU5l0awdTDgcXSNz_OF6tIDIt4zL2QiIn6WeJRBUbiU-dqzTCd7I2J8anq2Sw3U3lTlvBGMzZo0-z522NQj94Dvj12D5smvVF4zPXq9trGBRNEnw59/s1280-rw/fungsi-border-radius-pada-css.jpg

      Biar seluruh gambar di blog jadi format webp.

    • Kang Ismet
      Profil:https://www.blogger.com/profile/07706142952405337288
      20 April, 2023

      menurut saya, lebih baik edit manual daripada menggunakan csript, kecuali untuk thumbnail bisa seperti ini yang awalnya expr:src='data:post.thumbnailUrl' menjadi expr:src='data:post.thumbnailUrl + &quot;-rw&quot;'

    • 72Lite.com
      Profil:https://www.blogger.com/profile/04557021583299941165
      21 April, 2023

      Kalo pakai cara ini gak work kang. Karena hasil output linknya. -rw nya di ujung url.

      Jadi gambar blognya tidak berubah menjadi webp.

      Seharusnya kan penambahan -rw nya di ujung ukurannya. Sementara ukuran gambar blog berada di tengah tengah url.

    • Kang Ismet
      Profil:https://www.blogger.com/profile/07706142952405337288
      22 April, 2023

      oh iya itu untuk google photo ya, otomatis harus pake js nih.. nanti saya coba oprek-oprek dulu kali aja ketemu

Tambahkan Komentar
comment url
Terima kasih telah berkomentar di Blog Kang Ismet.
  • Untuk menyisipkan Gambar, Kode, atau Kutipan silahkan klik Tab Sisipkan di atas.
  • Emoji yang bisa digunakan pada komentar :), :D, :( <3, :love dan :top
  • Untuk melihat Komentar yang telah ditambah sisipan kunjungi DEMO
Masukkan URL Gambar atau Potongan Kode, atau Quote, lalu klik tombol yang kamu inginkan untuk di-parse. Klik tombol Salin Kode! lalu paste ke kolom komentar.


image quote pre code
7 Komentar