2012-10-23 32 views
7

Có cách nào để loại trừ hoặc chọn Nhãn theo loại đầu vào, điều gì đó tương tự với trường nhập liệu không?Chọn Nhãn theo kiểu đầu vào

label:not([type=checkbox]) 
label[type=checkbox] 
+0

Câu hỏi của bạn thực sự là gì? Bạn có muốn biết các loại đầu vào khác ... không thể hiểu rõ ràng .. rephrase ... – Vinay

+0

Thứ hai chắc chắn hoạt động. Bộ chọn css '[attribute = value]' làm việc cho bất cứ thứ gì, không chỉ là đầu vào. (bạn có thể nhận được tên lớp, nếu nó bị vô hiệu hóa vv) Điều này có thể không hoạt động trong một số phiên bản cũ hơn của IE mặc dù. Tôi đã không nhìn thấy: không chọn trước khi mặc dù vì vậy tôi không thể bình luận về nó. – Andrew

+0

Câu hỏi @Vinay là cách chọn hoặc loại trừ nhãn cho trường nhập inputtype =, trong CSS? – InTry

Trả lời

13

Nếu bạn cung cấp cho hộp kiểm của bạn cụ thể id rằng tất cả bắt đầu với những điều tương tự, bạn có thể làm như sau:

HTML

<input type="checkbox" id="chkTerms" /> 
<label for="chkTerms">Read terms & conditions</label> 

CSS

label[for*="chk"], label[htmlfor*="chk"] 
{ 
css here 
} 

Có thể là trình duyệt hiện đại. EDIT: Tôi vừa thử một fiddle: link và nó hoạt động trong chrome và IE 8 & 9 nhưng không phải 7. Tôi đã không thử nó trong FF.

EDIT2: Chỉ cần đưa ra một giải thích về những gì đang diễn ra ở đây, các dấu ngoặc vuông sẽ tìm một thuộc tính được gọi. Các asterix thay đổi hành vi của các bằng từ chỉ là một đồng bằng bằng, có nghĩa là có chứa - bất cứ nơi nào cho các thuộc tính chứa "chk" nó sẽ áp dụng phong cách đó. Bạn có thể thay thế * bằng dấu^và nó sẽ thay đổi nó thành có nghĩa là bắt đầu bằng thay vì chứa.

EDIT3: BoltClock đã cung cấp bản sửa lỗi cho IE7 trong nhận xét, tôi đã cập nhật câu trả lời để bao gồm nó.

+0

đây chính xác là những gì tôi đã tìm kiếm – InTry

+1

Y eah, IE7 gặp sự cố với bộ chọn thuộc tính và 'for' là một ví dụ nổi tiếng mà bạn cần sử dụng' htmlFor' để thay thế. – BoltClock

+0

@BoltClock Tôi không biết về bộ chọn htmlfor. Cảm ơn :-) Tôi sẽ cập nhật bài đăng của mình để đưa vào đó để sửa lỗi IE7. – Andrew

3

Làm thế nào về input[type=checkbox] + label { /*label style here*/ }? Nó có thể hoạt động nếu văn bản chỉ sau phần tử đầu vào. Tôi chưa thử nghiệm điều đó.

+0

thực sự, nó chỉ hoạt động nếu nhãn là sau phần tử đầu vào: ( – InTry

+0

Bạn có thể sửa đổi html không? Bạn có thể thêm lớp cho các nhãn đó. Hoặc sử dụng jQuery để đi máng tất cả các nhãn – Antti

+0

Đây là một ý tưởng hay, bất chấp những hạn chế của nó –

1

Bạn có thể sử dụng hộp kiểm của bạn với tài liệu tham khảo dữ liệu thuộc tính cơ bản ..

<input type="checkbox" name="checkbox-1" id="checkbox-0" class="custom" /> 
<label for="checkbox-0">Whatever</label> 

Nếu bạn không mong đợi này ... cho chúng tôi biết ...

+0

Tôi biết tôi có thể sử dụng id hoặc lớp, tôi hỏi nếu có thể làm điều đó theo cách khác, mà không sử dụng 'label {style}' sau đó ghi đè lên nó bằng '# checkbox-0 {style}' – InTry

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