Kunjungi Blog terbaru saya corkismet - Coretan Kang Ismet - dan tinggalkan jejak sobat disana.

Step by Step Membuat Modal Box Pure CSS tanpa JavaScript

Pure CSS Modal Box without 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.

Untuk mendapatkan update terbaru di Dasbor Blogger, silahkan ikuti Blog ini

7 komentar

1. Komentar ini, diurutkan dari yang terbaru
2. Tinggalkan komentar sesuai topik tulisan
3. Apabila ada pertanyaan diluar artikel silahkan kunjungi Ruang Obrolan.
4. Centang Beri tahu saya untuk mendapatkan notifikasi via Email ketika ada balasan
Masukkan URL Gambar atau Potongan Kode, atau Quote, lalu klik tombol yang kamu inginkan untuk di-parse. Salin hasil parse lalu paste ke kolom komentar.


image quote pre code
  1. Kang request. Cara membuat dan memasang lazyload img dengan animasi loading atau animasi slash.

    Ditunggu kang.
    1. banyak alternative sih coba search di codepen
    2. Kasih tutorial lagi aja kang. Biar sekalian belajar dan paham nantinya.
    3. 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.
    4. 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;'
    5. 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.
    6. oh iya itu untuk google photo ya, otomatis harus pake js nih.. nanti saya coba oprek-oprek dulu kali aja ketemu
Cookie Consent
We serve cookies on this site to analyze traffic, remember your preferences, and optimize your experience.
Oops!
It seems there is something wrong with your internet connection. Please connect to the internet and start browsing again.
AdBlock Detected!
We have detected that you are using adblocking plugin in your browser.
The revenue we earn by the advertisements is used to manage this website, we request you to whitelist our website in your adblocking plugin.
Site is Blocked
Sorry! This site is not available in your country.