【问题标题】:How can I make the body fill the entire available space, not just the screen?我怎样才能让身体充满整个可用空间,而不仅仅是屏幕?
【发布时间】:2015-02-17 11:04:41
【问题描述】:

我有一个侧边栏,无论屏幕放大到何种程度,我都希望它完全位于主体的右侧。所以如果屏幕100%缩放,应该和屏幕右边框对齐,但是我越放大,它应该慢慢隐藏,随着身体的右边框向右移动。

我怎样才能做到这一点?就像我现在的代码一样,无论我放大多少,侧边栏都与屏幕的右边框完全对齐。所以如果我放大然后向右滚动,侧边栏和右边框之间会显示大量空白身体。

html {
  width: 100%;
  height: 100%;
}

body {
  width: 100%;
  height: 100%;
}

#sidebar {
  position: relative;
  right: 0%;
}

【问题讨论】:

  • 我们能看到你的 HTML 吗?
  • @Siyah 我现在只是想让它在最基本的层面上工作,所以现在我只有<div id="sidebar">Test</div>
  • 我将您提供的代码与您所说的“所有 html”放在一个 jsfiddle 中,那么,您的错误在哪里? jsfiddle.net/brilliancedisplay/2zukk5r8
  • 我不确定那个 jsfiddle 是怎么回事;侧边栏甚至不在页面的右侧。但我的问题是,当我放大时,侧边栏应该与正文的右边框一起向右移动,但它却与屏幕的右边框对齐。

标签: html css position positioning


【解决方案1】:

我想你想要

    html { height: 100%; min-height: 100%; }
    body { min-height: 100%; }

【讨论】:

    【解决方案2】:

    好的,所以,只有这个:

    CSS:

    body, html {
      width: 100%;
      height: 100%;
        background:blue;
    }
    #sidebar {
      position: relative;
      right: 0%;
    }
    

    HTML:

    <div id="sidebar">Test</div>
    

    侧边栏不能位于页面右侧。不可能。要让它粘在窗口的右侧,您需要这样:

    CSS:

    body, html {
        width: 100%;
        height: 100%;
        background:blue;
        margin:0;
        padding:0;
    }
    #sidebar {
        position: absolute;
        right: 0;
        background:white;
    }
    

    jsfiddle:

    但我想这就是你要找的东西: 如果你想让它成为一个侧边栏并且仍然让它相对定位,你需要一个主要内容和一个包装器。看到这个jsfiddle

    CSS:

    body, html {
        width: 100%;
        height: 100%;
        background:blue;
        margin:0;
        padding:0;
    }
    #wrapper{
        width:300px;
        height:auto;
        margin:0 auto;
        position:relative;
        padding:0;
    }
    #content{
        width:200px;
        height:auto;
        float:left;
        padding:0;
        margin:0;
        background:yellow;
    }
    #sidebar {
        width:100px;
        height:auto;
        position: relative;
        float:left;
        padding:0;
        margin:0;
        background:white;
    }
    

    HTML:

    <div id="wrapper">
    <div id="content">CONTENT</div>
    <div id="sidebar">SIDEBAR</div>
    </div>
    

    我对最后一个进行了疯狂的猜测,认为这就是你最终想要做的事情。在这种情况下,即使您缩放/缩小窗口并向右滚动,您也会一直看到蓝色背景。没有白色区域。

    【讨论】:

    • 我想要做的是让侧边栏始终贴在正文的右边框上。无论正在查看身体的哪个部位,或者视图的放大/缩小程度如何,侧边栏都应该不断地被推到身体可以去的最右边。如果我只能看到身体的左半部分,我应该根本看不到侧边栏。如果我一直放大并尽可能向右滚动,侧边栏应该一直延伸到我的屏幕右侧。我希望这很清楚。
    • @user3739453 我的朋友,你在滥用 HTML 吗? 标签定义文档的正文。 元素包含 HTML 文档的所有内容,例如文本、超链接、图像、表格、列表等。因此,正文包含您的侧边栏。恐怕您将正文与我上一个示例中
      的角色混淆了。
    • 那么可以查看的整个区域的术语是什么?换句话说,如果你尽可能地缩放,然后滚动直到页面在所有四个方向上都停止滚动,即使你滚动到 body 之外;整个区域的术语是什么?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-18
    • 1970-01-01
    相关资源
    最近更新 更多