Css bên trong hay bên ngoài được ưu tiên?
Vào ngày viết CSS trung bình của bạn, rất có thể bạn sẽ không nghĩ về quyền ưu tiên trong CSS. Nó không xuất hiện nhiều. Nhưng nó có vấn đề. Nó xuất hiện bất cứ lúc nào nhiều bộ chọn CSS khớp với một phần tử có cùng tính đặc hiệu Show
Giả sử tính đặc hiệu hoàn toàn giống nhau, thứ tự không thành vấn đề Phong cách tuyên bố sau chiến thắng Trong một biểu định kiểu duy nhấtGiả sử chúng tôi có một số HTML như thế này
Thứ tự của các thuộc tính trong HTML không quan trọng. Đó là thứ tự trong stylesheet. Hãy tập trung vào 0
Một ví dụ phức tạp có chủ ýThứ tự không giới hạn ở một biểu định kiểu. Thứ tự của biểu định kiểu trong tài liệu thậm chí còn quan trọng hơn Hãy xem tài liệu này với ba phong cách riêng biệt… uh… hãy gọi chúng là chunks. Một đoạn là một khối 0, một khối 1 hoặc một biểu định kiểu 2ed
Tôi đã dán nhãn các khối #1, #2 và #3. Tất cả chúng đều chứa các bộ chọn CSS có cùng độ đặc hiệu chính xác. # 3 được tuyên bố cuối cùng, vì vậy nó sẽ thắng trận chiến ưu tiên CSS được tải không đồng bộ vẫn tôn trọng thứ tự tài liệuCó lẽ bạn đang tải CSS bằng một trình tải CSS tuyệt vời như loadCSS. Điều gì sẽ xảy ra nếu chúng ta tải một tệp CSS thứ tư cùng với nó với thiết lập chính xác giống như ví dụ “phức tạp” ở trên? loadCSS đưa biểu định kiểu vào cuối 3 theo mặc định, vì vậy nó sẽ trở thành #3 và khối 1 ở dưới cùng của phần thân sẽ trở thành #4 và do đó giành chiến thắngThực sự là không hợp lệ (mặc dù nó hoạt động) để có một khối 5 hoặc 1 là con của 7, vì vậy sẽ rất hiếm khi một biểu định kiểu được tải bởi loadCSS không phải là người chiến thắng theo mặc địnhNgoài ra, bạn có thể chỉ định ID để nhắm mục tiêu để có thể kiểm soát thứ tự CSS 2CSS quan trọng có trở nên kỳ lạ không?Một trong những lý do khiến bạn có thể sử dụng loadCSS là vì bạn đang cố tình trì hoãn việc tải biểu định kiểu của mình, bởi vì bạn đang đưa CSS quan trọng vào 3 để thử và đưa các kiểu vào gói đầu tiên và tăng tốc độ kết xuất 4Việc thực hành CSS quan trọng liên quan đến việc chuyển các bộ chọn CSS lên một đoạn cao hơn. đoạn số 1. Đoạn có thứ tự thấp nhất và dễ ghi đè nhất. Vì vậy, về mặt lý thuyết, vâng, có thể có xung đột/thay đổi về những gì CSS được áp dụng khi so sánh trang với CSS quan trọng được áp dụng và với CSS được tải đầy đủ. Tuy nhiên, biểu định kiểu tải đầy đủ và xuất hiện sau CSS quan trọng, vì vậy cuối cùng nó sẽ hoạt động như dự kiến Bạn có thể cần tinh chỉnh chính xác những gì làm cho nó trở thành CSS quan trọng và những gì không – để tránh những thay đổi kiểu dáng chớp nhoáng kỳ lạ Các phần mở rộng có trở nên kỳ lạ không?Trong một bộ tiền xử lý, chúng có thể Giả sử bạn muốn tạo kiểu cho một thứ bằng một biến thể 5Và mã tiền xử lý (siêu đơn giản cho mục đích demo) kết thúc như thế nào 6Bạn sẽ nghĩ… OK, 9 là bộ chọn được khai báo CUỐI CÙNG, vì vậy nó thắng, vì vậy nền phải có màu cam. Nhưng không phải vậy, bởi vì phần mở rộng di chuyển bộ chọn đến nơi mà thứ mà nó mở rộng được xác định, trong trường hợp của chúng tôi là trước những gì chúng tôi đang cố gắng ghi đè. CSS được biên dịch là 8Vì vậy, 0 thực sự là 1, không phải những gì chúng tôi muốn. Có lẽ dễ nhất để giải quyết vấn đề này với tính đặc hiệu hơn là thứ tự nguồnPhần mở rộng bản địa, nếu chúng trở thành một thứ, có lẽ sẽ ít gây nhầm lẫn hơn Đó là một điều ngớ ngẩn để quản lýKhông ai muốn nghĩ về điều này. Chiến thắng theo phong cách cụ thể dễ dàng hơn nhiều. Nhưng biết về nó là một ý kiến hay, bởi vì tính đặc hiệu không cần thiết cũng là một điều vô lý Kiểu CSS nào có mức độ ưu tiên cao nhất?1) Kiểu nội tuyến . Kiểu nội tuyến có mức độ ưu tiên cao nhất trong số tất cả. 2) Bộ chọn id. Nó có ưu tiên cao thứ hai. 3) Lớp, giả lớp và thuộc tính. Những bộ chọn này có mức độ ưu tiên thấp nhất.
CSS nội bộ hay CSS bên ngoài nào nhanh hơn?Sự khác biệt chính giữa CSS nội tuyến và CSS bên ngoài là CSS nội tuyến được xử lý nhanh hơn vì nó chỉ yêu cầu trình duyệt tải xuống 1 tệp trong khi .
CSS nội tuyến hay CSS nội bộ nào được ưu tiên hơn?khai báo quan trọng, kiểu nội tuyến có tính đặc hiệu cao/mức độ ưu tiên cao nhất , có nghĩa là chúng sẽ ghi đè hầu hết các quy tắc khác trong biểu định kiểu bên trong và bên ngoài. CSS từ các kiểu nội tuyến của chúng tôi sẽ ghi đè lên CSS từ kiểu bên trong, vì vậy cả hai đoạn văn sẽ có màu đỏ.
Có ghi đè CSS bên ngoài hoặc nội bộ không?Nó hoạt động theo kiểu phản trực giác, vì vậy tôi chỉ giải thích thêm. các kiểu nội tuyến ghi đè CSS nội bộ và CSS nội bộ ghi đè các tệp CSS bên ngoài và các tệp CSS bên ngoài ghi đè các giá trị mặc định của trình duyệt. Một cách để nghĩ về nó giống như các lớp. Phong cách càng “gần” với phần tử thì nó càng có mức độ ưu tiên cao hơn. |