首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用*页面级别*滚动条滚动DIV (其高度设置为可见区域)

使用*页面级别*滚动条滚动DIV (其高度设置为可见区域)
EN

Stack Overflow用户
提问于 2014-11-16 01:53:04
回答 4查看 196关注 0票数 0

这是一张丑陋的图片,展示了我想要达到的目标。基本上,我需要使用页面滚动条来滚动DIV (其高度设置为可见区域)。

在纯html5 5/CSS中,这是可能的吗?如果是的话,如何做到呢?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2014-11-16 04:34:49

不如用一堆固定位置边框元素来构造你的div呢?就像这样:

代码语言:javascript
复制
<!-- don't forget to declare a doctype -->
<body>
    <!-- leave these empty -->
    <div id="frameTop"></div>
    <div id="frameBottom"></div>
    <div id="frameLeft"></div>
    <div id="frameRight"></div>

    <!-- put stuff in these -->
    <div id="top">Content here</div>
    <div id="content">
        <h3>Page title</h3>
        <p>Text here.</p>
    </div>
    <div id="bottom">Tabs</div>
</body>

将borderTop设置为底部边框样式,borderBottom设置为顶部边框样式,然后borderLeft和borderRight具有坚实的背景色以隐藏角落的边框。

小提琴

编辑:i 找到另一种方法,这可能更好。HTML当然更干净。与其对frameTop、frameBottom等使用空div,不如在body: and和body:after上使用css psuedo元素。然后HTML看起来更像这样:

代码语言:javascript
复制
<body>

    <div id="top">Content here</div>

    <div class="tab">
        <input type="radio" id="tab1" name="tab" class="radioTab" checked="checked" />
        <div class="content">
            <h3>Tab title</h3>
            <p>Text here.</p>
        </div>
        <label for="tab1">Tab 1</label>
    </div>

    <div class="tab">
        <input type="radio" id="tab2" name="tab" class="radioTab" />
        <div class="content">
            <h3>Tab title 2</h3>
            <p>Different text here.</p>
        </div>
        <label for="tab2">Tab 2</label>
    </div>

</body>

看这把小提琴用于使其工作的CSS。我对小提琴中的保证金定义有点懒散,但对于概念的证明来说,它的效果足够好。

票数 1
EN

Stack Overflow用户

发布于 2014-11-16 05:07:50

我做了一个更完整的小提琴手,演示了如何伪造设计所需的边框。

JSFIDDLE

请注意内容div顶部和底部的额外填充,它的背景色和边框的使用看起来就像内部框是它自己的区域。橙色的一面实际上与它的其余部分滚动,顶部和底部橙色部分连接到页眉和页脚。

代码语言:javascript
复制
html, body{
background-color:orange;
margin:0;padding:0;
}

header{
position:fixed;
top:0;
width:100%;
background-color:orange;
}

footer{
position:fixed;
bottom:0;
width:100%;
background-color:orange;
}

header section, footer section{
background-color:#fff;
height:30px;
}

header .frame{
border-bottom:1px solid #222;
margin:0 30px 0 30px;
height:30px;
}

footer .frame{
border-top:1px solid #222;
margin:0 30px 0 30px;
height:30px;
}

.content{
background-color:#fff;
border-right:1px solid #222;
border-left:1px solid #222;
min-height:100%;
margin:0 30px 0 30px;
    padding:60px 24px;
}

编辑:刚刚注意到你的脚有点不同,但是你可以调整这个来达到这个效果。

票数 1
EN

Stack Overflow用户

发布于 2014-11-16 02:09:56

有几种方法可以达到这个效果,因为你要求一个滚动的div,这就是我要做的:

JSFIDDLE

CSS:

代码语言:javascript
复制
div {
    width: 100%;
    height: calc(100vh - 100px);
    overflow: scroll;
}
nav {
    width: 100%;
    height: 100px;
    background: #f00;
}

HTML:

代码语言:javascript
复制
<div>some content</div>
<nav>buttons</nav>
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26952919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档