2008-11-06 27 views

Trả lời

31
  • Ẩn kiểm soát thực tế
  • Made một DIV với các điều khiển và phong cách mà bạn muốn trên đầu trang của nó

Nút không phải là một điều khiển HTML chuẩn.

Xem: http://www.quirksmode.org/dom/inputfile.html

+0

vì vậy không có cách nào để đạt được điều này bằng cách sử dụng chính bản thân kiểm soát? – Larsenal

+0

Tôi đã cập nhật câu trả lời. Xem: http://www.quirksmode.org/dom/inputfile.html –

+1

Hoàn toàn không cần phải sử dụng độ mờ đục - bạn có thể chỉ cần ủy quyền nhấp chuột trên màn hình: phần tử không có gì - đơn giản hơn nhiều và bạn không phải mất kích thước đầu vào (thay đổi) vào tài khoản. –

22

gì sai với

<input type="file" size="50" .... /> 

? sẽ trông như nhau ngoại trừ Safari trên mac tôi đoán (trên mac, tất cả các điều khiển tải lên trông khác nhau, trên tất cả các trình duyệt)

+1

không có gì. Bạn có thể nghĩ về kích thước đầu vào, thay đổi chiều rộng, nhưng không thay đổi theo đơn vị mà bạn có thể chuẩn hóa trên các trình duyệt. – bobince

+0

vâng, bạn nói đúng, tôi không chú ý :) –

+1

Tác phẩm này ... nó xử lý firefox .. trong khi chiều rộng CSS thích hợp xử lý Chrome, IE và Safari –

7

Ngoài các hướng dẫn quirksmode, đây là một nguồn lực tốt: http://www.shauninman.com/archive/2007/09/10/styling_file_inputs_with_css_and_the_dom

Nếu bạn ẩn điều khiển thực tế, hãy nhớ rằng nó là rất quan trọng để thiết lập độ mờ đục của điều khiển bằng không, và không thực sự sử dụng visibility: hidden. Làm như vậy sẽ ẩn phần tử, vô hiệu hóa thao tác nhấp chuột.

Ngoài ra, nếu bạn đang che mất điều khiển bằng nút đồ họa, hãy lưu ý rằng trong một số trình duyệt (Firefox và IE, tôi tin), bạn sẽ không thể thay đổi loại con trỏ thành bàn tay khi nó trên phần nhập văn bản của điều khiển tệp (nó sẽ luôn luôn mặc định cho đầu vào hoặc con trỏ không liên kết thông thường). Và có, tôi đã thử sử dụng cursor: pointer (và cursor: hand).

Cá nhân, tôi đã vật lộn với các hộp tải lên tùy chỉnh và không có dấu đầu dòng bạc nào để hiển thị hoặc tùy chỉnh hoàn hảo của chúng. (đặc biệt là liên quan đến hành vi của con trỏ, khi tôi xem xét giao diện người dùng giao dịch người dùng). Vào cuối ngày, tôi nghĩ rằng việc chấp nhận rằng các trình duyệt khác nhau sẽ dễ dàng hơn khi thực hiện điều khiển khác nhau, và đó chỉ là cách thực hiện.

Các vấn đề liên quan