Hướng dẫn bootstrap multiselect css - css đa lựa chọn bootstrap

HTML cung cấp một cách gốc để tạo một hộp chọn hỗ trợ chọn nhiều mục với nhiều thuộc tính trên các phần tử được chọn nhưng kết xuất của điều này thực sự không nhỏ gọn hoặc đẹp và không có nhiều bạn có thể thực hiện kiểu dáng khôn ngoan với các tùy chọn trong một lựa chọn Hộp cũng. Tôi không thể tìm thấy bất kỳ thiết kế tùy chỉnh nào phù hợp với phong cách mà tôi đang tìm kiếm nên cuối cùng tôi đã tự làm. Mã đầy đủ có sẵn trên github của tôi ở đây cùng với một thanh tìm kiếm phù hợp.

Điều này được xây dựng từ đầu do khó khăn trong việc thay đổi hành vi và kiểu dáng của một lựa chọn bình thường. Phần thường thấy của chọn là một nút đơn giản. Menu Dropdown là một div được ẩn bởi lớp Bootstrap Utility D-none, với làm tròn và bóng được áp dụng thông qua các lớp tiện ích Bootstrap Shadow và Rounded. Các tùy chọn là các hộp kiểm đơn giản với nhãn. Chúng có thể được thay thế bằng các nút radio nếu bạn muốn một hộp chọn đơn phù hợp.

Đây là HTML cuối cùng cho nút và menu

onclick="dropDown(event);" class="menu-btn" type="button"> Menu 1 class="d-none shadow rounded menu"> class="d-block menu-option"> class="d-block menu-option"> class="d-block menu-option">

Nhập chế độ FullScreenen EXIT Mode FullScreen

Tôi muốn nút menu được làm tròn và khá nhỏ vì vậy tôi đã tạo kiểu cho nó phù hợp (bạn có thể tạo kiểu cho mọi cách bạn muốn, tất nhiên không ảnh hưởng đến chức năng):

.menu-btn {
    border-radius: 48px;
    border: 0.5px solid lightgrey;
    font-size: 0.9em;
    padding: 2px 10px;
    background-color: white;
}

Nhập chế độ FullScreenen EXIT Mode FullScreen

Tôi muốn nút menu được làm tròn và khá nhỏ vì vậy tôi đã tạo kiểu cho nó phù hợp (bạn có thể tạo kiểu cho mọi cách bạn muốn, tất nhiên không ảnh hưởng đến chức năng):

.menu {
    padding-top: 10px;
    z-index: 200;
    margin-top: 4px;
    background-color: white;
    position: absolute;
}

Nhập chế độ FullScreenen EXIT Mode FullScreen

Tôi muốn nút menu được làm tròn và khá nhỏ vì vậy tôi đã tạo kiểu cho nó phù hợp (bạn có thể tạo kiểu cho mọi cách bạn muốn, tất nhiên không ảnh hưởng đến chức năng):

.menu-option {
    padding: 6px 20px 6px;
}

Nhập chế độ FullScreenen EXIT Mode FullScreen

Tôi muốn nút menu được làm tròn và khá nhỏ vì vậy tôi đã tạo kiểu cho nó phù hợp (bạn có thể tạo kiểu cho mọi cách bạn muốn, tất nhiên không ảnh hưởng đến chức năng):

 class="d-none" id="overlay" onclick="hide(event)">

Nhập chế độ FullScreenen EXIT Mode FullScreen

#overlay {
    position: absolute;
    top: 0px;
    left: 0px;
    width: 100%;
    height: 100%;
    z-index: 100;
}

Nhập chế độ FullScreenen EXIT Mode FullScreen

Tôi muốn nút menu được làm tròn và khá nhỏ vì vậy tôi đã tạo kiểu cho nó phù hợp (bạn có thể tạo kiểu cho mọi cách bạn muốn, tất nhiên không ảnh hưởng đến chức năng):
This function removes the d-none classes from the menu and overlay, activating them. Rather than handling this via ID, it simply takes the second element of the target's (button's) parent and assumes that's the menu. This is the reason that the menu and button are wrapped in an otherwise empty div.

function dropDown(event) {
    event.target.parentElement.children[1].classList.remove("d-none");
    document.getElementById("overlay").classList.remove("d-none");
}

Nhập chế độ FullScreenen EXIT Mode FullScreen

Tôi muốn nút menu được làm tròn và khá nhỏ vì vậy tôi đã tạo kiểu cho nó phù hợp (bạn có thể tạo kiểu cho mọi cách bạn muốn, tất nhiên không ảnh hưởng đến chức năng):

function hide(event) {
    var items = document.getElementsByClassName('menu');
    for (let i = 0; i < items.length; i++) {
        items[i].classList.add("d-none");
    }
    document.getElementById("overlay").classList.add("d-none");
}

Nhập chế độ FullScreenen EXIT Mode FullScreen

Tôi muốn nút menu được làm tròn và khá nhỏ vì vậy tôi đã tạo kiểu cho nó phù hợp (bạn có thể tạo kiểu cho mọi cách bạn muốn, tất nhiên không ảnh hưởng đến chức năng):