【问题标题】:Change height of a list item without affecting other list items更改列表项的高度而不影响其他列表项
【发布时间】:2013-09-24 05:07:14
【问题描述】:

我的页脚只包含一个无序列表,如下所示:

我正在尝试创建如下所示的悬停状态:

因此,当您将鼠标悬停在列表项上时,它会向上展开并显示下方的图像。

到目前为止,我为实现这一目标所做的一切尝试都会导致所有列表项的高度在一个列表项发生时扩展;我似乎无法让悬停的列表项在不影响所有其他项的情况下扩展高度。我也无法弄清楚如何让列表项的“文本”部分在悬停状态下保持在列表项的顶部。

编辑: 请注意,列表项的数量是动态的,并且网站是响应式的。我需要列表项始终填写浏览器窗口的整个宽度(无论窗口有多宽,以及有多少列表项)。我在无序列表上使用display: tabletable-layout: fixed,在列表项上使用display: table-cell 来实现这一点。

我还需要a 填充整个列表项,以便单击图像或文本区域将用户带到a href="..." 位置。

这是一个带有我当前 HTML 和 CSS 的 jsFiddle: http://jsfiddle.net/tsfMD/

我当前的 HTML 是:

<footer>
    <ul>
        <li><a href="#">Text</a></li>
        <li><a href="#">Text</a></li>
        <li><a href="#">Text</a></li>
        <li><a href="#">Text</a></li>
        <li><a href="#">Text</a></li>
    </ul>
</footer>

我当前的 CSS 是:

footer {
  position: fixed;
  bottom: 0px;
}

footer ul {
  padding: 0;
  margin: 0;
  list-style: none;
  display: table;
  width: 100%;
  table-layout: fixed;
}

footer ul li {
  margin: 0;
  display: table-cell;
  border-right: 1px solid #d1d2d4;
  border-left: 1px solid #d1d2d4;
  vertical-align: bottom;
  background-image: url('http://puu.sh/4ySYl.png');
  background-position: center bottom;
  background-repeat: no-repeat;
}

footer ul li:hover {
  height: 230px;
}

footer ul li:first-child {
  border-left: none;
}

footer ul li:last-child {
  border-right: none;
}

footer ul li a {
  text-decoration: none;
  display: block;
  height: 50px;
  line-height: 50px;
  background-color: #eee;
  padding: 0 40px;
}

【问题讨论】:

  • 不使用Javascript,我想?
  • 你在寻找类似this的东西吗?
  • 忽略我上面贴的,Soulwish 的回答似乎简单多了:)
  • 谢谢哈利,你的似乎按预期工作。唯一的问题是我需要在两种状态之间使用 CSS 转换,但您不能转换 display 属性。有什么想法吗?
  • @Jordan:你是对的。 display 中断转换。让我看看能不能找到其他选择。

标签: css


【解决方案1】:

约旦。在这种情况下,您应该对列表项使用 inline-block(而不是 table-cell)。这将允许您为每个单独的列表项设置动态高度。所以,而不是

footer ul li {
  display: table-cell;
}

你应该使用

footer ul li {
  display: inline-block;
}

所有其他样式和属性可以保持不变。

另外,我更新了您的fiddle

【讨论】:

  • 很好的答案,但分享您的代码而不是突出显示文本,如果您这样做会支持您并解释您在那里做了什么
  • 这是更好的伙伴:)
  • 感谢您的建议,@Mr.外星人和哈利。我是新来的:)
  • @Soulwish 现在投票了 :) 我们强迫用户分享他们的代码因为如果小提琴链接失效,你的回答将毫无用处:)
  • 我应该在问题中指定这一点,但我不能只更改列表项以显示为内联块,因为该网站是响应式的,我需要列表项填写完整宽度始终显示浏览器窗口,无论它们有多少。
猜你喜欢
  • 1970-01-01
  • 2020-05-12
  • 2015-06-26
  • 2014-11-07
  • 2023-04-10
  • 2022-09-28
  • 1970-01-01
  • 1970-01-01
  • 2016-06-06
相关资源
最近更新 更多