html - CSS:固定/固定顶部菜单栏

标签 html css

我在 SO 上通读了许多关于此的问题,但没有真正找到我要找的东西。我在下面有简单的 HTML 和 CSS 代码。我想要做的是将滚动条仅放在“left_content”DIV 上。正如您现在在示例中看到的那样,它位于“左侧”DIV 上。如果我将 CSS 中的“scroll:auto”从#left 移动到#left_content,则滚动条出现在右侧。这是为什么?以及如何将滚动条放在#left_content 上。谢谢。

<style>
  #left{float:left; width:50%; height:100%; overflow:auto;}
  #right{float:left; width:50%; height:100%;}  
  #left_menu{width:100%;}
  #left_content{width:100%;}
  .clear{clear:both;}
</style>
<div id="left">
  <div id="left_menu">
  menu point 1 | menu point 2 | menu point 3
  </div>
  <div id="left_content">
    1 <br / >2 <br / >3 <br / >4 <br / >5 <br / >6 <br / >7 <br / >8 <br / >9 <br / >10 <br / >11 <br / >12 <br / >13 <br / >14 <br / >15 <br / >16 <br / >17 <br / >18 <br / >19 <br / >20 <br / >21 <br / >22 <br / >
    1 <br / >2 <br / >3 <br / >4 <br / >5 <br / >6 <br / >7 <br / >8 <br / >9 <br / >10 <br / >11 <br / >12 <br / >13 <br / >14 <br / >15 <br / >16 <br / >17 <br / >18 <br / >19 <br / >20 <br / >21 <br / >22 <br / >
    1 <br / >2 <br / >3 <br / >4 <br / >5 <br / >6 <br / >7 <br / >8 <br / >9 <br / >10 <br / >11 <br / >12 <br / >13 <br / >14 <br / >15 <br / >16 <br / >17 <br / >18 <br / >19 <br / >20 <br / >21 <br / >22 <br / >
  </div>
</div>
<div id="right">
 Some other content that is adjusted so that there is no scrolling needed.
</div>
<div class="clear"></div>​

最佳答案

滚动条出现在右侧而不是左侧 div 的原因是您将左侧和右侧的高度都设置为 100%。出现的滚动条不是针对右侧的 div,而是针对正文/文档。

当你有固定的高度时,Overflow css 效果最好。如果您仍然需要 100% 的高度,我们可以包括:

#left { max-height: 500px;}

如果需要设置左边div的高度为窗口高度,可以使用JS。

$('#left').css('max-height',$(window).height());

JSfiddle:http://jsfiddle.net/h4adr4qs/

或者使用新的 css viewport 值:

#left {max-height:100vh;}

我不确定有多少浏览器支持“vh”单位。但我很确定很快就会成为标准。

如果您需要固定菜单但只有#left_content 可以滚动,则需要将最大高度设置为该div,

#left_content { max-height: 500px;overflow:scroll}

如果您这样做,请从#left css 中移除溢出属性

关于html - CSS:固定/固定顶部菜单栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26941570/

相关文章:

html - 向 HTML 文档添加一些不可见的内容以进行测试

JavaScript、html 和 React js。调用 this.state.filteredUsers.map 时出错((用户)

html - CSS 背景图像的浏览器问题,无法在 Chrome 中完美显示

html - 如何为 html 控件指定默认类名

css - jstree 没有从 css url 加载 MVC5 中的图标

html - Go - 不呈现 HTML 注释

html - 1px x 1px inline-block div,不需要的间距

javascript - 为什么我无法在 Bootstrap 导航中使用下拉菜单?

html - 两个 float div 的 css 分隔符

HTML 绝对位置是否为其子项创建新的定位系统?