Này, vì vậy tôi đã gặp cùng một vấn đề tối qua và tìm ra sự kết hợp của tất cả câu trả lời của bạn và một số phép thuật lấp lánh đang làm rất tốt:
HTML:
<input type="date" name="flb5" placeholder="Datum" class="datePickerPlaceHolder"/>
CSS:
@media(max-width: 1024px) {
input.datePickerPlaceHolder:before {
color: #A5A5A5; //here you have to match the placeholder color of other inputs
content: attr(placeholder) !important;
}
}
JQuery:
$(document).ready(function() {
$('input[type="date"]').change(function(){
if($(this).val().length < 1) {
$(this).addClass('datePickerPlaceHolder');
} else {
$(this).removeClass('datePickerPlaceHolder');
}
});
});
Giải thích: Vì vậy, những gì đang xảy ra ở đây, trước hết là trong HTML , điều này khá đơn giản chỉ cần thực hiện một HMTL5-date-input cơ bản và đặt một trình giữ chỗ. Điểm dừng tiếp theo: CSS , chúng tôi đang đặt một: before-pseudo-element để giả mạo phần tử giữ chỗ của chúng tôi, nó chỉ lấy thuộc tính của phần tử giữ chỗ từ chính đầu vào. Tôi đã làm cho điều này chỉ khả dụng từ chiều rộng khung nhìn là 1024px - tại sao tôi sẽ nói sau. Và bây giờ là jQuery , sau khi cấu trúc lại một vài lần, tôi đã nghĩ ra đoạn mã này sẽ kiểm tra mọi thay đổi nếu có giá trị được đặt hay không, nếu không, nó sẽ (lại) thêm lớp, ngược lại .
BIẾT VẤN ĐỀ:
- đã xảy ra sự cố trong chrome với bộ chọn ngày mặc định của nó, đó là nội dung của truy vấn phương tiện. Nó sẽ thêm phần giữ chỗ trước điều mặc định 'dd.mm.yyyy'-thing. Bạn cũng có thể đặt trình giữ chỗ của ngày nhập thành 'ngày:' và điều chỉnh màu không có giá trị bên trong đầu vào ... đối với tôi, điều này dẫn đến một số vấn đề nhỏ hơn khác, vì vậy tôi đã không hiển thị nó trên 'lớn hơn 'màn hình
hy vọng rằng sẽ giúp! cheerio!