2012-02-09 29 views
74

Tôi muốn áp dụng một số css cho các yếu tố đầu vào và tôi muốn làm điều đó chỉ cho đầu vào không bị vô hiệu hóa và không gửi loại , dưới đây css không hoạt động, có thể nếu ai đó có thể giải thích cho tôi cách thức này phải được thêm vào.Css pseudo classes input: not (disabled) không: [type = "submit"]: focus

input:not(disabled)not:[type="submit"]:focus{ 
box-shadow:0 0 2px 0 #0066FF; 
-webkit-box-shadow:0 0 4px 0 #66A3FF; 
} 

Trả lời

160

Thay vì:

input:not(disabled)not:[type="submit"]:focus {} 

Sử dụng:

input:not([disabled]):not([type="submit"]):focus {} 

disabled là một thuộc tính vì vậy nó cần các dấu ngoặc, và bạn dường như đã lẫn lộn/dấu hai chấm mất tích và dấu ngoặc trên Bộ chọn :not().

Demo: http://jsfiddle.net/HSKPx/

Một điều cần lưu ý: Tôi có thể sai, nhưng tôi không nghĩ rằng disabled đầu vào thường có thể nhận được tập trung, vì vậy một phần mà bạn có thể không cần thiết.

+0

vâng, tôi có thuộc tính readonly về dự án của tôi :) Cảm ơn bạn! – BurebistaRuler

+24

: không ([bị vô hiệu hóa]) là một cách viết rất tiết kiệm: đã bật https://developer.mozilla.org/en-US/docs/Web/CSS/:enabled – Adria

+0

Điều gì về chỉ đọc? – Cullub

7

Bạn có một vài lỗi chính tả trong lựa chọn của mình. Nó phải là: input:not([disabled]):not([type="submit"]):focus

Xem điều này jsFiddle để có bằng chứng khái niệm. Trên một sidenote, nếu tôi loại bỏ thuộc tính "background-color", thì shadow box không còn hoạt động nữa. Không chắc chắn lý do tại sao.

6

Cú pháp của bạn khá ngớ ngẩn.

Thay đổi này:

input:not(disabled)not:[type="submit"]:focus{ 

tới:

input:not(:disabled):not([type="submit"]):focus{ 

vẻ mà nhiều người không nhận ra :enabled:disabled là selectors CSS hợp lệ ...

+1

Tại sao không rút ngắn hơn nữa để 'đầu vào: kích hoạt: không ([type =" submit "]): focus {'? –

+0

@SeantheBean Điểm tốt. Đó là sạch hơn. – Gavin

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