Css hiện lớp ghi đè id

Đôi khi tôi đang xem xét mã, tôi khuyên một đồng nghiệp không nên sử dụng ID cho bộ chọn kiểu CSS và chắc chắn sẽ bị hỏi tại sao. Giống như đứng xếp hàng, pha một tách trà hay trang điểm đầy đủ trong bóng tối lúc 6 giờ sáng, tránh ID trong CSS là điều tôi làm mà không cần suy nghĩ. Tôi đã làm việc đó quá lâu mà không đặt câu hỏi, đến nỗi phải mất một phút tôi mới có thể giải thích cho người khác tại sao. Vì vậy, với ý nghĩ đó, đây là danh sách các lý do tại sao tôi tránh sử dụng ID trong biểu định kiểu của mình và thay vào đó thích các lớp hơn

1. Độ đặc hiệu của lớp thấp hơn độ đặc hiệu của ID

ID có tính đặc hiệu cao hơn nhiều so với các lớp. Bản thân một lớp không thể ghi đè lên các kiểu thuộc về một ID. Để "đánh bại" ID, bạn sẽ cần nhiều ID hơn hoặc sử dụng !important, điều này có thể bắt đầu cuộc chiến về tính đặc hiệu trong biểu định kiểu của bạn. Bạn thậm chí có thể cần phải cấu trúc lại HTML của mình. Lý tưởng nhất là các kiểu phải dễ dàng ghi đè và mở rộng, để làm cho CSS của bạn có thể bảo trì và dễ làm việc với

2. Các lớp có thể được sử dụng lại

ID phải là duy nhất trên một trang. Điều này có nghĩa là nếu bạn đính kèm một kiểu vào một ID, thì bạn sẽ không thể sử dụng lại nó trong cùng một trang web. Tuy nhiên, các lớp có thể xuất hiện trên một số phần tử HTML trên cùng một trang. Có thể sử dụng lại các kiểu là một trong những lợi thế của CSS. Ví dụ: sẽ rất khó để tạo kiểu trực tiếp cho phần tử danh sách

  • chỉ bằng ID. Phải thừa nhận rằng không phải mọi phong cách đều cần được sử dụng lại, nhưng thật tuyệt khi có tùy chọn

    3. Quy ước nhất quán

    Sẽ đơn giản hơn cho các nhà phát triển làm việc trong cơ sở mã để biết rằng CSS được đính kèm với các lớp và ID đó được sử dụng cho các mục đích khác. Chỉ sử dụng thuộc tính class để xác định kiểu sẽ dễ hiểu hơn đối với người khác thay vì kết hợp các thuộc tính classid

    4. Một phần tử có thể có nhiều lớp, nhưng chỉ có một ID

    Bạn có thể thêm nhiều lớp vào một phần tử HTML, ví dụ

    . Ở đây, có các lớp để tạo kiểu và một lớp cho JavaScript hook, tất cả được nhóm lại với nhau trong thuộc tính lớp. Cũng có thể đặt tên ID bằng các quy ước này, nhưng hãy nhớ rằng nó không hợp lệ nếu có nhiều hơn. Điều này có nghĩa là bạn không thể quá tải tên ID như ví dụ về lớp ở trên, e. g.

    Sử dụng kết hợp các lớp để tạo kiểu cho một phần tử là một mẫu phổ biến. Ngoài ra, bạn nên sử dụng quy ước đặt tên cho các bộ chọn chỉ được sử dụng bởi JavaScript hoặc kiểm tra tự động. Ví dụ: nếu tôi thấy một lớp có tiền tố là js-, tôi biết rằng nó được sử dụng ở đâu đó trong JavaScript và không chịu trách nhiệm về kiểu và nên tiến hành thận trọng trước khi chỉnh sửa nó. (Thông thường, tiền tố qa- cũng được sử dụng như một cái móc để kiểm tra. ) Cá nhân tôi muốn giữ tất cả các hook và các lớp tạo kiểu của mình cùng nhau trong một thuộc tính thay vì chia sẻ chúng giữa các lớp và ID

    từ chối trách nhiệm

    Tất nhiên, lời khuyên này đi kèm với tuyên bố từ chối trách nhiệm thông thường kèm theo. Bạn hiểu mã của mình và bối cảnh của vấn đề hơn bất kỳ bài đăng ngẫu nhiên nào trên blog và nếu bạn nghĩ việc viết CSS bằng ID là hợp lý, thì hãy tiếp tục và sử dụng ID. ID hoàn toàn hợp lệ để sử dụng trong CSS stylesheets

    Ghi chú

    Điều này không có nghĩa là bạn không nên sử dụng ID trong HTML của mình. ID có nhiều công dụng trong trang web ngoài việc là bộ chọn CSS. Ví dụ như neo trang, định danh đoạn hoặc để liên kết nhãn với các trường biểu mẫu

    P. S

    Trong khi nghiên cứu bài đăng này, tôi đã tìm thấy câu trả lời StackOverflow này khuyến nghị sử dụng ID để xác định kiểu - một lời nhắc tốt rằng các quan điểm phổ biến trong phát triển web giao diện người dùng có thể thay đổi

    Khi nhiều quy tắc CSS tham chiếu cùng một phần tử HTML, trình duyệt cần một quy tắc ngón tay cái để dự đoán hướng dẫn tạo kiểu nào sẽ được ưu tiên. Điều này được gọi là ghi đè CSS. Tùy thuộc vào loại bộ chọn nào được sử dụng để tạo kiểu cho một phần tử, có một số quy tắc xác định kiểu nào ghi đè kiểu khác

    Hãy lấy một ví dụ nhỏ để hiểu làm thế nào điều này được thực hiện

    Mã HTML và CSS mẫu hiển thị văn bản Hello World có màu đỏ. Phần tử ghi đè lớp

    Trong mẫu mã ở trên, phần tử đoạn chỉ định kiểu dáng trong CSS bên ngoài. Điều này áp dụng cho bất kỳ phần tử đoạn văn nào không chỉ là “Xin chào thế giới. ” đoạn văn. Bây giờ, tôi muốn hiển thị đoạn văn bản hello world của mình khác với tất cả các đoạn khác. Đối với điều này, tôi đang thêm một lớp màu xanh lam như hình bên dưới

    Mã HTML và CSS mẫu ghi đè kiểu phần tử p bằng một lớp cụ thể

    Bây giờ, màu văn bản thay đổi từ Đỏ sang xanh xác nhận rằng một lớp có tính đặc hiệu cao hơn so với thẻ phần tử

    Lớp ghi đè lớp

    Kiến thức phổ biến là kiểu lớp ghi đè kiểu phần tử chung. Nhưng, bạn có biết làm thế nào một phong cách lớp ghi đè lên một phong cách khác. Mẹo nhỏ này sẽ hữu ích khi bạn có nhiều lớp cạnh tranh với nhau để chỉ định kiểu dáng cho một phần tử cụ thể

    Mã HTML và CSS mẫu trình bày cách một kiểu lớp có thể ghi đè kiểu lớp khác

    Với các thay đổi trên, màu chữ hello world chuyển từ xanh sang cam. Ghi chú. Bạn có thể chỉ định tên lớp theo bất kỳ thứ tự nào trong thẻ p nhưng quy tắc ghi đè CSS đề xuất rằng thứ tự ưu tiên được cung cấp cho lớp được xác định cuối cùng trong CSS

    Id ghi đè lớp

    Bộ chọn lớp có thể sử dụng lại. Nói cách khác, nhiều phần tử có thể có cùng tên lớp và do đó, kiểu dáng giống nhau. Ngược lại, HTML không cho phép bạn sử dụng lại ID. Nếu phần tử bạn đang tạo kiểu có cả thuộc tính lớp và id, trong trường hợp đó, kiểu ID sẽ được ưu tiên hơn lớp. Bởi vì các phần tử khác không thể tham chiếu đến cùng một ID, kiểu bộ chọn ID sẽ cụ thể hơn so với một lớp

    Mã HTML và CSS mẫu sử dụng bộ chọn ID để ghi đè kiểu bộ chọn lớp

    Như mong đợi, màu văn bản xin chào thế giới thay đổi từ màu cam sang màu tím

    Id ghi đè kiểu nội tuyến

    CSS có thể được thêm vào HTML dưới dạng thẻ nội tuyến và khi hoàn tất, kiểu nội tuyến được chỉ định sẽ được ưu tiên hơn các hướng dẫn tạo kiểu khác đã lưu ý ở trên. Bây giờ, hãy viết lại ví dụ hiện tại của chúng ta bằng cách thêm một kiểu nội tuyến vào thành phần đoạn văn trong HTML

    Mã HTML mẫu chỉ định kiểu nội tuyến sẽ ghi đè kiểu bộ chọn id, lớp và phần tử

    Với việc bổ sung kiểu nội tuyến, màu văn bản xin chào thế giới thay đổi từ màu tím sang màu xanh lá cây

    CSS quan trọng ghi đè tất cả

    Quan trọng là một thuộc tính quan trọng có thể được thêm vào kiểu dáng CSS. Như tên ngụ ý, nó cho biết kiểu dáng mà nó đi kèm là quan trọng và có thể ghi đè kiểu dáng nội tuyến. . quan trọng được thêm vào cuối dòng hướng dẫn tạo kiểu như được thực hiện với ví dụ của chúng tôi bên dưới

    Một mã CSS mẫu với. thẻ quan trọng được thêm vào kiểu bộ chọn thành phần đoạn văn

    Văn bản xin chào thế giới hiện được hiển thị bằng màu đỏ vì. quan trọng được thêm vào kiểu thẻ phần tử p sẽ ghi đè tất cả các loại bộ chọn khác

    ID có được ưu tiên hơn lớp không?

    Bộ chọn ID được thực hiện trước bộ chọn lớp vì chúng cụ thể hơn. Do đó, họ được ưu tiên .

    ID hoặc lớp có ưu tiên CSS không?

    Bộ chọn ID #first được ưu tiên hơn bộ chọn lớp và thẻ .

    ID có cụ thể hơn lớp không?

    ID cụ thể hơn các lớp và được ưu tiên hơn chúng. Điều này là do ID phải là DUY NHẤT trên mỗi trang. vì vậy về bản chất chúng rất cụ thể. Các lớp có thể xuất hiện nhiều lần. Tìm hiểu cách thức hoạt động của nó là nền tảng để viết mã CSS.