好的...首先要做的事情。表格是绝对不行的,你也不需要 jQuery。
您有四个组合在一起的 html 元素,旨在完成此特定任务。
这些<nav>
是<ul>
<li>
和<a>
。现在我在这里做一个假设,既然你希望它适用于所有屏幕尺寸,那么你希望它具有响应性,我还假设因为你想要圆角、渐变、阴影等,那么你的目标就是现代浏览器,ie9+ 等。
记住这里将是我将用来创建菜单的 html。
<nav>
<ul>
<li>
<a href="#">item 1</a>
<ul>
<li><a href="#">sub item 1</a><li>
<li><a href="#">sub item 1</a><li>
<li><a href="#">sub item 1</a><li>
</ul>
</li>
<li>
<a href="#">item 2</a>
<ul>
<li><a href="#">sub item 1</a><li>
<li><a href="#">sub item 1</a><li>
<li><a href="#">sub item 1</a><li>
</ul>
</li>
<li>
<a href="#">item 3</a>
<ul>
<li><a href="#">sub item 1</a><li>
<li><a href="#">sub item 1</a><li>
<li><a href="#">sub item 1</a><li>
</ul>
</li>
</ul>
</nav>
CSS会像这样。请注意,我只创建了您所追求的非常粗略的近似值。
body{
/* Set the overall font*/
font-family:arial, serif;
}
/* Contain floats: h5bp.com/q */
nav > ul:before, nav > ul:after {
content: "";
display: table;
}
nav > ul:after {
clear: both;
}
nav > ul {
*zoom: 1;
}
/* Level one */
nav > ul > li {
float:left;
position:relative;
overflow:visible;
width:30%;
max-width:100px;
}
nav > ul > li > a{
padding:.5em 1em;
}
/* Level 2*/
nav > ul > li > ul {
background:#666;
border-radius: 0 5px 5px 5px;
position:absolute;
z-index:1;
padding:1em;
width:200px; /*set to whatever you need*/
display:none;
}
/* Second list on level 2*/
nav > ul > li:nth-child(2) > ul{
margin-left:-50%;
border-radius: 5px;
}
/* Last list on level 2*/
nav > ul > li:last-child > ul{
right:0;
border-radius: 5px 0 5px 5px;
}
/* Hover level 1*/
nav > ul > li:hover {
background:#666;
border-radius: 5px 5px 0 0;
color:#fff;
}
nav > ul > li:hover > ul {
display:block;
}
nav > ul > li:hover > a,
nav > ul > li > ul a{
color:#fff;
}
nav a {
text-decoration:none;
display:block;
}
我在这里提供了一个工作示例供您使用。如您所见,这将在移动设备上运行。全屏链接在这里调整大小以查看它的工作。