草庐IT

html - 固定的 Div 溢出不在屏幕上

coder 2023-08-09 原文

我有一个高度固定为 100% 的边栏。此侧边栏位于固定标题下方,因此顶部位于标题下方。
这会导致溢出滚动无法到达最后一个或两个元素:

JSFiddle

这是 HTML:

<div class="header">
    <div class="header-inner">
        <h1 class="header-image"><a href="/"><img src="/" id="logo" alt="Header Test"/></a></h1>
            <nav class="menu">
            <ul class="nav-lvl-1">
                <li><a href="/">Home</a></li>
                <li><a href="http://google.com/nav">Link1 </a></li>
                <li><a class="has-sub-menu" href="http://google.com/nav">Link2</a>
                    <ul id="test" class="nav-lvl-2">
                        <li><a href="http://google.com/sub">Sublink1</a></li>
                        <li><a href="http://google.com/sub">Sublink2</a></li>
                        <li><a href="http://google.com/sub">Sublink3</a></li>
                        <li><a href="http://google.com/sub">Sublink4</a></li>
                        <li><a href="http://google.com/sub">Sublink5</a></li>
                        <li><a href="http://google.com/sub">Sublink6</a></li>
                        <li><a href="http://google.com/sub">Sublink7</a></li>
                        <li><a href="http://google.com/sub">Sublink8</a></li>
                        <li><a href="http://google.com/sub">Sublink9</a></li>
                        <li><a href="http://google.com/sub">Sublink10</a></li>
                        <li><a href="http://google.com/sub">Sublink11</a></li>
                        <li><a href="http://google.com/sub">Sublink12</a></li>
                    </ul>   
                </li>
                <li><a href="http://google.com/nav">Link3</a></li>
                <li><a class="has-sub-menu" href="http://google.com/nav">Link4</a>
                    <ul class="nav-lvl-2">
                        <li><a href="http://google.com/nav">Sublink1</a></li>
                        <li><a href="http://google.com/nav">Sublink2</a></li>
                        <li><a href="http://google.com/nav">Sublink3</a></li>
                        <li><a href="http://google.com/nav">Sublink4</a></li>
                        <li><a href="http://google.com/nav">Sublink5</a></li>
                    </ul>   
                </li>
                <li><a class="has-sub-menu" href="http://google.com/nav">Link6</a>
                    <ul class="nav-lvl-2">
                        <li><a href="http://google.com/nav">Sublink1</a></li>
                        <li><a href="http://google.com/nav">Sublink2</a></li>
                    </ul>   
                </li>
            </ul>
        </nav>
    </div>
</div>

和 CSS:

.header {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    background: #6ab014;
    z-index: 100001;
    height: 75px;
    overflow: hidden;
    -webkit-transition: height 0.3s;
    -moz-transition: height 0.3s;
    transition: height 0.3s;
}   


/********* Disable link to open sub-menu **********/
.header .header-image a {
   pointer-events: none;
   cursor: pointer;
}


/* Stop header from overlapping container */
.container {
    position: relative;
    margin-top: 75px;
    width: 100%;
}

.main {
    position: block;
    width: 90%;
    max-width: 80em;
    margin: 0 auto;
    padding: 0 1.875em;
}





/********* Side Menu **********/
.header nav  {
    position: fixed;
    left: 0px;
    top: 75px;
    background: #87cc33;
    width: 330px;
    height: 100%;
    z-index: 1000;
    overflow:auto;
    /* Transitions */
    -webkit-transition: all 0.3s ease;
    -moz-transition: all 0.3s ease;
    transition: all 0.3s ease;
}

.header nav  ul
{
    padding: 0;
    margin: 0;
    list-style-type: none;
}


/* Open menu CSS */
.menu.menu-open {
    left: 0px;
}


/********* Navigation Sub-menus **********/
.menu .nav-lvl-2.sub-menu-open-mobile{
    /* Max-height may have to change with more sublinks */
    max-height: 1000px;
    display: block;
    opacity: 1;
}

.menu .nav-lvl-2 {
    background: #a5e25b;
    max-height: 0px;
    display: none;
    opacity: 0;
    /* Transitions */
    -webkit-transition: all .3s ease;
    -moz-transition: all .3s ease;
    transition: all .3s ease;
}

.menu .nav-lvl-2 a {
    border-bottom: 1px solid #fff;
}


/********* Disable links to open sub-menu **********/
.has-sub-menu {
   pointer-events: none;
   cursor: pointer;
}

.menu li:hover {
    cursor: pointer;
}



/********* Link CSS **********/
.menu a{
    display: block;
    color: #fff;
    font-size: 1.1em;
    font-weight: 300;
    border-bottom: 1px solid #a5e25b;
    padding: 1em;
    text-decoration: none;
}



/******* Mobile dropdown arrow - down *********/
a.has-sub-menu:not(.sub-menu-open-mobile):before {
    position: absolute;
    content: "";
    left: 290px;
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-top: 11px solid #fff;
    margin-top: 7px;
}

/******* Mobile dropdown arrow - up *********/
a.has-sub-menu.sub-menu-open-mobile:before {
    position: absolute;
    content: "";
    left: 290px;
    width: 0;
    height: 0;
    border-left: 7px solid transparent;
    border-right: 7px solid transparent;
    border-bottom: 11px solid #fff;
    margin-top: 7px;
}



/******* dropdown link css *********/
a.has-sub-menu:hover:before,
a.has-sub-menu:focus:before,
a.has-sub-menu:active:before {
  border-color: transparent #730800;
}

a.has-sub-menu:hover:after,
a.has-sub-menu:focus:after,
a.has-sub-menu:active:after {
  border-color: #730800;
}

有没有办法使用 CSS 而不是 JQuery/Javascript 来解决这个问题?

最佳答案

如何使用 bottom: 0 而不是 height: 100%。使用 height: 100% 加上 top 值会将其推离页面。

更新了 .header nav ( JSFiddle )

    .header nav  {
        position: fixed;
        left: 0px;
        top: 75px;
        background: #87cc33;
        width: 330px;
        bottom: 0;
        z-index: 1000;
        overflow:auto;
        /* Transitions */
        -webkit-transition: all 0.3s ease;
        -moz-transition: all 0.3s ease;
        transition: all 0.3s ease;
    }

或者,您可以将 heightcalc 一起使用。

height: calc(100% - 75px);

但是browser support这个选项不太好。

关于html - 固定的 Div 溢出不在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30179272/

有关html - 固定的 Div 溢出不在屏幕上的更多相关文章

  1. ruby - 使用 ruby​​ 将 HTML 转换为纯文本并维护结构/格式 - 2

    我想将html转换为纯文本。不过,我不想只删除标签,我想智能地保留尽可能多的格式。为插入换行符标签,检测段落并格式化它们等。输入非常简单,通常是格式良好的html(不是整个文档,只是一堆内容,通常没有anchor或图像)。我可以将几个正则表达式放在一起,让我达到80%,但我认为可能有一些现有的解决方案更智能。 最佳答案 首先,不要尝试为此使用正则表达式。很有可能你会想出一个脆弱/脆弱的解决方案,它会随着HTML的变化而崩溃,或者很难管理和维护。您可以使用Nokogiri快速解析HTML并提取文本:require'nokogiri'h

  2. ruby-on-rails - form_for 中不在模型中的自定义字段 - 2

    我想向我的Controller传递一个参数,它是一个简单的复选框,但我不知道如何在模型的form_for中引入它,这是我的观点:{:id=>'go_finance'}do|f|%>Transferirde:para:Entrada:"input",:placeholder=>"Quantofoiganho?"%>Saída:"output",:placeholder=>"Quantofoigasto?"%>Nota:我想做一个额外的复选框,但我该怎么做,模型中没有一个对象,而是一个要检查的对象,以便在Controller中创建一个ifelse,如果没有检查,请帮助我,非常感谢,谢谢

  3. ruby-on-rails - Rails HTML 请求渲染 JSON - 2

    在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这

  4. ruby-on-rails - 使用 Sublime Text 3 突出显示 HTML 背景语法中的 ERB? - 2

    所以我在关注Railscast,我注意到在html.erb文件中,ruby代码有一个微弱的背景高亮效果,以区别于其他代码HTML文档。我知道Ryan使用TextMate。我正在使用SublimeText3。我怎样才能达到同样的效果?谢谢! 最佳答案 为SublimeText安装ERB包。假设您安装了SublimeText包管理器*,只需点击cmd+shift+P即可获得命令菜单,然后键入installpackage并选择PackageControl:InstallPackage获取包管理器菜单。在该菜单中,键入ERB并在看到包时选择

  5. ruby - 无法在 60 秒内获得稳定的 Firefox 连接 (127.0.0.1 :7055) - 2

    我使用的是Firefox版本36.0.1和Selenium-Webdrivergem版本2.45.0。我能够创建Firefox实例,但无法使用脚本继续进行进一步的操作无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055)错误。有人能帮帮我吗? 最佳答案 我遇到了同样的问题。降级到firefoxv33后一切正常。您可以找到旧版本here 关于ruby-无法在60秒内获得稳定的Firefox连接(127.0.0.1:7055),我们在StackOverflow上找到一个类

  6. ruby - 当使用::指定模块时,为什么 Ruby 不在更高范围内查找类? - 2

    我刚刚被困在这个问题上一段时间了。以这个基地为例:moduleTopclassTestendmoduleFooendend稍后,我可以通过这样做在Foo中定义扩展Test的类:moduleTopmoduleFooclassSomeTest但是,如果我尝试通过使用::指定模块来最小化缩进:moduleTop::FooclassFailure这失败了:NameError:uninitializedconstantTop::Foo::Test这是一个错误,还是仅仅是Ruby解析变量名的方式的逻辑结果? 最佳答案 Isthisabug,or

  7. ruby-on-rails - Nokogiri:使用 XPath 搜索 <div> - 2

    我使用Nokogiri(Rubygem)css搜索寻找某些在我的html里面。看起来Nokogiri的css搜索不喜欢正则表达式。我想切换到Nokogiri的xpath搜索,因为这似乎支持搜索字符串中的正则表达式。如何在xpath搜索中实现下面提到的(伪)css搜索?require'rubygems'require'nokogiri'value=Nokogiri::HTML.parse(ABBlaCD3"HTML_END#my_blockisgivenmy_bl="1"#my_eqcorrespondstothisregexmy_eq="\/[0-9]+\/"#FIXMEThefoll

  8. ruby-on-rails - Ruby url 到 html 链接转换 - 2

    我正在使用Rails构建一个简单的聊天应用程序。当用户输入url时,我希望将其输出为html链接(即“url”)。我想知道在Ruby中是否有任何库或众所周知的方法可以做到这一点。如果没有,我有一些不错的正则表达式示例代码可以使用... 最佳答案 查看auto_linkRails提供的辅助方法。这会将所有URL和电子邮件地址变成可点击的链接(htmlanchor标记)。这是文档中的代码示例。auto_link("Gotohttp://www.rubyonrails.organdsayhellotodavid@loudthinking.

  9. ruby-on-rails - capybara ::ElementNotFound:无法找到 xpath "/html" - 2

    我正在学习http://ruby.railstutorial.org/chapters/static-pages上的RubyonRails教程并遇到以下错误StaticPagesHomepageshouldhavethecontent'SampleApp'Failure/Error:page.shouldhave_content('SampleApp')Capybara::ElementNotFound:Unabletofindxpath"/html"#(eval):2:in`text'#./spec/requests/static_pages_spec.rb:7:in`(root)'

  10. 屏幕录制为什么没声音?检查这2项,轻松解决 - 2

    相信很多人在录制视频的时候都会遇到各种各样的问题,比如录制的视频没有声音。屏幕录制为什么没声音?今天小编就和大家分享一下如何录制音画同步视频的具体操作方法。如果你有录制的视频没有声音,你可以试试这个方法。 一、检查是否打开电脑系统声音相信很多小伙伴在录制视频后会发现录制的视频没有声音,屏幕录制为什么没声音?如果当时没有打开音频录制,则录制好的视频是没有声音的。因此,建议在录制前进行检查。屏幕上没有声音,很可能是因为你的电脑系统的声音被禁止了。您只需打开电脑系统的声音,即可录制音频和图画同步视频。操作方法:步骤1:点击电脑屏幕右下侧的“小喇叭”图案,在上方的选项中,选择“声音”。 步骤2:在“声

随机推荐