【问题标题】:100% Height and Width, CSS and Dynamic Content100% 高度和宽度、CSS 和动态内容
【发布时间】:2011-08-07 09:50:06
【问题描述】:

我环顾四周,还没有找到我正在寻找的东西,所以希望这个问题还没有在其他地方得到回答!

无论如何,有问题的布局可以在HERE 找到。我想要实现的是固定宽度的左列和流体宽度的内容区域。在大多数情况下,它工作得很好。但是,当内容扩展超出浏览器窗口的高度或宽度时,这些部分似乎不会像我想要的那样扩展。注意顶部的灰色条没有到达页面内容的右侧,左列的高度也没有到达页面内容的底部。

我是否认为这是因为通过 CSS 将某些东西设置为 100% 高度或 100% 宽度是静态的这一事实?即,无论浏览器窗口的高度/宽度是什么,当 CSS 被调用时,它都会被保存,就是这样?

如果是这样,也许我需要研究一些其他方法来设置元素的高度和宽度。有任何想法吗?另外,请注意页面中的虚拟内容现在是图像。我想模糊名称等以保持数据的私密性。

感谢您的帮助!!!

【问题讨论】:

    标签: html css fluid-layout browser-width


    【解决方案1】:

    如果背景是主要问题,您可以设置包装器的样式。这就是我最终为一个不守规矩的侧边栏所做的,因为我不想求助于 JS 并且其他解决方案对我不起作用。就我而言,侧边栏的问题是因为 jQuery 选项卡,这是主题的一部分。当我切换到选项卡时,侧边栏不会延伸到全高,所以背景也不会。

    HTML

    <div id="wrapper" class="sidebar-right">
        <div id="maincontent">
        #content
        </div>
        <div id="sidebar-right">
        #sidebar content
        </div>
    </div>
    

    CSS (这里假设 960 网格和 280px 侧边栏)

    #wrapper.sidebar-right{
        background: white url('images/bg.png');
        background-repeat: repeat-y; /*repeats down the length of the page*/
        background-position: 680px 0px; /*moves it into place*/
        }
    

    如果您有不同的侧边栏或全角布局,请相应地更改背景图像/位置和样式。希望对某人有所帮助。

    【讨论】:

      【解决方案2】:

      这样的事情怎么样...

      尽管如此,左栏只会与正确的内容一样远。如果您希望在没有足够的内容填充时将其扩展到视口的高度,您将需要一些 JavaScript,或者您必须使用填充 html

      的重复背景

      演示:http://jsfiddle.net/wdm954/KyUfN/

      <div id="wrapper">
          <div id="left">left</div>
          <div id="right">       
              <div id="content">
              <div id="top">top</div>
                  content
              </div>
          </div>
      </div>
      

      CSS...

      /* clearfix */
      #wrapper:after, #right:after {
          content: ".";
          display: block;
          height: 0;
          clear: both;
          visibility: hidden;
          font-size: 0;
      }
      
      #wrapper, #right {
          display: inline-block;
      }
      
      #wrapper, #right {
          display: block;
          -height: 1px;
      }
      /* end clearfix */
      
      #wrapper {
          background-color: #000000;
      }
      
      #left {
          float: left;
          width: 300px;
          color: #FFF;
      }
      
      #right {
          margin-left: 300px;
      }
      
      #top {
          height: 100px;
          background-color: #DEDEDE;
          border-bottom: 1px solid #B8B8B8;
      }
      
      #content {
          background-color: #F4EBEB;
          height: 600px;
          width: 1200px;
      }
      

      【讨论】:

      • 抱歉耽搁了这么久,但感谢您的回复。虽然我最终完全改变了我的结构(从而消除了最初的问题),但您的解决方案为我指明了正确的方向。
      猜你喜欢
      • 1970-01-01
      • 2011-08-16
      • 2015-09-11
      • 2022-11-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-20
      • 2015-03-25
      相关资源
      最近更新 更多