从容器底部开始渲染列表

时间:2015-06-22 10:13:41

标签: css

尝试下拉,但努力弄清楚如何让按钮开始下方的下拉菜单。我有这个:

https://jsfiddle.net/wg4apx2q/

<div>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
        <li>Item 3</li>
    </ul>
</div>

<style>
div{
    width: 200px;
    height: 100px;
    background: #ddd;
    position: relative;
}
ul {

}
li {
    width: 100px;
    height: 50px;
    background: yellow;
}
</style>

我正试图解决这个问题:

Desired

如何让下拉列表开始在其容器下方渲染并继续直接向下扩展?

2 个答案:

答案 0 :(得分:1)

&#13;
&#13;
nav ul ul {
  display: none;
}
nav ul li:hover > ul {
  display: block;
}
nav ul {
  background: #efefef;
  background: linear-gradient(top, #efefef 0%, #bbbbbb 100%);
  background: -moz-linear-gradient(top, #efefef 0%, #bbbbbb 100%);
  background: -webkit-linear-gradient(top, #efefef 0%, #bbbbbb 100%);
  box-shadow: 0px 0px 9px rgba(0, 0, 0, 0.15);
  padding: 0 20px;
  border-radius: 10px;
  list-style: none;
  position: relative;
  display: inline-table;
}
nav ul:after {
  content: "";
  clear: both;
  display: block;
}
nav ul li {
  float: left;
}
nav ul li:hover {
  background: #4b545f;
  background: linear-gradient(top, #4f5964 0%, #5f6975 40%);
  background: -moz-linear-gradient(top, #4f5964 0%, #5f6975 40%);
  background: -webkit-linear-gradient(top, #4f5964 0%, #5f6975 40%);
}
nav ul li:hover a {
  color: #fff;
}
nav ul li a {
  display: block;
  padding: 25px 40px;
  color: #757575;
  text-decoration: none;
}
nav ul ul {
  background: #5f6975;
  border-radius: 0px;
  padding: 0;
  position: absolute;
  top: 100%;
}
nav ul ul li {
  float: none;
  border-top: 1px solid #6b727c;
  border-bottom: 1px solid #575f6a;
  position: relative;
}
nav ul ul li a {
  padding: 15px 40px;
  color: #fff;
}
nav ul ul li a:hover {
  background: #4b545f;
}
nav ul ul ul {
  position: absolute;
  left: 100%;
  top: 0;
}
&#13;
<nav>
  <ul>
    <li><a href="#">Home</a>
    </li>
    <li><a href="#">Tutorials</a>
      <ul>
        <li><a href="#">Photoshop</a>
        </li>
        <li><a href="#">Illustrator</a>
        </li>
        <li><a href="#">Web Design</a>
          <ul>
            <li><a href="#">HTML</a>
            </li>
            <li><a href="#">CSS</a>
            </li>
          </ul>
        </li>
      </ul>
    </li>
    <li><a href="#">Articles</a>
      <ul>
        <li><a href="#">Web Design</a>
        </li>
        <li><a href="#">User Experience</a>
        </li>
      </ul>
    </li>
    <li><a href="#">Inspiration</a>
    </li>
  </ul>
</nav>
&#13;
&#13;
&#13;

答案 1 :(得分:0)

您可以将ul定位到absolute

&#13;
&#13;
div{
	width: 200px;
	height: 100px;
	background: #ddd;
	position: relative;
}
ul {
	   position: absolute;
       bottom:-150px; /* wrapper div height + li hight*/
       margin:0;
       padding-left:0;
       list-style-type:none;
}
li {
	width: 100px;
	height: 50px;
	background: yellow;
}
&#13;
<div>
	<ul>
		<li>Item 1</li>
		<li>Item 2</li>
		<li>Item 3</li>
	</ul>
</div>
&#13;
&#13;
&#13;