Trong CSS, có thể tạo kiểu cho placeholder
văn bản trong một đầu vào bằng cách sử dụng kết hợp các lớp giả và phần tử giả dành riêng cho nhà cung cấp (để có được mức độ bao phủ trên nhiều trình duyệt tốt nhất).
Tất cả đều có chung các thuộc tính cơ bản (ví dụ: khai báo kiểu văn bản và màu sắc).
Tuy nhiên, mặc dù tôi chắc chắn muốn áp dụng các kiểu giống nhau bất kể nhà cung cấp trình duyệt, nhưng dường như không thể kết hợp các kiểu này với nhau thành một bộ chọn được phân tách bằng dấu phẩy (như bạn làm với bất kỳ đoạn CSS nào khác mà bạn muốn hai bộ chọn chia sẻ các kiểu giống nhau).
Ví dụ: tôi có xu hướng nhắm mục tiêu kiểu trình giữ chỗ bằng cách sử dụng bốn bộ chọn sau:
input:-moz-placeholder
input::-moz-placeholder
input:-ms-input-placeholder
input::-webkit-input-placeholder
(mặc dù :-moz-placeholder
việc này không được dùng nữa vì ::-moz-placeholder
điều này chỉ xảy ra với việc phát hành FireFox 19 nên hiện tại, cả hai đều cần thiết để hỗ trợ trình duyệt tốt hơn).
Điều khó chịu là việc khai báo và đưa ra mỗi kiểu (giống nhau) dẫn đến nhiều sự lặp lại trong CSS.
Vì vậy, để đảm bảo rằng văn bản giữ chỗ được căn phải và nghiêng, tôi sẽ kết thúc bằng:
input:-moz-placeholder{
font-style: italic;
text-align: right;
}
input::-moz-placeholder{
font-style: italic;
text-align: right;
}
input:-ms-input-placeholder{
font-style: italic;
text-align: right;
}
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
Điều tôi thực sự muốn làm là kết hợp chúng thành một bộ quy tắc được phân tách bằng dấu phẩy như sau:
input:-moz-placeholder,
input::-moz-placeholder,
input:-ms-input-placeholder,
input::-webkit-input-placeholder{
font-style: italic;
text-align: right;
}
Tuy nhiên, mặc dù đã thử điều này trong một vài dịp công bằng, điều này dường như không bao giờ hiệu quả. Nó khiến tôi lo ngại rằng có một số phần cơ bản của CSS mà tôi không hiểu.
Ai có thể làm sáng tỏ lý do tại sao điều này xảy ra?
:-moz-placeholder
lớp giả chỉ bị giảm giá tương đối gần đây với sự ra đời của FireFox 19, đáng buồn là cả hai:-moz-placeholder
và người kế nhiệm hai màu của nó::-moz-placeholder
phải được sử dụng hiện tại để đảm bảo trình duyệt tốt nhất.