Chủ đề nâng cao CSS là gì?
Chủ tịch WebFX. Bill có hơn 25 năm kinh nghiệm trong ngành tiếp thị Internet chuyên về SEO, UX, kiến trúc thông tin, tự động hóa tiếp thị, v.v. Nền tảng của William về máy tính khoa học và giáo dục từ Shippensburg và MIT đã cung cấp nền tảng cho MarketingCloudFX cũng như các dự án nghiên cứu và phát triển quan trọng khác tại WebFX
Show Trong hướng dẫn này, tôi sẽ nói về ba kỹ thuật CSS3 nâng cao Xem bản trình diễnĐây là một trang demo duy nhất của tất cả mã tôi sẽ sử dụng trong hướng dẫn này. Nó được xem tốt nhất trên các trình duyệt WebKit (như Google Chrome và Apple Safari) để bạn có thể thấy các thuộc tính hoạt ảnh CSS3 ul:first-child li:nth-child(odd)1 đang hoạt động. Xem bản trình diễn 1. Bộ chọn nâng caoMột trong những tính năng quan trọng nhất nhưng ít được thổi phồng của CSS3 là bộ chọn nâng cao mới. Tôi chắc rằng tôi không cần phải nói cho bạn biết lý do tại sao có thể nhắm mục tiêu các phần tử HTML cụ thể mà không phải sử dụng thuộc tính ID lại là một điều tốt. Theo truyền thống, bộ chọn CSS luôn được. ID ( ul:first-child li:nth-child(odd)2), lớp (_______0_______3), phần tử HTML (chẳng hạn như ul:first-child li:nth-child(odd)4) và đôi khi là lớp giả như ul:first-child li:nth-child(odd)5 hoặc ul:first-child li:nth-child(odd)6 Vấn đề với công thức này là gần như mọi phần tử cần phải có một cái móc. Điều này có nghĩa là để hiểu cụ thể những gì bạn đang chọn, phần tử cần phải có ID (nếu đó chỉ là một phần tử) hoặc một lớp (nếu đó là một nhóm phần tử) để trình duyệt biết bạn đang nói về cái gì. Khi bạn bắt đầu làm việc với các bố cục rất phức tạp, số lượng ID và lớp bạn cần thêm vào đánh dấu của mình bắt đầu làm bạn (và các trang web của bạn) chậm lại Nhập CSS3. Với nhiều lớp giả mới để lựa chọn, đánh dấu và thời gian phản hồi trang của bạn sẽ cảm ơn bạn. Để chứng minh một số bộ chọn mới này, tôi đã đánh dấu một ví dụ đơn giản. hai danh sách không có thứ tự
Khối mã sau đây là một số CSS cơ bản chỉ dành cho hình ảnh Tất cả những gì tôi đã làm là đặt lại lề và phần đệm của mọi thành phần bằng cách sử dụng bộ chọn chung ( ul:first-child li:nth-child(odd)7) và áp dụng một số kiểu cơ bản cho cả hai danh sách không có thứ tự________số 8_______ Bây giờ là lúc để viết bộ chọn nâng cao đầu tiên của chúng tôi. (Đừng sợ. ) Phần đầu tiên của bộ chọn của chúng tôi chỉ nói chọn ul:first-child li:nth-child(odd)8 là phần tử con đầu tiên của một phần tử khác (trong trường hợp này là ul:first-child li:nth-child(odd)9) Sau đó, nó tiếp tục chọn các mục danh sách lẻ (thứ nhất, thứ ba, thứ năm, v.v.) trong danh sách không có thứ tự đầu tiên. Như bạn có thể thấy, bằng cách sử dụng kết hợp các lớp giả và bộ chọn phần tử HTML, chúng tôi đã quản lý để chỉ chọn danh sách đầu tiên trong hai danh sách không có thứ tự giống hệt nhau ul:first-child li:nth-child(odd) Một cách khác để thực hiện việc này được hiển thị bên dưới, cách này thực hiện tương tự ngoại trừ lần này thực hiện bằng cách chọn ul:first-child li:nth-child(odd)8 đầu tiên trên trang, bất kể đó có phải là phần tử con đầu tiên của phần tử khác hay không ul:first-of-type li:nth-child(odd) Khi bạn tiến xa hơn trong việc sử dụng bộ chọn CSS, bạn sẽ thấy rằng có nhiều cách để thực hiện cùng một việc và việc quyết định sử dụng cách nào là tùy thuộc vào bạn. Với danh sách không có thứ tự đầu tiên được chọn, chúng tôi có thể tạo kiểu cho các mục danh sách lẻ (chúng tôi sẽ cung cấp cho chúng một màu nền khác với các mục danh sách khác) ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; } Tuy nhiên, đó không phải là cách duy nhất để sử dụng ul:first-of-type li:nth-child(odd)1 Chúng ta cũng có thể sử dụng nó để định kiểu các phần tử riêng lẻ dựa trên vị trí của chúng. Khối mã bên dưới cung cấp cho mục danh sách thứ 5 của danh sách không có thứ tự đầu tiên trên trang web của chúng tôi có nền màu hồng body > ul:first-child li:nth-child(5) { background: #ffd2d2; }Ví dụ khác, hãy thêm một biểu mẫu web vào tài liệu HTML của chúng tôi Xin lưu ý rằng một trong các phần tử đầu vào (_______13_______2) có thuộc tính Boolean là ul:first-of-type li:nth-child(odd)3 để tôi có thể chứng minh lớp giả ul:first-of-type li:nth-child(odd)4 sau này Khối mã sau đây chỉ là một số kiểu cơ bản cho biểu mẫu web của chúng tôi. Điều này sẽ làm là loại bỏ một số kiểu dáng mặc định trên biểu mẫu và làm nổi các nhãn ở bên trái và các đầu vào ở bên phải form { clear: both; width: 95%; } form p { margin-bottom: 15px; clear: both; overflow: hidden; } form label { float: left; } form input, form textarea { width: 70%; float: right; border: 1px solid #000; } form textarea { height: 50px; } Bây giờ chúng ta sẽ tận dụng thuộc tính ul:first-of-type li:nth-child(odd)3 trên đầu vào ul:first-of-type li:nth-child(odd)6 để thêm nền xám đậm hơn cho nó input:disabled { background: #e7e7e7; } Tiếp theo, chúng ta có một bộ chọn trông có vẻ phức tạp, nhưng nó thực sự khá đơn giản. Bằng cách sử dụng lớp giả ul:first-of-type li:nth-child(odd)7, chúng tôi đang chọn mọi thứ bên trong một đoạn văn cũng nằm trong một biểu mẫu ngoại trừ các phần tử ul:first-of-type li:nth-child(odd)8 và ul:first-of-type li:nth-child(odd)9 Về cơ bản, điều này sẽ làm là nhắm mục tiêu tất cả các trường biểu mẫu không phải là vùng văn bản form p *:not(textarea):not(label) { height: 20px; } Trong thực tế, sẽ hiệu quả hơn nếu sử dụng ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }0 làm bộ chọn trong trường hợp cụ thể của chúng tôi, nhưng tôi đã chọn làm theo cách này để chứng minh bộ chọn ul:first-of-type li:nth-child(odd)7 và cách chúng tôi có thể xâu chuỗi các lớp giả khác nhau lại với nhau để tạo ra một bộ chọn cụ thể hơn. Đó là nó cho bộ chọn nâng cao Chúng tôi đã đề cập rất nhiều, nhưng chúng tôi vẫn còn hai kỹ thuật nữa để xem xét. Hãy bắt đầu với những 2. Ảnh độngHoạt hình trên web từ lâu đã là lãnh địa của Flash và JavaScript. Giờ đây, với CSS3, bạn có thể thực hiện các loại hoạt ảnh tương tự chỉ với một vài dòng mã. Để trình bày các kỹ thuật hoạt hình, hãy thêm một phần khác vào đánh dấu của chúng tôi. một div đơn giản không có lớp hoặc ID, và bên trong nó, một ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }2 - không có gì quá cầu kỳ * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }0 Vì đó là div đầu tiên của chúng tôi, chúng tôi có thể sử dụng lớp giả ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }3 để chọn nó. Tôi đã tạo cho nó một hộp màu xanh 200px x 200px để dễ nhìn. Tôi cũng đã tạo kiểu cho ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }4 cho hình ảnh * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }1Bây giờ đến phần thú vị. Để tạo hoạt ảnh, hãy thêm ba dòng sau vào bộ chọn ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }5. Bạn sẽ chưa thấy gì, nhưng điều này tạo tiền đề cho chức năng hoạt ảnh, chức năng này sẽ khởi động khi hộp được di chuột vào * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }2 Tôi đang sử dụng ba thuộc tính để xác định hai hoạt ảnh cho hộp ( ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }6 và ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }7). Bằng cách thêm dấu phẩy giữa các thuộc tính của từng tùy chọn, tôi có thể phân biệt cái nào sẽ được áp dụng cho hoạt ảnh nào. Giá trị ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }8 xác định thuộc tính CSS nào sẽ được làm động (nền và đường viền) Thuộc tính ul:first-child li:nth-child(odd) { background-color: #d2fffe; border: 1px solid #000; }9 xác định khoảng thời gian chuyển đổi hoạt ảnh sẽ kéo dài — trong trường hợp này là 2 giây cho nền và 1 giây cho đường viền. body > ul:first-child li:nth-child(5) { background: #ffd2d2; }0 cuối cùng cho trình duyệt biết nên sử dụng phương trình nào cho quá trình chuyển đổi. Vì vậy, chúng tôi đã tạo tiền đề cho hoạt ảnh, nhưng chúng tôi chưa thêm bất kỳ hoạt ảnh nào Hãy khắc phục điều đó bằng cách khai báo các thuộc tính ul:first-child li:nth-child(odd)5 của chúng ta * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }3 Bây giờ, khi bạn di chuột qua hộp màu xanh của chúng tôi, nền và đường viền sẽ thay đổi và lớn dần. Đó là nó Chúng tôi không phải thêm bất kỳ mã nào khác, hoạt ảnh sẽ tự động chạy. Chúng ta vẫn chưa hoàn thành, hãy thêm một hoạt ảnh ví dụ nữa vào phần đánh dấu * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }4 Tôi đã sử dụng một chút Javascript nội tuyến để khi div được nhấp vào, nó sẽ tự xoay quanh 360 độ (trong sản xuất, bạn sẽ muốn thực hiện việc này một cách kín đáo bằng cách sử dụng các phương thức chọn JavaScript DOM — nhưng điều đó nằm ngoài phạm vi của hướng dẫn này Tiếp theo đối với CSS, chúng tôi sẽ sử dụng lớp giả body > ul:first-child li:nth-child(5) { background: #ffd2d2; }2 (vì chúng tôi muốn nhắm mục tiêu div cuối cùng trong HTML của mình) * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }5 Những điều cần lưu ý về khối mã CSS ở trên là thuộc tính nền sử dụng thuộc tính body > ul:first-child li:nth-child(5) { background: #ffd2d2; }3 để cung cấp cho div một nền bán trong suốt. Một điều khác cần lưu ý là việc sử dụng tốc ký thuộc tính body > ul:first-child li:nth-child(5) { background: #ffd2d2; }4 để tạo hiệu ứng xoay của divVà với điều đó, chúng ta đã hoàn thành hoạt ảnh. Đó là toàn bộ hơi nước trước kỹ thuật CSS3 cuối cùng mà chúng tôi sẽ giới thiệu. truy vấn phương tiện truyền thông 3. Truy vấn phương tiện truyền thôngKỹ thuật CSS3 nâng cao thứ ba và cũng là kỹ thuật cuối cùng mà tôi sẽ thảo luận là truy vấn phương tiện. Họ là ai? Ưu điểm của điều này là chúng tôi có thể tạo các quy tắc mới về cách hiển thị trang web tùy thuộc vào tình huống của người dùng của chúng tôi. Ví dụ: nếu chiều rộng khung nhìn của họ mỏng hơn 800 pixel, chúng tôi có thể điều chỉnh bố cục cho phù hợp, mang lại cho chúng tôi bố cục thực sự uyển chuyển và linh hoạt. Vì vậy, làm thế nào để chúng ta làm điều đó? Dễ dàng * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }6 Nếu bạn mở bản trình diễn trong trình duyệt web hỗ trợ truy vấn phương tiện, bạn sẽ thấy rằng khi bạn giảm kích thước của trình duyệt, các hộp sẽ thay đổi kích thước, điều này thật tuyệt Tuy nhiên, sẽ không tuyệt sao nếu khi chiều rộng của trình duyệt giảm xuống, hai danh sách ngừng trôi? . Và CSS cho điều đó như sau * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }7Trong khi chúng tôi đang ở đó, hãy thực hiện một số thay đổi khác Trong khối mã sau, chúng tôi sẽ làm cho div đầu tiên biến mất nếu chế độ xem nhỏ hơn 800px * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }8 Bây giờ khi trình duyệt giảm xuống 800px, hộp màu xanh sẽ biến mất. Chúng tôi thậm chí có thể có nhiều quy tắc body > ul:first-child li:nth-child(5) { background: #ffd2d2; }5 trong một tài liệu Chúng ta sẽ làm gì khác nếu chiều rộng của trình duyệt bị giảm xuống còn 600px? * { margin: 0; padding: 0; } ul { list-style-type: none; margin: 2%; border: 1px solid #ccc; padding: 5px; width: 44%; float: left; } ul li { margin-bottom: 5px; padding: 2px; }9 Bây giờ, khi bạn thu nhỏ trình duyệt hơn một chút (dưới 600px) — giống như phép thuật — danh sách không có thứ tự thứ hai sẽ biến mất. Đây là một số kiểu khi chiều rộng giảm xuống 400px ul:first-child li:nth-child(odd)0 Tôi hy vọng bạn nhìn thấy tiềm năng của các truy vấn phương tiện, đặc biệt là với số lượng ngày càng tăng của cách mọi người xem trang web (chẳng hạn như thông qua thiết bị di động) kết thúcBây giờ bạn đã biết ba kỹ thuật CSS3 nâng cao. Hãy tự cho mình một cái vỗ nhẹ vào lưng, bạn xứng đáng với điều đó Điều quan trọng cần lưu ý là mặc dù bộ chọn và truy vấn phương tiện sẽ hoạt động trong hầu hết các trình duyệt hiện đại (Firefox, Safari, Chrome), hoạt hình sẽ chỉ hoạt động trên các trình duyệt dựa trên Webkit như Safari và Chrome Đọc thêm
Nội dung liên quan
Trang web của bạn SEO như thế nào?Sử dụng công cụ miễn phí của chúng tôi để tính điểm của bạn trong vòng chưa đầy 60 giây Nhận điểm SEO của bạnlàm việc với chúng tôi
Tiếp tục đọc
Nhận bài viết qua emailHãy là người đầu tiên biết khi chúng tôi xuất bản một bài đăng blog mới Mỗi ngày một lần một tuần Cập nhật Tham gia cùng 200.000 nhà quản lý tiếp thị và đăng ký Doanh thu hàng tuần Luôn kết nối với chúng tôiTuyển dụng WebFXTham gia sứ mệnh của chúng tôi để cung cấp các dịch vụ tiếp thị kỹ thuật số hàng đầu trong ngành cho các doanh nghiệp trên toàn cầu - đồng thời xây dựng kiến thức cá nhân của bạn và phát triển với tư cách cá nhân Kỹ thuật CSS nâng cao là gì?Tám mẹo CSS cho bố cục và hiệu ứng nâng cao . Tối đa hóa bộ chọn anh chị em CSS. Vấn đề. Bạn đang đánh mất cơ hội tối ưu hóa bằng cách không sử dụng bộ chọn anh chị em. . Định cỡ phần tử HTML nhất quán. . Các yếu tố chiều cao năng động. . Phần tử chiều rộng động. . Định tâm theo chiều dọc của nội dung động. . Cột có cùng chiều cao Tôi có thể học CSS nâng cao ở đâu?5 khóa học CSS (Grid, Flexbox và Sass) tốt nhất từ Udemy và Coursera năm 2022 . CSS và Sass nâng cao. Flexbox, Lưới, Ảnh động — Udemy. . CSS — Hướng dẫn đầy đủ 2022 (bao gồm. . Tạo kiểu nâng cao với thiết kế đáp ứng — Coursera. . Thiết kế trang web trong trình duyệt đáp ứng với HTML và CSS Những điều quan trọng nhất cần học trong CSS là gì?Đây là những gì bạn sẽ học. . Mô hình hộp. Mọi thứ được hiển thị bởi CSS là một hộp. . Bộ chọn. Để áp dụng CSS cho một phần tử, bạn cần chọn phần tử đó. . dòng thác. Đôi khi hai hoặc nhiều quy tắc CSS cạnh tranh có thể áp dụng cho một phần tử. . độ đặc hiệu. . Di sản. . Màu. . đơn vị định cỡ. . Cách trình bày Làm thế nào để học HTML và CSS nâng cao?Lộ trình học tập frontend Trở thành nhà phát triển web React frontend bằng cách học qua các khóa học tương tác. Lộ trình học tập phụ trợ Trở thành nhà phát triển phụ trợ bằng cách học qua các khóa học tương tác. . Bắt đầu một sân chơi thực hành. Thực hành mọi thứ bên trong trình duyệt mà không cần tải xuống/thiết lập |