Các spec HTML cho phép trong thời gian ở một id (.):CSS selector với kỳ ID
<img id="some.id" />
Tuy nhiên, sử dụng một quy tắc CSS ID selector sẽ không trận đấu một cách chính xác:
#some.id { color: #f00; }
Thông số CSS cho ID Selectors không đề cập đến trường hợp này. Vì vậy, tôi giả sử nó đang sử dụng sự kết hợp của một tên thẻ và class selector? Ví dụ: quy tắc CSS của a.className
sẽ áp dụng cho tất cả các thẻ liên kết (<a>
) với tên lớp là className
, như <a class="className"></a>
.
Có thể có quy tắc tệp CSS bên ngoài tham chiếu phần tử HTML theo id của nó có dấu chấm trong đó không?
Tôi mong đợi không phải vì thông số CSS chỉ định rằng CSS "identifier" không bao gồm dấu chấm làm ký tự hợp lệ. Vậy đây có phải là sự không phù hợp cơ bản giữa thông số HTML và CSS không? Là lựa chọn duy nhất của tôi để sử dụng một loại lựa chọn CSS khác? Ai có thể thông minh hơn tôi xác nhận hay phủ nhận điều này?
(tôi sẽ loại bỏ các khoảng thời gian từ thuộc tính id HTML để đơn giản hóa mọi thứ, nhưng nó là một id hệ thống tạo ra, vì vậy tôi không có khả năng để thay đổi nó trong trường hợp này.)
Bạn có thể nói rằng đây là sự không phù hợp cơ bản giữa HTML và CSS. Tuy nhiên, vì chúng là hai ngôn ngữ khác nhau, nên chúng không được cho là phù hợp; một mã định danh HTML là mã định danh HTML trong khi mã định danh CSS là mã định danh CSS. Ngoài ra, CSS cũng có thể tạo kiểu cho các ngôn ngữ khác, không chỉ HTML (mặc dù được cấp, CSS đã được tạo cho HTML ngay từ đầu). – BoltClock
Ngoài ra '# some.id' đang sử dụng kết hợp ID và bộ chọn lớp. – BoltClock
ID có phải là thuộc tính duy nhất mà bạn có làm móc kiểu? Tôi biết đó là một chút chủ đề, nhưng tôi tự hỏi tại sao bạn muốn sử dụng một ID thay vì img hoặc một lớp (nếu có). – Jayx