Kể từ nhiều năm một tiêu chuẩn GUI là các thanh menu của các ứng dụng có menu bật lên, nếu bạn nhấp hoặc di chuột vào một mục trong thanh menu. Một số trang web cũng triển khai tính năng này, nhưng chúng đang sử dụng Javascript, theo như tôi thấy. Vì những lý do khác nhau Javascript có thể là một vấn đề, do đó, câu hỏi: Có thể thực hiện mà không có Javascript, chỉ sử dụng HTML và CSS không?Làm cách nào để tạo menu trong HTML mà không cần sử dụng Javascript?
Trả lời
Tôi đã thực hiện một cái gì đó như thế này trước đây, và đó là một mẹo kéo ra bằng cách đặt các mục menu trong thẻ neo, với menu phụ trong div ẩn ẩn INSIDE những thẻ neo. Thủ thuật CSS là làm cho div bên trong xuất hiện trong sự kiện a: hover.
Nó trông giống như sau:
<style>
A DIV { display: none; }
A:hover DIV { display: block; }
</style>
<a href="blah.htm">
Top Level Menu Text
<div><ul>
<li><a href="sub1.htm">Sub Item 1</a></li>
<li><a href="sub2.htm">Sub Item 2</a></li>
<li><a href="sub3.htm">Sub Item 3</a></li>
</ul></div>
</a>
Mileage của bạn có thể thay đổi ...
EDIT: Internet Explorer 6 và thấp hơn không hỗ trợ: hover pseudo-class trên các yếu tố khác ngoài A. Trong nhiều trình duyệt 'hiện đại' hơn, nó được chấp nhận để có thể sử dụng thủ thuật này với LI, TD, DIV, SPAN và hầu hết mọi thẻ.
Bạn có thể sử dụng bút giả: di chuột để có hiệu ứng di chuột.
a:link {
color: blue;
}
a:hover {
color: red;
}
Tôi có thể đưa ra một ví dụ rộng hơn nhưng không phải ngay bây giờ (cần đưa con đến nha sĩ).
Đợi đã ... để tôi có được câu chuyện này ngay lập tức. Bạn đã có một cuộc hẹn với nha sĩ sắp tới, những đứa trẻ mặc áo khoác vào cuối tháng 10, và, với chìa khóa trong tay, quyết định "Đợi đã, tôi kiểm tra Stack Overflow trước khi chúng ta đi ... có thể có một câu hỏi CSS tôi có thể trả lời ! " Điều này amuses tôi ... –
@ Yadyn: tôi biết, nó là vô lý. ... Điều gì đã từng xảy ra khi gửi lũ trẻ ra ngoài mà không cần áo khoác để làm cứng chúng ...? – Shog9
Hãy xem CSS Menu Maker.
Wow ... Tôi đã tìm kiếm một cái gì đó chính xác như thế này. Great post :). – Abbas
Trang web rất hay ...thêm vào Delicious thx –
Thú vị ... Tôi đã xem cái này: http://www.cssmenumaker.com/builder/menu_info.php?menu=007# trong IE6 và nó không hoạt động, mặc dù thực tế là thanh bên tuyên bố tương thích IE6. Người mua hãy cẩn thận. – mmacaulay
Kỹ thuật nổi tiếng nhất là suckerfish menus. Tìm kiếm điều đó sẽ dẫn đến rất nhiều menu thú vị. Nó chỉ cần javascript trong IE6 và thấp hơn.
Xem xét sử dụng phương thức CSS làm bản sao lưu khi JavaScript không khả dụng. JavaScript có thể * cung cấp trải nghiệm người dùng tốt hơn cho các trình đơn thả xuống vì bạn có thể thêm một số yếu tố trì hoãn để dừng các menu ngay lập tức biến mất nếu chuột rời khỏi vùng di chuột của chúng. Các menu Pure-CSS đôi khi có thể hơi khó sử dụng, đặc biệt nếu các mục tiêu di chuột nhỏ.
*: tất nhiên, không phải tất cả các kịch bản đơn thực sự bận tâm để làm điều này ...
Ngoài ra còn có Eric Meyer 's bài viết gốc trên pure CSS menus.
Có ràng buộc để được nhiều hơn nữa mạnh mẽ và hiện đại đưa ra có bây giờ được đề cập bởi những người khác, nhưng tôi nghĩ tôi muốn đề cập đến nó cho hậu thế. :)
- 1. Sử dụng lại Html mà không cần mã
- 2. Phát triển web mà không cần sử dụng HTML/CSS/JavaScript
- 3. Tạo dòng mới mà không cần sử dụng <br> trong HTML
- 4. Làm cách nào để thu phóng nội dung IFRAME mà không cần sử dụng bộ khung?
- 5. Làm cách nào để triển khai các menu Điều hướng HTML có thể sử dụng lại?
- 6. Làm thế nào để MVC trong php mà không cần sử dụng một số khung
- 7. Sử dụng dịch vụ Google +1 mà không cần JavaScript
- 8. Sử dụng LoaderCallbacks mà không cần Fragment
- 9. Làm thế nào để tạo ra các sọc vằn trên bảng html mà không cần sử dụng javascript và thậm chí/các lớp lẻ?
- 10. Có thể một <button> trong HTML làm điều gì đó mà không cần javascript?
- 11. Facebook như các menu vuốt trong JavaScript mà không cần jQuery Mobile
- 12. Sử dụng SyncAdapter mà không cần tạo tài khoản
- 13. Làm cách nào để tạo trang chính bằng HTML?
- 14. Làm cách nào để định dạng biểu mẫu HTML mà không sử dụng bảng
- 15. Làm cách nào để ghi đè CSS nội tuyến mà không cần sử dụng! Quan trọng hoặc javascript?
- 16. Làm cách nào để tạo hộp kiểm tra mà không cần gửi trong PHP?
- 17. Làm cách nào để gửi biểu mẫu mà không cần làm mới trang bằng cách sử dụng Django, Ajax, jQuery?
- 18. Làm cách nào để tắt tất cả các nút nhập mà không cần sử dụng jQuery?
- 19. làm cách nào để hợp nhất 2 hình ảnh mà không cần sử dụng đặt alpha?
- 20. Làm cách nào để triển khai plugin .net mà không cần sử dụng AppDomains?
- 21. Tạo ứng dụng web trong Ruby mà không cần khung
- 22. Làm cách nào để khôi phục lệnh xóa mà không cần sử dụng giao dịch
- 23. Đường ray: sử dụng link_to để tạo liên kết mà không cần href
- 24. Tôi làm cách nào để sử dụng Facebook Connect với Google App Engine mà không cần sử dụng Django?
- 25. sử dụng libcurl mà không cần dll
- 26. sử dụng UINavigationBar mà không cần UINavigationController
- 27. Làm cách nào để tạo menu trong menu bắt đầu cho chương trình của tôi?
- 28. Sử dụng LoadControl mà không cần Trang
- 29. làm thế nào để chạy một hàm javascript không đồng bộ, mà không cần sử dụng setTimeout?
- 30. Có cách nào tốt hơn để khởi tạo một Hastable trong .NET mà không cần sử dụng phương thức Add?
Cảm ơn bạn đã giúp đỡ rất nhiều và thậm chí đề cập đến IE6. Khi tôi sử dụng Linux, tôi thậm chí sẽ không kiểm tra IE6. Hoặc tôi có nên phá vỡ các trang web cho IE6 trên mục đích, để giữ cho mọi người có động lực để chuyển sang một trình duyệt hiện đại? ;-) – Mnementh
Theo kinh nghiệm của tôi, tốt nhất nên tránh phá vỡ bất kỳ trình duyệt nào khi bạn đang thiết kế một ứng dụng web để tiêu thụ hàng loạt –