Làm thế nào để bạn chọn cha mẹ đầu tiên trong css?
Tôi không nhớ chính xác thời điểm nữa. Nhưng tôi nhớ rằng một ngày nọ, tôi vừa hoài nghi vừa thất vọng khi nhận ra rằng không có cách nào để chọn phần tử gốc của một phần tử trong CSS Show Đợi đã, cái gì? . Tại sao? Rõ ràng, tôi không đơn độc. Ai đã từng học CSS chắc cũng từng rơi vào hoàn cảnh tương tự và tự đặt cho mình câu hỏi tương tự. Tại sao chúng ta không có bộ chọn cha trong CSS? . dưới dạng một luồng, hết phần tử này đến phần tử khác khi chúng xuất hiện. Khi một phần tử được hiển thị cho chế độ xem, phần tử gốc của nó đã ở đó, bao gồm tất cả kiểu dáng đẹp mắt của nó. Vẽ lại cha mẹ - và do đó, tất cả các cha mẹ khác - sau đó thực tế sẽ yêu cầu một đánh giá khác của tất cả các bộ chọn cha mẹ. Điều này, Remy Sharp đã đồng ý trước đó, một lần nữa sẽ rất tốn kém trên công cụ kết xuất nên việc triển khai bộ chọn gốc là vô nghĩa Vì vậy, tất cả chúng tôi đều chấp nhận điều không thể tránh khỏi và cố gắng hết sức để giải quyết nó. Chúng tôi đã thêm các lớp trợ giúp vào các mẫu của mình thông qua logic phía sau hoặc bằng JavaScript ở giao diện người dùng. Và nó phần nào làm việc. Nhưng trong hầu hết mọi dự án, vẫn có một thời điểm mà bộ chọn gốc sẽ là giải pháp nhanh nhất và “trung thực nhất về mặt vật chất” đã đếnTất cả điều này đã thay đổi vào tháng trước khi Apple phát hành Safari 15. 4, với tư cách là trình duyệt đầu tiên, hỗ trợ lớp giả 1, là một trong những Bộ chọn cấp 4 của CSS. Jen Simmons và Jon Davis đã viết trong ghi chú phát hành: “Từ lâu, người ta đã nghĩ rằng một bộ chọn như vậy là không thể, nhưng nhóm của chúng tôi đã tìm ra cách để tối ưu hóa hiệu suất cao và đưa ra giải pháp linh hoạt không làm chậm trang.nó đây rồi. Bộ chọn cha. Nhưng 2 không chỉ hữu ích như một bộ chọn cha. Nó cũng mở ra nhiều cơ hội thú vị hơn. Nhưng trước tiên, hãy xem nó hoạt động như thế nàoLớp giả 2 lấy một danh sách bộ chọn tương đối và sau đó sẽ đại diện cho một phần tử nếu ít nhất một phần tử khác khớp với các bộ chọn trong danh sách. Nghe có vẻ quá phức tạp khi bạn viết nó ra, vì vậy đây là một ví dụ cơ bản. Giả sử bạn muốn chọn tất cả các phần tử 4 bao gồm phần tử 5, chẳng hạn như một biểu tượng. Bây giờ bạn có thể viết
Hãy thử bản demo CodePen – và đảm bảo xem nó trong Safari 15. 4. ;) Hoặc, nếu bạn muốn tạo phong cách khác cho bài viết nếu bài viết có tiêu đề bên trong và theo sau là một đoạn văn
Bạn cũng có thể kết hợp 2 với lớp giả 7 để chọn một phần tử nếu nó không chứa một số phần tử khác, trong trường hợp này là tiêu đề
Cũng có thể sử dụng các lớp giả như 8, 9 hoặc 0. Ví dụ: bạn có thể tạo kiểu cho phần tử biểu mẫu khi hộp kiểm bên trong đã được chọn 3Sau đó, bạn cũng có thể sử dụng bộ kết hợp anh chị em chung 1 để thay đổi kiểu dáng của biểu mẫu tùy thuộc vào số lượng hộp kiểm đã được chọn 5Hãy thử bản demo CodePen Mặc dù bản demo này có thể không phải là ví dụ thực tế nhất, nhưng tất cả điều này vẫn bắt đầu trở nên thú vị, phải không? sử dụng. phải điều chỉnh LướiLưới CSS thường hoạt động từ vùng chứa trong và trước 2, thực sự không có cách nào để điều chỉnh Lưới dựa trên nội dung bên trong. Điều gì sẽ xảy ra nếu chúng ta có thể sử dụng 2 để điều chỉnh bố cục Lưới CSS của vùng chứa dựa trên số lượng phần tử bên trong vùng chứa đó? . Heydon Pickering đã viết bài báo cuối cùng về họ. Bằng cách kết hợp các lớp giả 4 và 5 bên trong danh sách bộ chọn 2 của chúng tôi, chúng tôi có thể điều chỉnh bố cục bằng cách “đếm” các phần tử bên trong. Ví dụ, đây là cách chúng ta có thể nhắm mục tiêu một lưới có hai phần tử bên trong 1Vì vậy, nếu vùng chứa Grid của chúng ta có một phần tử bên trong vừa là phần tử con thứ hai vừa là phần tử con cuối cùng của vùng chứa, thì lưới phải có hai cột. Điều tương tự cũng hoạt động với ba cột 2Cuối cùng, chúng ta cũng có thể tạo bố cục lưới có bốn cột nếu vùng chứa có bốn thành phần trở lên bên trong. Để đạt được điều này, chúng tôi chọn ít nhất một phần tử là phần tử thứ tư hoặc một trong tất cả các phần tử sau 3Đây là bản demo CodePen một lần nữa Như bạn có thể thấy, có rất nhiều trường hợp sử dụng tuyệt vời cho 2 với tư cách là bộ chọn chính và có vẻ như đây chỉ là phần nổi của những gì mọi người sẽ nghĩ ra. 2 cho phép chúng tôi tạo kiểu cho các phần tử dựa trên việc phần tử con của phần tử được chọn, có tiêu điểm hay liệu nó có hiện diện hay không. Và chúng ta thậm chí có thể nhắm mục tiêu một phần tử dựa trên số phần tử con mà nó có. Tất cả điều này sẽ cho phép các thành phần linh hoạt hơn nhiều. Chỉ cần nghĩ đến tất cả các biến thể của nội dung và bối cảnh có thể tồn tại bên trong một hệ thống thiết kế và bạn sẽ biết điều này sẽ có giá trị như thế nào.Nhưng chờ đợi, có nhiều hơn nữa có như một bộ chọn anh chị em trước đóBởi vì 2 chấp nhận một danh sách bộ chọn tương đối, bạn cũng có thể chọn một phần tử nếu nó có một phần tử khác theo sau nó. Hay nói cách khác, chúng ta có thể sử dụng 2 để chọn phần tử anh chị em trước đó của một phần tử 8Dùng thử trên CodePen Một lần nữa, có rất nhiều trường hợp sử dụng thực tế cho việc này. Ví dụ: bạn có thể tạo kiểu khác cho hình ảnh khi có chú thích bên dưới hình ảnh đó 9Khả năng sử dụng 2 theo những cách hữu ích và sáng tạo để viết CSS linh hoạt và mạnh mẽ hơn dường như là vô tận. Và như trường hợp của rất nhiều tính năng mới hiện đang được thêm vào CSS, tôi nóng lòng muốn xem những cách sử dụng quảng cáo nào khác cho 2 mà tất cả các bạn nghĩ ra. Một ví dụ gần đây là bản demo tuyệt vời này của Michelle Barker, nơi cô ấy kết hợp các rãnh lưới động với bộ chọn 2Kiểm tra hỗ trợHiện tại, Safari là trình duyệt duy nhất hỗ trợ 2. Tuy nhiên, trong phiên bản 101 sắp tới của Chrome, bạn sẽ có thể kích hoạt nó thông qua cờ các tính năng của Nền tảng web thử nghiệm. Mặc dù điều này đầy hứa hẹn, nhưng chắc chắn sẽ mất một thời gian ngắn cho đến khi 2 được đa số trình duyệt hỗ trợ. Trong thời gian chờ đợi, một lần nữa chúng tôi có thể sử dụng tính năng nâng cao lũy tiến để sử dụng 2 trong các trình duyệt hỗ trợ tính năng này. Như Michelle Barker lưu ý, bạn có thể kiểm tra hỗ trợ cho 2 bằng truy vấn tính năng 38 bằng cách sử dụng hàm 39 0Do đó, bạn có thể nhắm mục tiêu hỗ trợ các trình duyệt theo cách thân thiện trong tương lai. Bởi vì một khi 2 được hỗ trợ bởi một trình duyệt khác, mã của bạn cũng sẽ tự động hoạt động trong trình duyệt nàyBạn có thêm ý tưởng nào về cách sử dụng 2 không?
Làm cách nào để chọn con đầu lòng bằng CSS?Các. bộ chọn con đầu tiên được sử dụng để chọn bộ chọn đã chỉ định, chỉ khi đó là bộ chọn con đầu tiên của bộ chọn cha.
CSS có bộ chọn gốc không?Các phiên bản đầu tiên của bộ chọn cấp độ gốc đã được soạn thảo cho CSS3, chỉ được hoãn lại. Cuối cùng, các. has() lớp giả đã được xác định chính thức trong Bộ chọn CSS cấp 4 . |