移动的垂直堆栈菜单的水平下拉菜单

时间:2014-04-15 21:54:51

标签: html5 css3

我无法使我的下拉菜单响应,因此它从桌面/平板电脑上的水平菜单转到iphone / android的堆叠垂直下拉菜单。

菜单位于bankruptcycanada.com/menu4.html,标记为

<div id='cssmenu'>
  <ul>
   <li><a href='/'>Home</a></li>
   <li><a href='#'>Contact a Trustee</a>
   </li>
   <li class='has-sub'><a href='#'>FAQ</a>
      <ul>
         <li><a href='/question1.htm'>Frequently Asked Questions</a></li>
         <li><a href='/Credit-Counsellors.htm'>Credit Counsellors</a></li>
         <li><a href='/how-bankruptcy-works.htm'>How Bankruptcy Works</a></li>
         <li><a href='/BankruptcySteps.ppt.mht.html'>Steps in a Bankruptcy</a></li>
         <li><a href='/personal1.htm'>Personal Bankruptcy</a></li>
         <li><a href='/business1.htm'>Business Bankruptcy</a></li>
         <li><a href='/conduct-before-filing-bankruptcy.htm'>Conduct Before Going Bankrupt</a></li>
         <li><a href='/meeting-the-trustee.htm'>Meeting the Trustee</a></li>
         <li><a href='/Bankruptcy-Myths.htm'>Bankruptcy Myths</a></li>
         <li class='last'><a href='/blog.htm'>Blog</a></li>
      </ul>
   </li>
   <li><a href='/BankruptcyTermPredictor.php'>Bankruptcy Cost</a></li>
   <li><a href='/ask-a-trustee/'>Ask a Trustee</a></li>
   <li class='has-sub'><a href='#'>Proposals</a>
      <ul>
         <li><a href='/consumer-proposals.htm'>Consumer Proposals - Avoid Bankruptcy</a></li>
         <li><a href='/Bankruptcy-vs-Consumer-Proposals.htm'>Bankruptcy vs. Consumer Proposal</a></li>
         <li class='last'><a href='/ConsumerProposalSteps.html'>Steps in a Consumer Proposal</a></li>
      </ul>
   </li>
      <li class='has-sub'><a href='#'>Exemptions</a>
      <ul>
         <li class='last'><a href='/bankruptcyexemptions.htm'>Find Out What You KEEP</a></li>
      </ul>
   <li class='has-sub'><a href='#'>After Bankruptcy</a>
      <ul>
         <li class='last'><a href='/rebuildcredit1.htm'>Credit After Bankruptcy</a></li>
         <li class='last'><a href='/After-Bankruptcy-Lenders.htm'>After Bankruptcy Lenders</a></li>
      </ul>
   </li>
   <li><a href='/francais.htm'>Francais</a></li>
</ul>
</div>

我有单独的样式表desktop.css / tablet.css / iphone.css / phone.css。

我为桌面编写的样式是:

#cssmenu
#cssmenu,
#cssmenu ul,
#cssmenu li,
#cssmenu a {
  border: none;
  margin: 0;
  padding: 0;

}
#cssmenu {
  height: 37px;
  display: block;
  padding: 0;
  margin: 2px 0;
  border: 1px solid;
  border-radius: 5px;
  width: auto;
}
#cssmenu > ul {
  list-style: inside none;
  padding: 0;
  margin: 0;
}
#cssmenu > ul > li {
  list-style: inside none;
  padding: 0;
  margin: 0;
  float: left;
  display: block;
  position: relative;
}
#cssmenu > ul > li > a {
  outline: none;
  display: block;
  position: relative;
  padding: 8px 16px;
  text-align: center;
  text-decoration: none;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.4);
  font-weight: bold;
  font-size: 13px;
  font-family: Arial, Helvetica, sans-serif;
}
#cssmenu > ul > li:first-child > a {
  border-radius: 5px 0 0 5px;
}
#cssmenu > ul > li > a:after {
  content: '';
  position: absolute;
  border-right: 1px solid;
  top: -1px;
  bottom: -1px;
  right: -2px;
  z-index: 99;
}
#cssmenu ul li.has-sub:hover > a:after {
  top: 0;
  bottom: 0;
}
#cssmenu > ul > li.has-sub > a:before {
  content: '';
  position: absolute;
  top: 18px;
  right: 4px;
  border: 5px solid transparent;
  border-top: 5px solid #FFF;
}
#cssmenu > ul > li.has-sub:hover > a:before {
  top: 19px;
}
#cssmenu ul li.has-sub:hover > a {
  background: #c00404;
  border-color: #c00404;
  padding-bottom: 13px;
  z-index: 999;
}
#cssmenu ul li.has-sub:hover > ul,
#cssmenu ul li.has-sub:hover > div {
  display: block;
}
#cssmenu ul li.has-sub > a:hover {
  background: #c00404;
  border-color: #c00404;
}
#cssmenu ul li > ul,
#cssmenu ul li > div {
  display: none;
  width: auto;
  position: absolute;
  top: 38px;
  padding: 10px 0;
  background: #9C2125;
  border-radius: 0 0 5px 5px;
  z-index: 999;
}
#cssmenu ul li > ul {
  width: 160px;
}
#cssmenu ul li > ul li {
  display: block;
  list-style: inside none;
  padding: 0;
  margin: 0;
  position: relative;
}
#cssmenu ul li > ul li a {
  outline: none;
  display: block;
  position: relative;
  margin: 0;
  padding: 8px 20px;
  font: 10pt Arial, Helvetica, sans-serif;
  color: #ffffff;
  text-decoration: none;
  text-shadow: 1px 1px 0 rgba(0, 0, 0, 0.5);
}
#cssmenu,
#cssmenu > ul > li > ul > li a:hover {
  background: #003d4a;
  background: -moz-linear-gradient(top, #003d4a 0%, #013273 100%);
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #003d4a), color-stop(100%, #013273));
  background: -webkit-linear-gradient(top, #003d4a 0%, #013273 100%);
  background: -o-linear-gradient(top, #003d4a 0%, #013273 100%);
  background: -ms-linear-gradient(top, #003d4a 0%, #013273 100%);
  background: linear-gradient(top, #003d4a 0%, #013273 100%);
}
#cssmenu {
  border-color: #c00404;
}
#cssmenu > ul > li > a {
  border-right: 1px solid #c00404;
  color: #FFF;
}
#cssmenu > ul > li > a:after {
  border-color: #fb2f2f;
}
#cssmenu > ul > li > a:hover {
  background: #c00404;
  color: #ffffff;
}
#cssmenu ul ul a:hover {
  color: #deb40d;
  font-weight:bold; 
}
#cssmenu > ul > li.has-sub > a:hover:before {
  border-top: 5px solid #ffffff;
}

我有两个问题:

1)桌面上的菜单不会拉伸以适应整个屏幕宽度;当最后两个项目仍有空间供他们使用时,它们会下拉一行。我该如何解决这个问题?

2)我需要对css进行哪些更改才能使其作为iphone.css和phone.css的移动响应?我是否需要添加jquery,如果是,那么脚本和哪里?

请帮忙!!我真的很感激这方面的一些帮助。非常感谢。

1 个答案:

答案 0 :(得分:0)

1)看:div#content的宽度为798pxdiv#cssmenu的宽度为autodiv#cssmenudiv#content的子项,因此它与父项(798px)的宽度相同。它是相同的,宽度为798px

您可以稍微重构一下代码。您可以使用宽度创建另外1个包装器(内容外部),这对于您的菜单是可以的,并将div#content放入其中。

2)这个问题可能并不像你想象的那么简单。有很多文章都有方法可以检测iphone等。在so.com上使用google查找一些内容。

例如: http://davidwalsh.name/detect-iphone 或这个 https://stackoverflow.com/a/11820473/2898694
等你可以自己找到很多例子。

但是这样的方法会引起一些问题。如果js关闭怎么办?为什么用户不会使用流行的浏览器?等等等。

我建议你使用mediaqueries:

<link rel="stylesheet" media="screen and (min-device-width: 600px)" href="600.css" />

这将为浏览器加载css文件600.css,该设备的宽度至少为600px。您可以添加css文件以获得更多屏幕宽度。

你可以在这里阅读更多相关信息:http://css-tricks.com/resolution-specific-stylesheets/(还有一个视频可用)

希望这会对你有所帮助。

P.S。:关于小工具。小工具上没有hover操作,因此您的下拉菜单无法正常工作/无法正常工作。您必须考虑小工具用户并找到另一种方式来显示菜单,否则它们将堆叠在主页上。