2009-02-06 22 views
17

Có cách nào thanh lịch để áp dụng một phong cách nhất định cho tất cả các thành phần <input type="text"> trong IE6 không? Tôi có thể làm điều đó với một số JavaScript, nhưng tôi đã tự hỏi nếu có một cách thanh lịch hơn để làm điều đó.Cách tạo kiểu <input type = "text"> trong CSS IE6?

Lưu ý - Tôi không thể áp dụng một lớp nhất định cho tất cả các hộp văn bản bằng tay. Và tôi muốn avoid CSS expressions.

Trả lời

14

AFAIK, IE6 không hỗ trợ attribute selectors, vì vậy tôi nghĩ câu trả lời là không. Bạn sẽ phải sử dụng một trong các cách sau:

  1. Thêm thuộc tính lớp chung cho tất cả các yếu tố <input type="text"/>.
  2. Sử dụng JavaScript, như bạn đã đề xuất.

Cả hai bạn muốn tránh. Quá tệ.

+0

jQuery có thể làm cho kiểu dáng javascript trở nên ít đau đớn hơn vì nó hỗ trợ các bộ lọc lựa chọn rất giống với CSS – Aleris

+1

@Alertis: true, nhưng nó vẫn là javascript. –

+0

Nó là một ứng dụng web sử dụng nội bộ mà phụ thuộc rất nhiều vào JavaScript anyway. Sử dụng nó để tạo kiểu tóc là không có vấn đề gì. Tôi chỉ tự hỏi liệu có cách nào tốt hơn không. –

1

Bạn cũng có các yếu tố đầu vào khác mà bạn muốn tạo kiểu khác với phần tử "văn bản" không? Nếu không, chỉ cần áp dụng phong cách cho tất cả các yếu tố đầu vào với CSS:

input { 
border: 1px #8194b2 solid; 
font : normal 100% "Tahoma", sans-serif; 
} 
+0

Đáng tiếc là tôi thực sự muốn rời khỏi loại khác không bị ảnh hưởng. Tôi sẽ thay đổi những thứ như chiều cao và màu nền, do đó, nó sẽ phản ánh khá khó chịu trên, một hộp kiểm. –

+0

Thật vậy. Vì bạn chỉ sử dụng javascript cho một số kiểu dáng nhỏ, tôi nghĩ bạn có thể biện minh bằng cách sử dụng nó. Nó sẽ không ảnh hưởng đến chức năng cho thiểu số mà không có javascript. – Stuart

1

Việc đặt thuộc tính lớp vào yếu tố đầu vào có hiệu quả với bạn không?

input.text {

// một số thuộc tính CSS và các giá trị ở đây ....

}

  • có thể nhiều hơn tao nhã hơn JS
8

Nếu bạn tình cờ sử dụng jQuery, hãy thử thêm điều này vào onDOMready của bạn:

$('input[type="text"]').addClass('typeText'); 

Sau đó, trong CSS của bạn, bạn có thể để một cái gì đó như:

input.typeText, input[type="text"] { 
    color:#efefef; 
} 
Các vấn đề liên quan