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

Ada*_*dam 19 css width

我的任务非常艰巨.

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

如果将鼠标悬停在"处理"上,则下拉菜单的宽度设置为150px,这很好,但是,如果将鼠标悬停在'aftercare'上,则可以看到此宽度太宽.我尝试过min-width,auto,inline-block,但到目前为止还没有运气.

不是为每个下拉列表创建一个单独的类,是否有一种聪明的方法将宽度设置为仅与每个菜单中最长的文本一样大?

用于下拉的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;
}?
Run Code Online (Sandbox Code Playgroud)

提前致谢.

我的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>
Run Code Online (Sandbox Code Playgroud)

Sot*_*ris 32

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

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

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

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


Hor*_*ren 6

尝试white-space: nowrapwidth: auto.dropdown ul li a课堂上

http://jsfiddle.net/K2Zzh/8/