如何设置CSS长度等于最长文本的长度

我有相当具有挑战性的任务.

在这里有这个菜单http://jsfiddle.net/K2Zzh/6/

如果您将鼠标悬停在“治疗”上,则下拉菜单的宽度设置为150像素,这是很好的,但是如果您将鼠标悬停在“aftercare”上,您可以看到该宽度太宽.我尝试了最小宽度,自动,内嵌块,但迄今没有运气.

而不是为每个下拉列表创建一个单独的类,是否有一个聪明的方式来设置宽度只能与每个菜单最长的文本一样大?

我使用的CSS代码下拉…

.dropdown ul {
  position: absolute;
  top: 43px;
  z-index: 100;
  border-left: 1px solid #f6634c;
  border-bottom: 1px solid #f6634c;
  border-right: 1px solid #f6634c;
}
.dropdown ul li a {
  background-color: #fff;
  width: 150px;
  text-align: left;
}​

提前致谢.

我的HTML代码

<ul class="mainNav">
  <li><a href="">Home</a></li>
  <li class="dropdown">
    <a href="">Treatments</a>
    <ul>
      <li><a href="">Body Treatments</a></li>
      <li><a href="">Make Up</a></li>
      <li><a href="">Skincare</a></li>
      <li><a href="">Hand & Feet Treats</a></li>
      <li><a href="">Hair Removal</a></li>
      <li><a href="">Alternative Therapies</a></li>
      <li><a href="">Eye Enhancements</a></li>
    </ul>
  </li>
  <li><a href="">gallery</a></li>
  <li class="dropdown">
    <a href="">Aftercare</a>
    <ul>
      <li><a href="">Body</a></li>
      <li><a href="">Make up</a></li>
      <li><a href="">Skin</a></li>
      <li><a href="">Hand</a></li>
    </ul>
  </li>
  <li><a href="">Contact</a></li>
</ul>

解决方法

第一步:从.dropdown ul li a中删除固定宽度

第二步:添加css li li {width:100%;}

第三步:添加.mainNav li a {white-space:Nowrap;}

已经准备好了:http://jsfiddle.net/K2Zzh/10/

相关文章

Css3如何实现鼠标移上变长特效?(图文+视频)
css3怎么实现鼠标悬停图片时缓慢变大效果?(图文+视频)
jquery如何实现点击网页回到顶部效果?(图文+视频)
css3边框阴影效果怎么做?(图文+视频)
css怎么实现圆角边框和圆形效果?(图文+视频教程)
Css3如何实现旋转移动动画特效