【问题标题】:Is it possible to align a div to the bottom of a div with position: fixed?是否可以将 div 与具有位置的 div 底部对齐:固定?
【发布时间】:2014-10-22 19:33:13
【问题描述】:

我正在尝试创建一种仅在鼠标悬停在其上时才显示的导航页脚。悬停区域是屏幕高度的 10%,但链接固定在窗口底部。一切正常,但我希望在最底部的文本链接下方有一个 50 像素高的白色背景,以使链接更容易看到,例如在图像、文本等上方。

我可以将整个“悬停”div 设为白色,但我真的更希望底部只有一个较小的。抱歉,如果这有点不清楚 - 我已经创建了一个小提琴来说明。请记住,颜色仅用于说明目的。除了最底部的#white_bg div 之外,所有的 div 都没有背景颜色。

我在这里找到了一些关于将 div 与 position: absolute 对齐到具有 position: relative 的 div 的底部的一些帖子,但不幸的是,我认为我需要在包含的 div 上进行固定定位。

这是一个简单的草图,展示了我想要实现的目标:

这是我正在使用的代码:

<div class="nav-bottom hidden-xs">
    <div id="white_bg">
        <div class="bottom-nav-left hidden-xs">Information</div>    
        <div  class="bottom-nav-right hidden-xs">Index &nbsp;&nbsp;&nbsp; Next project</div>
    </div>
</div>

CSS 和其他所有内容都在这个小提琴中: http://jsfiddle.net/09kj9hpq

我也愿意接受有关如何实现这一目标的其他建议。提前感谢您提供的任何帮助!

【问题讨论】:

  • "我认为我需要在包含的 div 上进行固定定位" 没关系,您仍然可以将某些东西绝对定位到固定位置的 div
  • 感谢您的回复,@Paulie_D。我尝试在#white_bg div 上使用绝对定位,但它没有显示出来。也许我做错了什么?你能让它在小提琴中工作吗?谢谢!!!附言我刚刚添加了一张图片以更好地说明我正在尝试做的事情......

标签: css position css-position vertical-alignment fixed


【解决方案1】:

我想这就是你所追求的

JSfiddle Demo

CSS

body {
    background-color: yellow;
}
.nav-bottom {
    right: 0;
    bottom: 0;
    width: 100%;
    height: 10%;
    min-height: 100px;
    height: 10%;
    z-index: 999;
    cursor: pointer;
    background-color: cyan;
    /* bg color for purposes of this demo only */
}
#white_bg {
    background-color: white;
    position: absolute;
    height: 50px;
    bottom: 0px;
    width:100%;
}
.bottom-nav-left {
    position: absolute;
    bottom: 10px;
    left: 20px;
}
.bottom-nav-right {
    position:absolute;
    bottom: 10px;
    right: 20px;
}
.nav-bottom {
    position: fixed;
    opacity: 0;
    transition: opacity .125s;
    -moz-transition: opacity .125s;
    -webkit-transition: opacity .05s;
    -o-transition: opacity .125s;
}
.nav-bottom:link { /* not required as divs children*/
    opacity: 1;
    transition: opacity .125s;
    -moz-transition: opacity .125s;
    -webkit-transition: opacity .05s;
    -o-transition: opacity .125s;
}
.nav-bottom:hover {
    opacity: 1;
    transition: opacity .125s;
    -moz-transition: opacity .125s;
    -webkit-transition: opacity .05s;
    -o-transition: opacity .125s;

 }

【讨论】:

  • 这正是我所追求的,非常感谢!就这样我可以理解,我认为您只是将#white_bg 上的定位更改为绝对并添加了宽度:100%?我之前尝试过绝对定位,但我想可能什么都没有出现,因为我没有设置宽度?会不会是这个问题?
  • 我把所有孩子的位置都改成了绝对的……还有宽度,是的,这似乎很可能
【解决方案2】:

我不知道我是否这样回答你的问题,但我希望我的回答对你有用。我为您创建了一个小提琴来澄清自己:http://jsfiddle.net/r8mwcwk2/。页脚的代码(我相信这将是您的空白)如下:

#footer {
    background-color:blue;
    position:fixed;
    bottom:0px;
    left:0px;
    right:0px;
    height:50px;
    margin-bottom:0px;
    font-family:helvetica;
    text-align:center;
    line-height:50px;
}

【讨论】:

  • 非常感谢您,但我不太确定这是否正是我所需要的。为了澄清,我想我需要在里面嵌套几个 div。外部 div (.nav-bottom) 将具有固定的定位并位于屏幕的最底部,高度为:10%。这将是“悬停区域”。此 div 内的所有内容都将具有 opacity: 0 直到鼠标悬停在此 div 上。在这里面,我希望有一个 50px 高的 div,里面有一个白色的背景和一些文本链接。我在上面添加了一张图片来帮助说明:0)
  • 这样的? jsfiddle.net/g30rmufy。确保结果屏幕的高度足够高。
  • 没问题!只是一种乐趣:)
猜你喜欢
  • 1970-01-01
  • 2018-08-05
  • 2023-03-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多