由於多年以來,如果您單擊或懸停菜單欄中的條目,GUI標準就是彈出菜單的應用程序菜單欄。據我所知,一些網站也實現了這個功能,但他們正在使用Javascript。由於不同的原因,JavaScript可能是一個問題,所以問題:這是可能實現沒有JavaScript,只使用HTML和CSS?如何在不使用Javascript的情況下在HTML中創建菜單?
回答
我之前做過類似的事情,它是通過將菜單項放置在錨標記中,並將子菜單放置在隱藏的div內部的這些錨標記中。 CSS技巧是讓內部div在a:hover事件中出現。
它看起來是這樣的:
<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>
您的里程可能會有所不同...
編輯:Internet Explorer 6中,下不支持:上除了A.在其他元素hover僞類更多的'現代'瀏覽器,它被接受能夠使用LI,TD,DIV,SPAN和大多數標籤中的這個技巧。
您可以使用僞類:懸停來獲得懸停效果。
a:link {
color: blue;
}
a:hover {
color: red;
}
我可以給一個更廣泛的例子,但不是現在(需要讓孩子去看牙醫)。
等待......讓我直接說出這個故事。你有一個兒童牙醫任命即將進行,十月下旬秋季寒冷的孩子們,並與手中的鑰匙,決定「等等,我更好地檢查堆棧溢出之前,我們去...可能有一個CSS問題,我可以回答!」這讓我感到有趣... – 2008-10-24 13:45:51
@Yadyn:我知道,這很荒謬。 ......把孩子送出去而沒有外套讓他們變硬的......發生了什麼? – Shog9 2008-10-24 14:36:35
最着名的技術是suckerfish menus。搜索這將導致很多有趣的菜單。它只需要IE6以下的javascript。
考慮使用CSS方法爲JavaScript時不可用的備份。 JavaScript可以爲下拉菜單提供更好的用戶體驗,因爲您可以添加一些延遲因素,以在鼠標暫時離開其懸停區域時立即消失。純CSS菜單有時可能有點挑剔,特別是如果懸停目標很小。
*:當然,並不是所有的菜單腳本實際上是不屑做這種...
還有Eric Meyer的上pure CSS menus原創文章。
這裏肯定會有更強大和更現代的東西,現在被別人提到,但我想我會提到它的後代。 :)
- 1. 如何在沒有jQuery的情況下在HTML中創建手風琴菜單
- 2. 如何在不使用JavaScript的情況下禁用HTML中的右鍵單擊?
- 3. 如何在不創建模型的情況下在Django admin中創建表單
- 4. 如何在html/css中創建下拉菜單登錄菜單
- 5. 如何在下拉菜單中創建子菜單(HTML/CSS)
- 6. 如何在不使用Membership.CreateUser()的情況下創建用戶?
- 7. 如何在不使用`Executors.newSingleThreadScheduledExecutor`的情況下使用單個線程創建`ScheduledThreadPoolExecutor`?
- 8. 如何在不使用Shadow DOM的情況下創建組件?
- 9. 如何在不使用文件的情況下創建鬍鬚?
- 10. 如何在不使用String的情況下創建JSON對象?
- 11. 如何在不使用事務的情況下創建死鎖?
- 12. 如何在不使用`-`或`--`的情況下創建參數?
- 13. 如何在不使用JFreeChart的情況下創建圖形?
- 14. 如何在不使用xcode的情況下創建.xcappdata?
- 15. 在不使用VCL的情況下創建表單
- 16. Pure HTML:如何在不使用「float」的情況下創建此佈局?
- 17. 如何在不使用HTML的情況下在Notepad ++中運行JavaScript?
- 18. 在不使用foreach的情況下在數組中創建鍵?
- 19. 在不使用塊ROM的情況下在verilog中創建ROM
- 20. 在不使用kibana的情況下在kibana中創建索引
- 21. 如何在不創建目錄的情況下創建鏈接?
- 22. JavaScript - 如何在不使用alert()或window.open()的情況下創建對話窗口?
- 23. 如何在不使用JavaScript或jQuery的表單的情況下在登錄中創建記住我的功能
- 24. 如何在不允許多選的情況下在HTML中創建列表框?
- 25. 如何在不使用forEach()的情況下使用HTML元素?
- 26. 如何在不使用django管理員的情況下創建userprofile表單?
- 27. 在不使用畫布的情況下從HTML HTML創建圖像
- 28. 在不使用任何外部庫的情況下創建JSON?
- 29. 如何在不使用d3dx9的情況下在DirectX 9中創建紋理?
- 30. 如何在不使用插件的情況下在WordPress中創建圖庫?
非常感謝您提供的幫助,甚至提到了IE6。當我使用Linux時,我甚至不會測試IE6。或者我應該故意爲了IE6而破壞網站,讓人們有動力切換到現代瀏覽器? ;-) – Mnementh 2008-10-24 15:21:18