CSS anh chị em của cha mẹ
Chúng tôi sử dụng bộ chọn anh chị em liền kề (+), nếu chúng tôi muốn khớp phần tử xuất hiện ngay sau bộ chọn đầu tiên. Ở đây, cả hai bộ chọn đều là con của cùng một phần tử cha Show
Cú pháp của bộ kết hợp anh chị em liền kề CSS như sau - Selector + Selector{ attribute: /*value*/ } Nếu chúng tôi muốn chọn anh chị em của cùng một cha mẹ bất kể vị trí của phần tử được chọn thứ hai, chúng tôi sử dụng bộ kết hợp anh chị em chung CSS Adrian Bece là nhà phát triển web toàn diện với kinh nghiệm sâu rộng về Thương mại điện tử. Anh ấy thích viết và nói về những công nghệ mới nhất và tốt nhất trên web … Thông tin thêm về Adrian ↬ Bản tin emailEmail (đập vỡ) của bạn
Mẹo hàng tuần về giao diện người dùng & UX.
Bộ chọn gốc đã nằm trong danh sách mong muốn của các nhà phát triển trong hơn 10 năm và nó đã trở thành một trong những tính năng CSS được yêu cầu nhiều nhất bên cạnh các truy vấn vùng chứa kể từ đó. Lý do chính khiến tính năng này không được triển khai trong thời gian này dường như là do những lo ngại về hiệu suất. Điều tương tự cũng được nói về các truy vấn bộ chứa và những truy vấn này hiện đang được thêm vào các phiên bản beta của trình duyệt, vì vậy những hiệu suất đó dường như không còn là vấn đề nữa Công cụ kết xuất trình duyệt đã được cải thiện khá nhiều kể từ đó. Quá trình kết xuất đã được tối ưu hóa đến mức các trình duyệt có thể xác định một cách hiệu quả những gì cần được kết xuất hoặc cập nhật và những gì không, mở đường cho một bộ tính năng mới và thú vị Brian Kardell gần đây đã thông báo rằng nhóm của anh ấy tại Igalia hiện đang tạo mẫu một bộ chọn 9 sẽ đóng vai trò là bộ chọn chính, nhưng nó có thể có phạm vi sử dụng rộng hơn nhiều ngoài nó. Cộng đồng nhà phát triển gọi nó là "bộ chọn gốc" và một số nhà phát triển đã chỉ ra rằng cái tên này không chính xác lắm. Một tên phù hợp hơn sẽ là bộ chọn quan hệ hoặc lớp giả quan hệ theo thông số kỹ thuật, vì vậy tôi sẽ đề cập đến 9 như vậy kể từ bây giờ trong bài viếtNhóm tại Igalia đã làm việc trên một số tính năng công cụ web đáng chú ý như truy vấn vùng chứa và lưới CSS, do đó, bộ chọn 9 có cơ hội nhìn thấy ánh sáng ban ngày, nhưng vẫn còn một chặng đường dài phía trướcĐiều gì làm cho bộ chọn quan hệ trở thành một trong những tính năng được yêu cầu nhiều nhất trong vài năm qua và các nhà phát triển đang khắc phục bộ chọn bị thiếu như thế nào? Các trường hợp sử dụng tiềm năngBộ chọn quan hệ sẽ hữu ích cho việc áp dụng kiểu có điều kiện cho các thành phần giao diện người dùng dựa trên nội dung hoặc trạng thái của phần tử con hoặc phần tử kế tiếp của nó trong cây DOM. Nguyên mẫu bộ chọn quan hệ sắp tới có thể mở rộng phạm vi và các trường hợp sử dụng cho các bộ chọn hiện có, cải thiện chất lượng và độ mạnh của CSS, đồng thời giảm nhu cầu sử dụng JavaScript để áp dụng các kiểu và lớp CSS cho các trường hợp sử dụng đó Hãy xem một vài ví dụ cụ thể để giúp chúng tôi minh họa nhiều trường hợp sử dụng tiềm năng Biến thể dựa trên nội dungMột số thành phần giao diện người dùng có thể có nhiều biến thể dựa trên các khía cạnh khác nhau — nội dung, vị trí trên trang, trạng thái con, v.v. Trong những trường hợp đó, chúng tôi thường tạo nhiều lớp CSS để bao gồm tất cả các biến thể có thể có và áp dụng chúng theo cách thủ công hoặc bằng JavaScript, tùy thuộc vào cách tiếp cận và ngăn xếp công nghệ Bốn biến thể thẻ tùy thuộc vào nội dung. Bố cục vùng chứa thẻ gốc phụ thuộc vào nội dung và vùng chứa hình ảnh thẻ được tạo kiểu khác nhau tùy thuộc vào việc vùng chứa hình ảnh có chú thích hình ảnh hay không. (Xem trước lớn)Ngay cả khi sử dụng phương pháp đặt tên CSS như BEM, các nhà phát triển cần theo dõi các lớp CSS khác nhau và đảm bảo áp dụng chúng một cách chính xác cho phần tử cha và, tùy chọn, cho các phần tử con bị ảnh hưởng. Tùy thuộc vào số lượng các biến thể, các kiểu thành phần có thể nhanh chóng vượt khỏi tầm kiểm soát và trở nên khó quản lý cũng như duy trì dẫn đến lỗi, vì vậy các nhà phát triển sẽ cần ghi lại tất cả các biến thể và trường hợp sử dụng bằng cách sử dụng các công cụ như Storybook Với bộ chọn CSS quan hệ, các nhà phát triển có thể viết kiểm tra nội dung trực tiếp bằng CSS và các kiểu sẽ được áp dụng tự động. Điều này sẽ làm giảm số lượng các lớp CSS biến thể, giảm khả năng xảy ra lỗi do lỗi của con người và các bộ chọn sẽ tự ghi lại bằng các kiểm tra điều kiện Kiểu dựa trên xác thựcCSS hỗ trợ các lớp giả đầu vào như 4 và 5 để nhắm mục tiêu các phần tử xác thực thành công và các phần tử xác thực không thành công, xin trân trọng. Được kết hợp với các thuộc tính đầu vào HTML như 6 và 7, nó cho phép xác thực biểu mẫu gốc mà không cần dựa vào JavaScriptTuy nhiên, việc nhắm mục tiêu các phần tử có 4 và 5 bị giới hạn trong việc nhắm mục tiêu chính phần tử đó hoặc phần tử liền kề của nó. Tùy thuộc vào thiết kế và cấu trúc HTML, các phần tử vùng chứa đầu vào hoặc các phần tử trước như phần tử 0 cũng cần áp dụng một số kiểuCác vùng chứa đầu vào email riêng lẻ thay đổi kiểu dựa trên tính hợp lệ của trạng thái đầu vào email. Khi tất cả các đầu vào được xác thực thành công, nút gửi (nằm ngay sau vùng chứa đầu vào cuối cùng trong DOM) sẽ được bật. (Xem trước lớn)Bộ chọn quan hệ sẽ mở rộng trường hợp sử dụng cho các lớp giả trạng thái đầu vào như 4 và 5 bằng cách cho phép phần tử cha hoặc các phần tử trước đó được tạo kiểu dựa trên giá trị đầu vàoĐiều này không chỉ áp dụng cho các lớp giả đó. Khi làm việc với API bên ngoài trả về các thông báo lỗi được thêm vào vùng chứa đầu vào, sẽ không cần phải áp dụng lớp CSS thích hợp cho vùng chứa. Bằng cách viết một bộ chọn quan hệ với điều kiện kiểm tra xem bộ chứa thông báo con có trống không, các kiểu thích hợp có thể được áp dụng cho bộ chứa Thêm sau khi nhảy. Tiếp tục đọc bên dưới ↓ Gặp gỡ Hội thảo trực tuyến Smashing về giao diện người dùng & giao diện người dùng, với các bài học thực tế, phiên trực tiếp, bản ghi video và phần Hỏi & Đáp thân thiện. Trên các hệ thống thiết kế, UX, hiệu suất web và CSS/JS. Với Brad Frost, Stephanie Troeth và rất nhiều người khác Phần tử conĐôi khi một phần tử cha hoặc các kiểu phần tử trước đó phụ thuộc vào trạng thái của phần tử đích. Trường hợp này khác với trạng thái xác thực vì trạng thái không liên quan chặt chẽ đến tính hợp lệ của đầu vào Giống như trong ví dụ trước, lớp giả 3 cho các phần tử đầu vào hộp kiểm và radio được giới hạn để nhắm mục tiêu vào chính phần tử đó hoặc phần tử liền kề của nó. Điều này không giới hạn ở các lớp giả như 3, 5, 6, 7, v.v. nhưng với bất kỳ thứ gì khác mà bộ chọn CSS có thể nhắm mục tiêu như tính khả dụng của phần tử cụ thể, thuộc tính, lớp CSS, id, v.v.Bộ chọn quan hệ sẽ mở rộng phạm vi và trường hợp sử dụng của bộ chọn CSS ngoài phần tử bị ảnh hưởng hoặc phần tử liền kề của nó Khi một hoặc nhiều hộp kiểm trong trình đơn thả xuống bộ lọc được chọn, nút này sẽ thay đổi biểu tượng để biểu thị trạng thái bộ lọc đang hoạt động trong nhóm. (Xem trước lớn)Chọn anh chị em trước đâyBộ chọn CSS bị giới hạn bởi hướng lựa chọn — có thể chọn phần tử con hoặc phần tử theo sau, nhưng không thể chọn phần tử cha hoặc phần tử trước đó Bộ chọn quan hệ cũng có thể được sử dụng làm bộ chọn anh chị em trước đó Ví dụ nhập nhãn nổi từ Google Material UI. Nhãn (anh chị em trước đó) được tạo kiểu dựa trên trạng thái giá trị và tiêu điểm của đầu vào. (Xem trước lớn)Bộ chọn /* Select image element that is a child of a figure element if figure element has a figcaption as a child */ figure:has(figcaption) img { /* .. */ } /* Select a button element that is a child of a form element if a child checkbox input element is checked */ form:has(input[type="checkbox"]:checked) button { /* .. */ } 8 nâng caoKhi làm việc với các phần tử được tải động và sử dụng bộ tải khung, thông thường sẽ chuyển đổi một lớp CSS đang tải trên phần tử gốc bằng JavaScript sau khi dữ liệu được tìm nạp và các thành phần được điền dữ liệu Bộ chọn quan hệ có thể loại bỏ nhu cầu về chức năng chuyển đổi lớp JavaScript CSS bằng cách mở rộng phạm vi và chức năng của lớp giả 8. Với bộ chọn quan hệ, các điều kiện cần thiết để hiển thị một phần tử có thể được xác định trong CSS bằng cách nhắm mục tiêu các phần tử HTML dữ liệu bắt buộc và kiểm tra xem phần tử đó có được điền dữ liệu hay không. Cách tiếp cận này sẽ hoạt động với các phần tử phức tạp và được lồng sâuTrình giữ chỗ Skeleton được hiển thị trên trang gốc cho đến khi tất cả các vùng chứa dữ liệu (các phần tử đoạn được lồng sâu) được điền dữ liệu. (Xem trước lớn)Đặc tả lớp giả CSS |