對話框是現代Web設計月不可缺少的元素之一,它可以用來呈現各種信息,如警告、錯誤消息、信息確認等,提高用戶體驗。下面是如何使用CSS來創建對話框。
.dialog { border: 1px solid #ccc; border-radius: 5px; box-shadow: 0 5px 20px rgba(0, 0, 0, 0.2); display: none; max-width: 500px; padding: 20px; position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); } .dialog h2 { font-size: 24px; margin-top: 0; } .dialog p { font-size: 16px; margin-bottom: 15px; } .dialog button { background-color: #007bff; border: none; border-radius: 3px; color: #fff; cursor: pointer; font-size: 16px; padding: 8px 16px; } .dialog button:hover { background-color: #0062cc; } .dialog.show { display: block; } .dialog-overlay { background-color: rgba(0, 0, 0, 0.5); bottom: 0; left: 0; position: fixed; right: 0; top: 0; } .dialog-overlay.show { display: block; }
上面的代碼定義了一個名為“dialog”的類,用于創建對話框的主體,并設置對話框的樣式:邊框、邊框半徑、陰影等。在主體類內部,使用h2、p和button來呈現對話框的標題、正文和操作按鈕,為了實現模態框要使用絕對定位來實現垂直于水平居中,同時使用transform進行平移,實現在整個視口居中的效果。
除了對話框本身,上面的代碼還定義了一個名為“dialog-overlay”的類,用于創建一個覆蓋整個頁面的半透明遮罩。在主體類和遮罩類中,都定義了一個名為“show”的類,該類的display屬性為block,用于顯示對話框和遮罩。你可以使用JavaScript代碼來切換這個類,從而顯示和隱藏對話框和遮罩。
const dialog = document.querySelector('.dialog'); const overlay = document.querySelector('.dialog-overlay'); const closeBtn = dialog.querySelector('button'); function openDialog() { dialog.classList.add('show'); overlay.classList.add('show'); } function closeDialog() { dialog.classList.remove('show'); overlay.classList.remove('show'); } closeBtn.addEventListener('click', closeDialog); overlay.addEventListener('click', closeDialog);
上面的JavaScript代碼使用事件監聽器來監聽對話框關閉按鈕和遮罩的單擊事件,從而在用戶單擊這些元素時隱藏對話框和遮罩。
使用上述CSS代碼定義的“.dialog”和“.dialog-overlay”類的CSS樣式, 配合JavaScript的openDialog()和closeDialog()函數, 就可以創建出一個自定義的對話框。