Thêm menu vào mẫu của bạn bằng CMS WordPress. Thanh điều hướng sử dụng CSS. Tạo menu và các mục menu tùy chỉnh thông qua bảng quản trị WordPress
Trong bài blog trước đó, tôi đã viết về những đổi mới thú vị phiên bản mới nhất WordPress là một cơ chế đặc biệt để tạo và quản lý các tệp . Bây giờ nó đã trở nên thuận tiện và dễ dàng hơn rất nhiều người dùng thông thường tạo các menu có độ phức tạp khác nhau, không chỉ bao gồm các trang hoặc danh mục blog mà còn có các liên kết đến bất kỳ URL nào. Để hiển thị menu trong mẫu, một chức năng đặc biệt wp_nav_menu được sử dụng - hôm nay tôi sẽ kể cho bạn nghe về nó.
Nếu không có phần menu trong quản trị viên WordPress, bạn có thể kích hoạt nó bằng cách thêm mã đặc biệt vào tệp tin.php.
Đầu tiên đây là tên của menu chúng tôi đã tạo. Đây là cách sử dụng chức năng trong trường hợp chung không có widget, bạn sẽ cần phải làm việc với chúng hơi khác một chút. Tuy nhiên, hàm wp_nav_menu có thể xuất ra mà không có đối số, dẫn đến việc “duyệt web” tình huống khác- đầu tiên, khớp theo tên menu nếu có ít nhất một mục menu được chỉ định cho nó, nếu không, menu không trống sẽ chỉ được hiển thị, v.v. Nhưng một lần nữa, tôi khuyên bạn chỉ nên sử dụng đoạn mã trên và không nên tìm hiểu hàm không có đối số sẽ xuất ra cái gì. Cú pháp của nó như sau:
Các tham số sau được sử dụng ở đây:
$menu - mã định danh được chọn cho menu - ID, slug hoặc tên menu.
$container - Menu UL mặc định được "bọc" trong vùng chứa DIV bằng cài đặt này.
$container_class - cho biết lớp của vùng chứa, theo mặc định giá trị của nó là menu-(menu slug)-container, tức là, trong trường hợp của chúng ta, ví dụ, lớp sẽ là menu-first-container.
$container_id - bạn có thể thêm ID vào vùng chứa, không được chỉ định theo mặc định.
$menu_class là lớp dành cho thành phần menu UL, giá trị của nó là menu.
$menu_id - ID cho phần tử ul, mặc định là menu-(slug)
$echo - nếu bạn không muốn hiển thị menu nhưng trả về giá trị của hàm, hãy sử dụng 0 cho cài đặt này.
$fallback_cb - nếu menu không tồn tại, hàm wp_page_menu sẽ được gọi.
$trước - đặt văn bản được hiển thị trước liên kết A.
$link_Before - hiển thị cụm từ trước văn bản liên kết, không được chỉ định.
$link_after - hiển thị sau văn bản liên kết, cũng trống.
$deep - đặt số cấp độ phân cấp để hiển thị menu; giá trị mặc định là 0 hiển thị toàn bộ menu.
$walker - một số loại "đối tượng walker" tùy chỉnh khó hiểu, có lẽ sẽ cần thiết hơn đối với các nhà phát triển nâng cao.
$theme_location - Vị trí của chủ đề nơi menu sẽ được sử dụng phải được kích hoạt thông qua register_nav_menu() để người dùng có thể chọn nó. Rõ ràng cũng có một số loại cài đặt không hoàn toàn rõ ràng khi làm việc với các widget.
Ví dụ về cách sử dụng hàm wp_nav_menuMã đơn giản nhất được đưa ra trong mã là:
Xóa vùng chứa DIV khỏi menu
Về nguyên tắc, không có gì phức tạp trong việc tạo và quản lý menu WordPress 3.0. Các nhà phát triển đã đơn giản hóa đáng kể quy trình làm việc và mở rộng khả năng của phần tử điều hướng này. Giải pháp này thường được sử dụng trong nhiều tác vụ mẫu khác nhau, chẳng hạn như khi tạo phiên bản cho thiết bị di động và máy tính để bàn. Một lát sau tôi sẽ thêm một vài đoạn nữa về chủ đề này.
tái bút Bảo vệ. Thú vị và hữu ích cho quản trị viên web Blog SEO, nơi bạn sẽ tìm thấy câu trả lời cho các câu hỏi SEO của mình.
Công ty Aweb từ lâu đã có uy tín rất tốt trong lĩnh vực quảng bá, tối ưu hóa và phát triển trang web. khuyến mãi công cụ tìm kiếm trên mạng.
Đăng ký và hiển thị menu tùy chỉnh được tạo trong bảng điều khiển: “ Vẻ bề ngoài> Menu" (Giao diện > Menu).
Đăng ký thực đơn
Add_action("after_setup_theme", function())( register_nav_menus(array("main_menu" => __("Menu chính", "crea"), "foot_menu" => __("Menu chân trang", "crea"),) ) ; ));
Tùy chọn thứ hai để đăng ký menu (Tôi không biết nó chính xác như thế nào, vì vậy tốt hơn nên sử dụng tùy chọn đầu tiên)
Nếu (function_exists("register_nav_menu")) ( register_nav_menus(array("main_menu" => __("Menu chính", "crea"), "foot_menu" => __("Menu chân trang", "crea"),)) ; )
Hiển thị thực đơn
Tùy chọn menu thứ hai
Thêm chi tiết về đăng ký và hiển thị menu trong mẫu
Cách sử dụng
wp_nav_menu(array("theme_location" => "" // (string) Vị trí của menu trong mẫu. (cho biết khóa mà menu đã được đăng ký trong hàm "menu" => "", // (string ) Tên menu hiển thị (được ghi ở bảng quản trị khi tạo menu, ưu tiên cho vị trí được chỉ định theme_location - nếu được chỉ định, tham số theme_location sẽ bị bỏ qua) "container" => "div", // (string) Menu container. Gói ul. Thẻ vùng chứa được chỉ định (theo mặc định trong thẻ div) "container_class" => "", // (string) lớp của vùng chứa ( thẻ div) "container_id" => "", // (chuỗi) id của vùng chứa (thẻ div) "menu_class" => "menu", // (chuỗi) lớp của chính menu (thẻ ul) "menu_id" => "", / / (string) id của chính menu (thẻ ul) "echo" => true, // (boolean) Hiển thị hoặc trả về để xử lý "fallback_cb" => "wp_page_menu", // (string) Đã sử dụng ( backup), nếu menu không tồn tại (không thể lấy) "trước" => "", // (chuỗi) Văn bản trước mỗi liên kết "after" => "", // (chuỗi) Văn bản sau each link "link_Before" => "", // (string) Văn bản trước neo (văn bản) của liên kết "link_after" => "", // (chuỗi) Văn bản sau neo (văn bản) của liên kết "items_wrap " => "", "độ sâu" => 0, // (số nguyên) Độ sâu lồng nhau (0 - không giới hạn, 2 - menu hai cấp) "walker" => "" // (đối tượng) Lớp thu thập các menu. Mặc định: Walker_Nav_Menu mới));
Đối số tham số $args
theme_location(chuỗi)
ID của vị trí menu trong mẫu. Mã định danh được chỉ định khi đăng ký menu bằng hàm register_nav_menu().
Mặc định: ""
thực đơn(chuỗi)
Menu cần hiển thị. So khớp: id, slug hoặc tên menu.
Mặc định: ""
vùng chứa (chuỗi)
Cách bọc thẻ ul. Có thể chấp nhận: div hoặc nav.
Nếu bạn không cần bọc nó bằng bất cứ thứ gì thì hãy viết false: container => false.
Mặc định: div
container_class(chuỗi)
Giá trị của thuộc tính lớp của vùng chứa menu.
Mặc định: menu-(menu sên)-container
container_id(chuỗi)
Giá trị của thuộc tính id của vùng chứa menu.
Mặc định: ""
menu_class(chuỗi)
Giá trị thuộc tính lớp của thẻ ul.
Mặc định: thực đơn
menu_id(chuỗi)
Giá trị thuộc tính id của thẻ ul.
Mặc định: sên menu
tiếng vang (boolean)
In ra màn hình (đúng) hoặc quay lại để xử lý (sai).
Mặc định: đúng
dự phòng_cb(chuỗi)
Một chức năng để xử lý đầu ra nếu không tìm thấy menu.
Truyền tất cả $args cho hàm được chỉ định ở đây.
Đặt chuỗi trống thành " hoặc '__return_empty_string' để không hiển thị gì nếu không có menu.
Mặc định: wp_page_menu
trước(chuỗi)
Văn bản trước thẻ trên thực đơn.
Mặc định: ""
sau(chuỗi)
Văn bản sau mỗi thẻ trong menu.
Mặc định: ""
link_trước(chuỗi)
Văn bản trước neo của mỗi liên kết trong menu.
Mặc định: ""
link_after(chuỗi)
Văn bản sau neo của mỗi liên kết trong menu.
Mặc định: ""
items_wrap(chuỗi)
Tôi có cần bọc các phần tử trong thẻ ul không? Nếu cần, một mẫu trình bao bọc sẽ được chỉ định.
Mặc định: ""
độ sâu (số)
Có bao nhiêu cấp độ liên kết lồng nhau để hiển thị. 0 - tất cả các cấp độ.
người đi bộ (vật thể)
Lớp sẽ được sử dụng để xây dựng menu. Bạn cần chỉ định một đối tượng chứ không phải một chuỗi, ví dụ new My_Menu_Walker(). Mặc định: Walker_Nav_Menu(). Hãy xem cách sử dụng dưới đây...
Mặc định: Walker_Nav_Menu
item_spaces(chuỗi)
Có hay không để lại dấu ngắt dòng trong mã menu HTML. Có thể là: bảo quản hoặc loại bỏ
Mặc định: "bảo tồn"
Ví dụ
Chỉ hiển thị menu nếu nó tồn tại
Theo mặc định, nếu không có menu thì các trang của trang web sẽ được hiển thị thay thế. Nhưng nếu bạn chỉ cần hiển thị menu khi nó được tạo trong bảng quản trị, hãy chỉ định tham số fallback_cb là "__return_empty_string" :
Wp_nav_menu(array("theme_location" => "primary-menu", "fallback_cb" => "__return_empty_string"));
Tạo menu trong WordPress, cũng như sắp xếp các trang và danh mục, thường trở thành một vấn đề khá khó khăn đối với những quản trị viên web mới làm quen. Vì điều này, tôi quyết định viết một hướng dẫn ngắn trong đó chúng ta sẽ xem xét chi tiết cách tạo menu tùy chỉnh trong WordPress. Với sự trợ giúp của họ, bạn có thể tạo các menu tùy chỉnh một cách độc lập, thêm hoặc xóa các mục menu, thay đổi tên, vị trí và cách lồng của chúng.
Trong một trong những bài viết trước, chúng tôi đã xem xét phương pháp này. May mắn thay, WordPress hiện có tính năng tích hợp cho phép bạn tạo các menu tùy chỉnh mà không cần dùng đến plugin. Tính năng này có sẵn trong tất cả các phiên bản WordPress bắt đầu từ phiên bản 3.0.
Tôi muốn bạn ngay lập tức chú ý đến thực tế là tính năng hỗ trợ menu tùy chỉnh không được bật trong tất cả các mẫu. Về vấn đề này, bài viết sẽ bao gồm hai phần. Trong phần đầu tiên của bài viết, chúng ta sẽ xem cách tạo các mục menu trong WordPress thông qua bảng quản trị nếu các menu tùy chỉnh đã được đưa vào mẫu.
Trong phần thứ hai của bài viết, chúng ta sẽ tìm hiểu cách bật hỗ trợ độc lập cho các menu tùy chỉnh trong WordPress và tùy chỉnh hiển thị menu thông qua wp_nav_menu. Kiến thức này sẽ hữu ích cho bạn trong trường hợp mẫu của bạn không cung cấp khả năng sử dụng menu tùy chỉnh hoặc bạn tự viết hoặc muốn thêm khả năng tạo menu tùy chỉnh.
Tạo menu và các mục menu tùy chỉnh thông qua bảng quản trị WordPressĐể tạo menu, hãy đi tới Bảng quản trị – Giao diện – Menu và xem liệu mẫu của bạn có hỗ trợ menu tùy chỉnh hay không. Nếu không, bây giờ chúng ta có thể bỏ qua bước này và đi thẳng đến phần thứ hai của bài viết. Nếu menu đã được hỗ trợ, bạn sẽ thấy một trang có nội dung gần đúng sau.
Để tạo một menu mới, hãy nhập tên của nó vào trường “Nhập tiêu đề menu” và nhấp vào “Tạo menu”.
Cá nhân tôi thích viết tất cả tên bằng chữ Latinh để tránh mọi vấn đề sau này. Tên Cyrillic cũng được hỗ trợ, nhưng tôi không khuyên bạn nên sử dụng chúng. Đây là ý kiến cá nhân của tôi.
Sau khi tạo menu, chúng ta cần chọn menu đó trong khối “Khu vực chủ đề”, nằm ở cột bên trái, sau đó lưu kết quả bằng cách nhấp vào nút “Lưu”.
Trong trường hợp này, chủ đề chỉ hỗ trợ một menu tùy chỉnh nên bạn không cần phải chọn nhiều. Bạn chỉ cần chọn menu chúng tôi đã tạo từ danh sách thả xuống và lưu kết quả. Nếu chủ đề hỗ trợ hai menu trở lên thì bạn cần chọn menu dựa trên vị trí của nó trong mẫu.
Sau khi lưu kết quả, để thêm các mục mới vào menu, chỉ cần đánh dấu các danh mục hoặc trang mong muốn và nhấp vào nút “Thêm vào Menu”.
Sau đó, chúng có thể được di chuyển tương đối với nhau theo ý muốn và cách lồng có thể được thay đổi.
Vì vậy, chúng tôi đã xem xét cách tạo menu tùy chỉnh thông qua bảng quản trị WordPress, cách thêm các mục mới vào đó và định cấu hình chúng. Bây giờ, hãy chuyển sang phần thứ hai của bài viết và tìm hiểu cách bật hỗ trợ cho các menu tùy chỉnh trong WordPress và hiển thị chúng trong mẫu bằng chức năng wp_nav_menu.
Kích hoạt hỗ trợ menu tùy chỉnh trong WordPressTrước hết, chúng ta cần đăng ký sử dụng menu tùy chỉnh và chính các menu đó. Để thực hiện việc này, hãy mở tệp function.php của chủ đề của bạn để chỉnh sửa và thêm mã sau đây.
Register_nav_menus(mảng("top" => "Menu trên cùng"));
Trong đó “top” là mã nhận dạng menu và “Top menu” là tên của vị trí.
Nếu bạn cần thêm một số menu, hãy liệt kê chúng cách nhau bằng dấu phẩy.
Register_nav_menus(mảng("top" => "Menu trên cùng", "left" => "Menu bên trái"));
Sau khi thêm mã này, hỗ trợ cho các menu tùy chỉnh sẽ được bật tự động. Bạn có thể xác minh điều này bằng cách vào Bảng quản trị – Giao diện – Menu. Nhưng việc đăng ký thực đơn thôi là chưa đủ. Menu vẫn cần được hiển thị trong mẫu. Để làm điều này, chúng tôi sẽ sử dụng chức năng wp_nav_menu đặc biệt.
Hiển thị một menu tùy chỉnh. chức năng wp_nav_menuNhư đã đề cập ở trên, chúng tôi sẽ hiển thị các menu tùy chỉnh bằng hàm wp_nav_menu, có thể chấp nhận các tham số sau.
$args = array("menu" => "", // Tên menu (chuỗi). "container" => "div", // Vùng chứa menu (chuỗi). Danh sách ul được đặt trong đó. "container_class" = > " ", // Lớp chứa (chuỗi). "container_id" => "", // Id vùng chứa (chuỗi). "menu_class" => "menu", // lớp thẻ ul (chuỗi). > " ", // Id của thẻ ul (chuỗi). "echo" => true, // Hiển thị hoặc trả về để xử lý (boolean). "fallback_cb" => "wp_page_menu", // Hàm sao lưu trong trường hợp tùy ý menu không tồn tại (chuỗi). "trước" => "", // Văn bản trước mỗi liên kết (chuỗi). "sau" => "", // Nhắn tin sau mỗi liên kết (chuỗi). "link_Before" => "", // Văn bản trước neo liên kết (chuỗi). "link_after" => "", // Văn bản sau neo liên kết (chuỗi). "độ sâu" => 0, // Độ sâu lồng nhau (số nguyên). 0 - không giới hạn, 2 - menu tùy chỉnh hai cấp. "walker" => , // Lớp thu thập các menu. Mặc định: Walker_Nav_Menu mới. (sự vật). "theme_location" => ""); // Vị trí của menu trong mẫu. Chỉ định ID menu. (sợi dây).
Trong trường hợp này, các tham số có thể được truyền qua cả mảng và qua chuỗi. Trong mọi trường hợp, menu sẽ hoạt động. Để rõ ràng, hãy xem xét cả hai lựa chọn.
Truyền tham số qua mảng
Truyền tham số qua chuỗi
Wp_nav_menu("menu_id=topmenu&theme_location=top&container=");
Cá nhân tôi thích lựa chọn thứ hai hơn vì nó nhỏ gọn hơn theo quan điểm của tôi. Trong mọi trường hợp, kết quả của hàm sẽ là đoạn mã sau.
Đây là nơi tôi kết thúc bài viết này. Chúng tôi đã xem xét những điểm chính và trong 99% trường hợp, thông tin này là đủ cho bạn tự sáng tạo menu tùy chỉnh trong WordPress. Nếu bạn có bất kỳ câu hỏi nào, bạn luôn có thể hỏi họ trong phần bình luận.
Đó là tất cả. Chúc may mắn và thành công trong việc tạo website trên WordPress.
Điều hướng có mặt trên bất kỳ trang web tốt nào, ngay cả khi đó là trang một trang. Tuỳ thuộc vào tình hình, liên kết điều hướng có thể dẫn đến các phần khác nhau của trang web hoặc gửi tới một dấu trang (neo) nằm trên trang hiện tại. soạn thảo có thẩm quyềnđiều hướng mà người dùng không bị nhầm lẫn đòi hỏi kiến thức và kinh nghiệm nhất định. Thiết kế thanh điều hướng cũng cần được thực hiện một cách khôn ngoan và trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách tạo menu điều hướng thân thiện với người dùng.
Tạo điều hướngĐiều hướng là gì? Đây là tập hợp các liên kết, thường được sắp xếp và nhóm lại theo ý nghĩa. Chức năng điều hướng thường được tạo bằng thẻ danh sách HTML
- , ở đâu tại mỗi điểm
- chứa một liên kết . Trong HTML5, một thẻ riêng biệt đã được giới thiệu để điều hướng, nơi bạn có thể chỉ cần đặt các thẻ liên kết. Khi bạn đã tạo khung HTML, bạn có thể chuyển sang tạo kiểu cho nó bằng CSS, nơi bạn có thể xác định cách menu của mình sẽ theo chiều dọc, chiều ngang, thả xuống, v.v.
Giả sử chúng ta có một điều hướng đơn giản với năm liên kết, được tạo bằng HTML dựa trên danh sách có dấu đầu dòng:
Ban đầu, không có kiểu, điều hướng của chúng tôi trông giống như một danh sách thông thường:
Để làm cho thành phần này giống thanh điều hướng hơn, bạn cần thực hiện một số bước bắt buộc. Thứ nhất, không cần đánh dấu gần các mục menu và thứ hai, các giá trị lề và phần đệm tiêu chuẩn. do trình duyệt thiết lậpđối với danh sách, có thể gây trở ngại nên chúng tôi đặt lại chúng về 0. Kết quả là như sau:
Menu ( list-style-type: none; lề: 0; phần đệm: 0; )
Về cơ bản, tệp đặt lại kiểu thực hiện các hành động giống hệt nhau đối với danh sách Đặt lại.css, do đó, nếu bạn sử dụng nó trên trang web của mình thì không cần phải viết mã ở trên.
Sau khi đặt lại kiểu danh sách tiêu chuẩn, bạn có thể tiến hành trực tiếp việc tạo kiểu để điều hướng. Chúng tôi sẽ chỉ cho bạn cách tạo các tấm dọc và ngang.
Trình đơn dọcViệc tạo thanh điều hướng dọc được coi là dễ dàng hơn so với việc tạo menu ngang. Chủ yếu là vì không cần phải hỏi sắp xếp theo chiều ngang liên kết. Đây chỉ đơn giản là một danh sách dọc các trang trên một trang web. Tuy nhiên, một số phong cách quan trọng sẽ phải được áp dụng.
Chặn liên kếtTrước hết bạn cần tạo tất cả các thẻ phần tử khối:
Menu a ( hiển thị: khối; )
Cái này có một vài nguyên nhân:
Chiều rộng thực đơn
Việc tiếp theo chúng ta cần làm là thiết lập độ rộng của menu. Nếu bạn chưa xác định trước chiều rộng của thanh điều hướng và nó không nằm trong vùng chứa giới hạn nó thì menu sẽ trải dài trên toàn bộ chiều rộng của cửa sổ (như trong ví dụ của chúng tôi ở trên) - bởi vì đó là cách một phần tử khối hành xử theo mặc định. Bạn có thể đặt độ rộng cần thiết cho phần tử .menu, ví dụ:
Thực đơn (chiều rộng: 300px; )
Thay vào đó, bạn có thể đặt chiều rộng cho các mục
- hoặc cho các liên kết - về mặt trực quan, hiệu ứng có thể giống nhau, nhưng hãy nhớ rằng trong trường hợp này chiều rộng của phần tử .menu sẽ vẫn là 100%.
Tách các mụcĐể phân tách các mục menu một cách trực quan, bạn có thể tạo cho mỗi mục một đường viền dưới hoặc trên. Tùy thuộc vào loại bạn sử dụng, bạn sẽ bị thiếu đường viền ở đầu hoặc cuối menu. Điều này có thể được khắc phục bằng cách thêm một đường viền khác vào chính khối .menu:
Menu a ( border-top: 1px màu xanh đậm; ) .menu ( border-bottom: 1px màu xanh đậm; )
Chiều cao điểm và căn chỉnh theo chiều dọcHiện tại các liên kết menu trông quá thấp và quá gần nhau. Nếu văn bản của mỗi liên kết không chiếm nhiều hơn một dòng thì bạn có thể tăng chiều cao của chúng và giữ văn bản ở giữa theo chiều dọc bằng cách sử dụng các thuộc tính chiều cao và chiều cao dòng:
Menu a ( chiều cao: 30px; chiều cao dòng: 30px; ) GIF
Như bạn có thể thấy trong hình động, thuộc tính chiều cao ảnh hưởng đến chiều cao của liên kết và khoảng cách dòng chiều cao dòng sẽ thay đổi chiều cao của chính dòng văn bản. Đảm bảo đặt cùng giá trị cho hai thuộc tính này nếu bạn muốn văn bản liên kết được căn giữa theo chiều dọc.
Trình đơn ngangNhiệm vụ chính khi tạo điều hướng ngang là sắp xếp các mục menu thành một hàng. Điều này có thể được thực hiện theo nhiều cách.
Phương pháp mộtTùy chọn đầu tiên là đặt thuộc tính hiển thị của các mục danh sách với giá trị nội tuyến hoặc khối nội tuyến:
Menu ( hiển thị: nội tuyến; )
Sau này, bạn có thể bắt đầu tạo liên kết. Ví dụ: bạn có thể tạo kiểu này:
Menu a ( text-trang trí: none; họ phông chữ: sans-serif; màu: #5757a0; hiển thị: khối nội tuyến; đệm: 10px 20px; màu nền: hoa oải hương; viền dưới: 5px rắn #5757a0; )
Chúng tôi đã thêm màu nền và đường viền dưới cùng cho mỗi liên kết, đồng thời tăng kích thước của nó bằng cách sử dụng phần đệm. Lưu ý rằng có những khoảng cách nhỏ giữa các mục menu, mặc dù chúng tôi không thêm chúng qua kiểu. Chúng xảy ra do trình duyệt diễn giải ký tự trả về đầu dòng giữa thẻ đóng và thẻ mở theo cách này.
- . Những khoảng trống này có thể được loại bỏ bằng cách viết mã HTML danh sách trên một dòng:
Tuy nhiên, điều này thật bất tiện vì những thay đổi này sẽ phải được thực hiện thủ công đối với HTML và mã sẽ khó đọc. Do đó, bạn có thể cố gắng loại bỏ các khoảng trống bằng cách sử dụng giá trị âm lề phải:
Menu li ( lề-phải: -5px; )
Mã này không loại bỏ các khoảng trống mà che chúng bằng cách dịch chuyển các phần tử sang trái 5 pixel. Phương pháp này không thể nói là rất đáng tin cậy vì kích thước của khoảng cách có thể thay đổi tùy theo các kiểu dáng khác.
Nếu khoảng cách giữa các điểm không được quy hoạch trong thiết kế của bạn, tốt hơn là bạn nên sử dụng phương pháp thứ hai để căn chỉnh các phần tử theo chiều ngang.
Phương pháp haiBạn có thể đã đoán rằng tùy chọn thứ hai để tạo menu ngang là sử dụng thuộc tính nổi. Để thực hiện việc này, hãy thêm kiểu cho thẻ
- :
Thực đơn li ( float: left; )
Như bạn có thể thấy, không còn khoảng cách giữa các điểm nữa. Tất cả các phong cách khác hoạt động như trước. Nhưng nếu bạn thêm một phần tử HTML khác sau điều hướng (giả sử ), nó sẽ bị ảnh hưởng bởi việc gói và sẽ được căn chỉnh với các mục menu. Bạn có thể hủy hành động này bằng cách thêm tiêu đề tài sản rõ ràng: bên trái . Nhưng khi phát triển một trang web với một lượng lớn các trang khác nhau Việc theo dõi xem bạn có quên chỉ định một thuộc tính nhất định ở bất kỳ đâu có thể trở nên khó khăn hay không. Việc hoàn tác gói ở phía điều hướng sẽ dễ dàng hơn nhiều. Mục này sẽ giúp với điều này:
Menu ( tràn: ẩn; )
Điều này cũng sẽ giúp đưa phần tử gốc của các phần tử nổi về chiều cao bình thường của chúng. Chúng ta đã nói về vấn đề này trong các bài học trước, nhưng sau đó chúng ta đã giải quyết nó bằng một thủ thuật đặc biệt bằng cách sử dụng pseudo-element:after . Ví dụ trên là một cách khác để giải quyết vấn đề thiếu chiều cao của container.
Lưu ý: nếu bạn đặt nền cho phần tử .menu, bạn sẽ không nhìn thấy nó cho đến khi bạn áp dụng tràn: ẩn cho nó. Hợp lý, vì làm thế nào bạn có thể nhìn thấy nền của một phần tử có chiều cao bằng 0?
Trong bài học tiếp theo, chúng ta sẽ nói chi tiết hơn về khả năng của bộ chọn thuộc tính mà bạn có thể đặt
Chúng tôi mời bạn làm quen với công nghệ mới về việc tạo một menu đáp ứng (thích ứng) mà không cần sử dụng Javascript. Nó sử dụng đánh dấu HTML5 rõ ràng và có ngữ nghĩa. Menu có thể được căn chỉnh sang trái, giữa hoặc phải. Menu này chuyển sang chế độ di chuột, thuận tiện hơn cho người dùng. Nó cũng có một chỉ báo hiển thị mục menu “đang chạy/luồng”. Nó hoạt động trên tất cả các trình duyệt trên thiết bị di động và máy tính để bàn bao gồm trình duyệt web IE!
Mục tiêu
Mục đích của hướng dẫn này là chỉ cho bạn cách biến menu thông thường thành menu thả xuống trên màn hình nhỏ.
Thủ thuật này sẽ hữu ích hơn khi điều hướng có nhiều liên kết, như trong ảnh chụp màn hình bên dưới. Bạn có thể thu gọn tất cả các nút vào một menu thả xuống trang nhã.
Đánh dấu HTML điều hướng
Đây là đánh dấu để điều hướng. Cần có thẻ để tạo menu thả xuống có thuộc tính CSS tuyệt đối các vị trí. Chúng tôi sẽ giải thích điều này trong một bài học sau. Lớp .current trỏ đến các liên kết menu hiện hoạt/hiện tại.
- danh mục đầu tư
- Hình minh họa
- Thiết kế web
- Phương tiện in
- Thiết kế đồ họa
CSS để điều hướng (chế độ xem trên máy tính để bàn) khá cơ bản, vì vậy chúng tôi sẽ không đi sâu vào chi tiết ở đây. Lưu ý rằng chúng tôi đã chỉ định display:inline-block thay vì float:left trong NAV của phần tử
- . Điều này sẽ cho phép các nút menu căn chỉnh trái, giữa hoặc phải bằng cách chỉ định căn chỉnh văn bản thành
- yếu tố.
- chỉ định hiển thị: không có, nhưng để lại .current
- hiển thị dưới dạng một khối. Sau đó, trên NAV, chúng tôi thiết lập mọi thứ
- để hiển thị: chặn (điều này sẽ cho kết quả của danh sách thả xuống). Chúng tôi đã thêm biểu tượng đồ họa vào phần tử check.current để cho biết phần tử này đang hoạt động. Để căn chỉnh giữa và phải của menu, hãy sử dụng thuộc tính định vị trái và phải
- danh sách.
- mục */ lề: 0; ) .nav .current ( display: block; /* chỉ hiển thị hiện tại
- item */ ) .nav a ( display: block; phần đệm: 5px 5px 5px 32px; text-align: left; ) .nav .current a ( nền: none; color: #666; ) /* khi di chuột điều hướng */ . nav ul:hover ( hình nền: none; ) .nav ul:hover li ( display: block; lề: 0 0 5px; ) .nav ul:hover .current ( nền: url(images/icon-check.png) không lặp lại 10px 7px; ) /* điều hướng phải */ .nav.right ul ( trái: auto; phải: 0; ) /* điều hướng trung tâm */ .nav.center ul ( trái: 50%; lề trái: - 90px; ) )
Chuyển đổi cao!
@media screen và (max-width: 600px) ( .nav ( vị trí: tương đối; chiều cao tối thiểu: 40px; ) .nav ul ( chiều rộng: 180px; đệm: 5px 0; vị trí: tuyệt đối; trên cùng: 0; trái: 0 ; đường viền: rắn 1px #aaa; nền: #fff url(images/icon-menu.png) no-repeat 10px 11px; bán kính đường viền: 5px; bóng hộp: 0 1px 2px rgba(0,0,0,. 3); .navli ( hiển thị: không có; /* ẩn tất cả
/* nav */ .nav ( vị trí: tương đối; lề: 20px 0; ) .nav ul ( lề: 0; đệm: 0; ) .nav li ( lề: 0 5px 10px 0; đệm: 0; kiểu danh sách: không; hiển thị: khối nội tuyến; ) .nav a ( đệm: 3px 12px; trang trí văn bản: không có; màu: #999; chiều cao dòng: 100%; ) .nav a:hover ( màu: #000; ) . điều hướng .current a ( nền: #999; màu: #fff; bán kính đường viền: 5px; )
Căn chỉnh giữa và phải
Như đã đề cập ở trên, bạn có thể thay đổi căn chỉnh nút bằng cách sử dụng “text-align”.
/* điều hướng phải */ .nav.right ul ( text-align: right; ) /* điều hướng trung tâm */ .nav.center ul ( text-align: center; )
Hỗ trợ Internet Explorer
Thẻ HTML5 và truy vấn phương tiện không được Internet Explorer 8 và các phiên bản cũ hơn hỗ trợ. Bao gồm CSS3-mediaqueries.js (hoặc Reply.js) và html5shim.js để cung cấp hỗ trợ dự phòng. Nếu bạn không muốn thêm html5shim.js thì hãy thay thế thẻ bằng thẻ.
Đây là nơi niềm vui bắt đầu - làm cho các menu phản hồi nhanh với các truy vấn phương tiện! Ở 600px, chúng tôi đặt phần tử điều hướng ở vị trí tương đối để có thể đặt
- danh sách menu ở trên cùng với vị trí tuyệt đối. Chúng tôi đã ẩn tất cả các yếu tố
- hoặc cho các liên kết - về mặt trực quan, hiệu ứng có thể giống nhau, nhưng hãy nhớ rằng trong trường hợp này chiều rộng của phần tử .menu sẽ vẫn là 100%.