html - 按内容显示下拉菜单宽度

标签 html css

我有一个下拉菜单,我想更改它,下拉菜单的宽度将按内容显示。我想改变,那个下拉菜单<li>将仅在主线下的一排 <li>彼此相邻。

我在 jsfiddle 上有它,我在那里使用了 sass。 http://jsfiddle.net/hhkrp71f/3/

这是我的解决方案:

.header__links {
  float: right;
  margin-top: 40px;
}
.header__links nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.header__links nav ul li {
  font-weight: 100;
  font-style: italic;
  color: red;
  float: left;
  margin-left: 25px;
}
.header__links nav ul li a {
  color: red;
  text-decoration: none;
}
.header__links nav ul li a:hover {
  color: red;
  transition: color 0.7s ease;
}
.header__links nav ul li:hover ul {
  visibility: visible;
  opacity: 1;
  filter: alpha(opacity=100);
}
.header__links nav ul li ul {
  visibility: hidden;
  opacity: 0;
  filter: alpha(opacity=0);
  -webkit-transition: 500ms ease;
  -moz-transition: 500ms ease;
  -o-transition: 500ms ease;
  transition: 500ms ease;
  position: absolute;
  margin: 0;
  padding: 20px 0 0;
}
.header__links nav ul li ul li {
  margin: 0;
  padding: 10px;
  background-color: blue;
}
<div class="header__links">
  <nav>
    <ul>
      <li><a href="#">Test</a>
        <ul>
          <li><a href="#">Test Test Test</a></li>
          <li><a href="#">Test Test</a></li>
          <li><a href="#">Test Test Test</a></li>
          <li><a href="#">Test Test</a></li>
        </ul>
      </li>
      <li><a href="#">Test</a></li>
      <li><a href="#">Test</a></li>
      <li><a href="#">Test</a></li>
    </ul>
  </nav>
</div>

最佳答案

right: 0 添加到您的内部 ul

.header__links {
  float: right;
  margin-top: 40px;
}
.header__links nav ul {
  list-style: none;
  margin: 0;
  padding: 0;
}
.header__links nav ul li {
  font-weight: 100;
  font-style: italic;
  color: red;
  float: left;
  margin-left: 25px;
}
.header__links nav ul li a {
  color: red;
  text-decoration: none;
}
.header__links nav ul li a:hover {
  color: red;
  transition: color 0.7s ease;
}
.header__links nav ul li:hover ul {
  visibility: visible;
  opacity: 1;
  filter: alpha(opacity=100);
}
.header__links nav ul li ul {
  visibility: hidden;
  opacity: 0;
  filter: alpha(opacity=0);
  -webkit-transition: 500ms ease;
  -moz-transition: 500ms ease;
  -o-transition: 500ms ease;
  transition: 500ms ease;
  position: absolute;
  margin: 0;
  padding: 20px 0 0;
  right: 0;
}
.header__links nav ul li ul li {
  margin: 0;
  padding: 10px;
  background-color: blue;
}
<div class="header__links">
  <nav>
    <ul>
      <li><a href="#">Test</a>
        <ul>
          <li><a href="#">Test Test Test</a></li>
          <li><a href="#">Test Test</a></li>
          <li><a href="#">Test Test Test</a></li>
          <li><a href="#">Test Test</a></li>
        </ul>
      </li>
      <li><a href="#">Test</a></li>
      <li><a href="#">Test</a></li>
      <li><a href="#">Test</a></li>
    </ul>
  </nav>
</div>

关于html - 按内容显示下拉菜单宽度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47011523/

相关文章:

html - 元素在浏览器调整大小时移出位置,没有任何帮助

android - 如何在android中的字符串中的每个 "\n"之后添加行间距?

internet-explorer-8 - 当在我的页面中使用时,JsDatePick 的数据选择器在 IE8 中的外观全部损坏

html - 当一个div在另一个div前面时如何屏蔽它

css - 如何在 HTML5 的内联上下文中嵌套 block 元素?

javascript - Google 脚本错误 : "No HTML file named index.html was found. (line 2, file "Code", 项目 "Version 1")”

javascript - 为什么输入模式属性不适用于数字?

php - 将整个 Smarty 模板包装在 {strip} 标签中有什么问题吗?

css - 中心包装上的间距链接

html - Bootstrap,如何使容器流体的高度为 100%