Cho dù đó là thông qua tùy chọn chủ đề WordPress hay chức năng JavaScript, các nhà phát triển giao diện người dùng đôi khi phải triển khai mã CSS động cho một trang
Ví dụ: giả sử việc nhấp vào nút chuyển đổi menu sẽ chuyển danh sách menu giữa các trạng thái
0 sang 1Hoặc bạn muốn tự động điều chỉnh bố cục cột chủ đề WordPress dựa trên việc sử dụng khu vực tiện ích hoặc có các cột tiện ích chân trang linh hoạt
Mặc dù luôn có nhiều cách để lột da một con mèo, nhưng cách đó không bao giờ liên quan đến CSS nội tuyến
Làm rõ về thuật ngữ
Có ba cách để đưa CSS vào một trang web. CSS bên ngoài, CSS bên trong và CSS nội tuyến
CSS bên ngoài
CSS bên ngoài xảy ra khi tệp biểu định kiểu được tham chiếu trong phần đầu của tài liệu. Ví dụ
CSS nội bộ
Đây là khi bạn đưa trực tiếp CSS của trang cụ thể vào phần đầu của tài liệu. Ví dụ
CSS nội tuyến [cái xấu mà bạn không bao giờ nên sử dụng]
Đây là khi bạn áp dụng CSS trực tiếp vào phần tử HTML. Ví dụ
This CSS can't be overridden without a hacky !important flag. ¯\_[ツ]_/¯
Trái ngược với những gì bạn mong đợi khi xem xét tên của hàm, wp_add_inline_style thực sự hỗ trợ việc thêm CSS nội bộ vào trang chứ không phải CSS nội tuyến
Tại sao không phải CSS nội tuyến?
1. Không có cách nào để thao tác các lớp giả.
2. Cần một lá cờ quan trọng để ghi đè.
3. Nếu một. cờ quan trọng được sử dụng nội tuyến, bạn cần JavaScript để ghi đè. Barf.
Mặc dù về mặt kỹ thuật, nó hoạt động nhưng có một lý do khiến các trang web bao gồm phần lớn các kiểu CSS của họ trong các tệp bên ngoài chứ không phải CSS nội tuyến. CSS nội tuyến không linh hoạt lắm, ngay cả với liều lượng rất nhỏ
Các trường hợp sử dụng "nội tuyến" phổ biến và cách tránh
Trong hầu hết mọi trường hợp, thêm một lớp cơ thể là cách tốt nhất để thêm các kiểu động. Ở những người khác, đặc biệt là khi có liên quan đến “hình ảnh nổi bật” hoặc màu tùy chỉnh, CSS nội bộ là lựa chọn hợp lý
Menu chuyển đổi
Tôi không thể nói cho bạn biết bao nhiêu lần tôi đã thấy mã jQuery được viết như thế này
$[ ".menu-toggle" ].click[function[] { $[ ".menu" ].toggle[]; }];
Về cơ bản, chức năng chuyển đổi jQuery chuyển đổi phần tử đã chọn giữa các trạng thái nội tuyến
1 và 0Sự cố giới hạn chức năng chuyển đổi ở trạng thái hiển thị/ẩn đơn giản trở lại linh hoạt. Nếu bạn muốn làm gì khác ngoài hiện/ẩn menu thì sao?
Thay vào đó, chuyển đổi một lớp cơ thể sẽ vượt trội hơn rất nhiều
$[ ".menu-toggle" ].click[function[] { $[ "body" ].toggleClass[ "menu-toggled" ]; }];
Từ đó, bạn có thể viết đoạn CSS kèm theo sau để chuyển đổi hiển thị menu
.menu-toggled .menu { display: block; }
Giả sử bạn cũng muốn thay đổi màu nền của cơ thể thành màu vàng. Chỉ cần thêm những điều sau đây
.menu-toggled { background: yellow; }
Một trường hợp hoàn toàn ngẫu nhiên, chắc chắn, nhưng nó thể hiện sự linh hoạt của kỹ thuật. Đối với cả bạn và người dùng chủ đề của bạn
Cửa sổ bật lên cuộn xuống
Bạn đã bao giờ cuộn xuống một trang và nhận thấy các phần khác nhau của trang dường như trượt vào từ bên ngoài màn hình chưa?
Nếu bạn đã xem qua các công cụ phát triển web của trình duyệt, có thể bạn sẽ nhận thấy có JavaScript thao túng vị trí ngang trong thời gian thực
Điều này cũng không cần thiết
Thay vào đó, hãy đặt vị trí ban đầu của div ngoài trang trong biểu định kiểu của bạn, sau đó kích hoạt một lớp trên div sau khi người dùng đã cuộn đến điểm kích hoạt. Sau đó, lớp kích hoạt sẽ đặt vị trí của div thành điểm mong muốn, sử dụng các chuyển đổi CSS để bắt chước JavaScript trực tiếp thao tác định vị bằng CSS nội tuyến
Bạn cũng có thể muốn cung cấp một dự phòng để những người đã tắt JavaScript có thể thực sự nhìn thấy mọi thứ như thể chúng luôn ở trạng thái "cuộn trong", nhưng đó là một cuộc tranh luận hoàn toàn khác
Hình ảnh nổi bật và Hình nền tiêu đề
Điều này tôi dễ tha thứ hơn một chút, bởi vì khi người dùng đặt hình ảnh nổi bật làm hình nền tiêu đề của một bài đăng đơn lẻ, sẽ an toàn khi cho rằng họ muốn… sử dụng hình ảnh đó làm hình nền CSS
Thậm chí, vẫn có một giải pháp thay thế tốt hơn, nhờ wp_add_inline_style[]
Một ví dụ thú vị có thể được tìm thấy trong chủ đề Twenty Fifteen, sử dụng Ảnh nổi bật trong điều hướng một bài đăng
kết thúc
Xin nhắc lại, không bao giờ có trường hợp CSS nội tuyến
Bạn cung cấp cho tôi [những gì bạn nghĩ là] một trường hợp sử dụng chắc chắn thành công cho CSS nội tuyến trong các chủ đề WordPress và tôi sẽ cung cấp cho bạn một giải pháp thay thế linh hoạt hơn nhiều với CSS bên ngoài hoặc bên trong
Kể từ giữa những năm 1990, các nhà phát triển web đã có quyền kiểm soát ngày càng tăng đối với việc trình bày các trang web mà họ phát triển. Điều này phần lớn là do sự ra đời của CSS [cascading style sheet] và việc áp dụng nó giữa các nhà cung cấp trình duyệt lớn, cả trong quá khứ và hiện tại. Mặc dù việc áp dụng đặc tả CSS không phải là không có vấn đề nhưng nó đã giúp các nhà phát triển web có thể xây dựng các trang web và giao diện người dùng hấp dẫn và giàu trí tưởng tượng. Kể từ khi CSS ra đời, đã có một số cách khác nhau để thay đổi cách trình bày các phần tử trong tài liệu HTML hoặc XML
- Các kiểu có thể được khai báo trong một tệp riêng biệt và được liên kết từ tài liệu HTML. Các kiểu được khai báo trong tệp bên ngoài này sẽ được phân tích cú pháp và áp dụng cho các phần tử có liên quan trong tài liệu HTML;
- Các kiểu có thể được nhúng trực tiếp vào tài liệu HTML. Các kiểu này phải được lồng giữa các thẻ và sẽ được áp dụng cho tài liệu HTML theo cách tương tự như các kiểu có trong biểu định kiểu bên ngoài;
- Các kiểu có thể được nhúng trực tiếp vào các phần tử trong HTML bằng cách sử dụng thuộc tính kiểu. Các kiểu này được hiển thị theo cách tương tự như các kỹ thuật được xác định ở trên, mặc dù trên cơ sở từng phần tử.
This is a heading
Kỹ thuật đầu tiên được xác định ở trên nói chung là phương pháp ưa thích để tạo kiểu nội dung trên các trang web. Nó được nhiều người coi là giải pháp sạch nhất và dễ bảo trì nhất vì nó tạo thành sự tách biệt rõ ràng giữa cấu trúc [HTML] và kiểu dáng [CSS]. Phương thức thứ hai không được hoạt động khác với phương thức thứ nhất. Tuy nhiên, nó thể hiện một vấn đề tiềm ẩn về khả năng bảo trì vì HTML và các kiểu liên kết được liên kết chặt chẽ với nhau. Điều này có thể khiến việc phân chia công việc giữa các thành viên khác nhau trong nhóm trở nên khó khăn hơn và có thể làm phình to tệp HTML. Phương pháp thứ ba được xác định ở trên trình bày trường hợp có vấn đề nhất. Nếu các kiểu được nhúng trực tiếp vào các thành phần HTML bằng cách sử dụng thuộc tính kiểu thì HTML có thể trở nên khó đọc [và do đó khó duy trì] và có thể gây ra các vấn đề về khả năng truy cập cho một số khách truy cập vào trang web của bạn. Các phần sau cố gắng xác định một số vấn đề liên quan đến kiểu nội tuyến
khả năng bảo trì
Trong 20 năm qua, các chuyên gia trong lĩnh vực phát triển web phía máy khách đã bày tỏ lo ngại về việc sử dụng các kiểu nội tuyến. Các nhà phát triển thường thấy rằng việc duy trì các tài liệu HTML phức tạp trở nên khó khăn hơn đáng kể nếu một lượng lớn dữ liệu trình bày được nhúng trong nguồn tài liệu. Phương pháp ưa thích của nhiều người là sử dụng các biểu định kiểu bên ngoài. Các kiểu được khai báo trong biểu định kiểu bên ngoài được áp dụng bằng cách tham chiếu các loại phần tử, lớp và id duy nhất trong tài liệu HTML. Có thể nói rằng các kiểu được khai báo trong các biểu định kiểu bên ngoài là 'không phô trương' vì chúng không được liên kết chặt chẽ với các trang hoặc thành phần cụ thể. Đối với nhiều người, việc tách cấu trúc [HTML] và trình bày [CSS] này là một bước hợp lý để cải thiện khả năng bảo trì
khả năng tiếp cận
Một số người sẽ sử dụng biểu định kiểu tùy chỉnh khi duyệt internet. Những người bị mù màu nặng hoặc khiếm thị khác có thể gặp khó khăn khi đọc nội dung trực tuyến và rất có thể sẽ sử dụng biểu định kiểu tùy chỉnh. Biểu định kiểu tùy chỉnh được lưu trữ trên máy tính của người dùng và sẽ được họ sử dụng để xem nhiều [nếu không phải tất cả] trang web trên internet. Chúng giúp mọi người có thể xác định các kết hợp màu sắc và kích thước phông chữ giúp họ dễ dàng đọc nội dung trên các trang web một cách thoải mái. Các kiểu được nhúng hầu như sẽ luôn ghi đè các biểu định kiểu được liên kết bên ngoài [bao gồm các biểu định kiểu tùy chỉnh, do người dùng xác định]. Vì lý do này, nên tránh sử dụng các kiểu nội tuyến. Ví dụ: nếu kích thước phông chữ của tiêu đề được khai báo nội tuyến, một người cần làm cho phông chữ lớn hơn bằng cách sử dụng biểu định kiểu tùy chỉnh sẽ khó [nếu không muốn nói là không thể] làm như vậy. Điều này có thể ngăn mọi người truy cập nội dung trên trang web của bạn theo cách họ cảm thấy thoải mái nhất
Sự kết luận
Trong những năm gần đây, một số trình duyệt phổ biến nhất đã cho phép ghi đè BẤT KỲ kiểu nào trong một trang web [bao gồm cả kiểu nội tuyến]. Đây là một điều thực sự hứa hẹn cho khả năng tiếp cận. Tuy nhiên, những người gặp khó khăn khi sử dụng các trình duyệt cũ hơn hoặc ít phổ biến hơn có nhiều khả năng gặp sự cố với kiểu nội tuyến. Tóm lại, tôi mong các nhà phát triển lưu ý đến khả năng truy cập khi tạo các kiểu CSS cho các dự án phát triển web. Thực sự không khó để tách các kiểu CSS khỏi đánh dấu HTML. Thật ra, điều ngược lại khá đúng. Nếu các quy tắc CSS được khai báo trong biểu định kiểu bên ngoài, đánh dấu HTML kết quả có khả năng mang lại khả năng quản lý được cải thiện đáng kể giống như CSS thực tế được sử dụng để tạo kiểu cho trang web. Tuy nhiên, điều quan trọng hơn là ảnh hưởng của điều này đối với khả năng truy cập trang web của bạn. Nếu tất cả các kiểu được chứa trong biểu định kiểu được liên kết bên ngoài, mọi người sẽ có nhiều khả năng ghi đè cách trình bày mặc định của các phần tử trên trang. Điều này có khả năng giúp một số khách truy cập vào trang web của bạn tương tác với nội dung bên trong dễ dàng hơn
đọc thêm
Bắt đầu xây dựng khả năng truy cập vào các dự án của bạn ngay từ đầu để tiết kiệm thời gian và tiền bạc, đừng để nó tồn đọng và để nó tích tụ bụi. khoan nó trong
Nếu bạn muốn Nomensa giúp bạn giải quyết các thách thức về khả năng truy cập hoặc cung cấp cho bạn bản đánh giá khả năng truy cập trang web/ứng dụng dành cho thiết bị di động của bạn, vui lòng liên hệ
Bạn có thể gọi cho chúng tôi theo số +44 [0] 117 929 7333 hoặc gửi biểu mẫu ngắn này. Trong thời gian chờ đợi, hãy xem toàn bộ các dịch vụ truy cập web mà chúng tôi cung cấp