Bạn có thể thoát khỏi nó với một dấu chéo ngược
input#search_form\:expression {
///...
}
Từ CSS Spec
4.1.3 Nhân vật và trường hợp
Các quy tắc sau luôn giữ:
Tất cả các style sheets CSS là case-insensitive, ngoại trừ cho các bộ phận mà không phải là dưới sự kiểm soát của CSS . Ví dụ, trường hợp nhạy cảm với các giá trị của các thuộc tính HTML "id" và "class", của các tên font và các URI nằm ngoài phạm vi của đặc tả này. Lưu ý đặc biệt là các tên phần tử phân biệt chữ hoa chữ thường trong HTML, nhưng phân biệt chữ hoa chữ thường trong XML. Trong CSS, số nhận dạng (bao gồm tên phần tử, lớp và ID trong bộ chọn) chỉ có thể chứa ký tự [a-z0-9] và ISO 10646 ký tự U + 00A1 và cao hơn, dấu gạch nối (-) và dấu gạch dưới (_); chúng không thể bắt đầu bằng một chữ số hoặc dấu gạch ngang được theo sau bởi một chữ số. Định danh cũng có thể chứa các ký tự thoát và bất kỳ ký tự ISO 10646 nào dưới dạng mã số (xem mục tiếp theo). Ví dụ: số nhận dạng "B & W?" có thể được viết là "B \ & W \?" hoặc "B \ 26 W \ 3F". Lưu ý rằng mã Unicode theo từng mã tương đương với ISO 10646 (xem [UNICODE] và [ISO10646]).
Trong CSS 2.1, ký tự dấu gạch chéo ngược() biểu thị ba loại ký tự thoát. Đầu tiên, bên trong một chuỗi, dấu gạch chéo ngược theo sau là một dòng mới được bỏ qua (tức là, chuỗi được coi là không chứa dấu gạch chéo ngược hoặc dòng mới).
Thứ hai, nó hủy bỏ ý nghĩa của các ký tự CSS đặc biệt. Bất kỳ ký tự nào (ngoại trừ một chữ số thập lục phân) có thể được thoát bằng dấu gạch chéo ngược để loại bỏ ý nghĩa đặc biệt của nó. Ví dụ, "\" "là một chuỗi bao gồm một dấu nháy kép. Các bộ tiền xử lý bảng kiểu không được loại bỏ các dấu gạch chéo ngược này khỏi một bảng định kiểu vì nó sẽ thay đổi ý nghĩa của kiểu định kiểu. Trong trường hợp này, dấu gạch chéo ngược được theo sau bởi tối đa sáu chữ số thập lục phân (0..9A..F), ký tự đại diện cho ký tự ISO 10646 ([ISO10646]) với số đó (Không xác định trong CSS 2.1 điều gì sẽ xảy ra nếu một biểu định kiểu có chứa một ký tự có mã số Unicode bằng không.) Nếu một ký tự trong phạm vi [0-9a-f] theo sau số thập lục phân, thì kết thúc số lượng cần phải được làm rõ. Có hai cách để làm điều đó:
với khoảng trắng (hoặc khác ký tự dấu cách): "\ 26 B" ("& B"). Trong trường hợp này, tác nhân người dùng nên xử lý cặp "CR/LF" (U + 000D/U + 000A) làm ký tự khoảng trống duy nhất. bằng cách cung cấp chính xác 6 chữ số thập lục phân: "\ 000026B" ("& B") Thực tế, hai phương pháp này có thể được kết hợp. Chỉ có một ký tự khoảng trống được bỏ qua sau khi thoát khỏi hệ thập lục phân. Lưu ý rằng điều này có nghĩa là không gian "thực" sau chuỗi thoát phải tự thoát hoặc tăng gấp đôi.
Nếu số nằm ngoài phạm vi được Unicode cho phép (ví dụ: "\ 110000" cao hơn tối đa 10FFFF cho phép trong Unicode hiện tại), UA có thể thay thế thoát bằng "ký tự thay thế" (U + FFFD). Nếu ký tự được hiển thị, UA sẽ hiển thị một biểu tượng có thể nhìn thấy, chẳng hạn như ký tự "thiếu ký tự" (xem 15.2, điểm 5).
Lưu ý: Dấu gạch chéo ngược, khi được cho phép, luôn được coi là một phần của số nhận dạng hoặc chuỗi (tức là "\ 7B" không phải là dấu chấm câu, mặc dù "{" là, và "\ 32" được cho phép bắt đầu của một tên lớp, mặc dù "2" không phải là). Mã định danh "te \ st" giống hệt với định danh "kiểm tra".
http://mothereffingcssescapes.com/#search_form%3Aexpression –
[jomohke] (http://stackoverflow.com/users/3802/jomohke) [câu trả lời] 's (http://stackoverflow.com/a/656463/143739) nên được chọn là đúng. – kzh