我只希望内容可滚动

时间:2015-01-21 11:08:01

标签: html css css3

This code可以根据需要在Chrome中使用,但不能在IE或Firefox中使用。为了更清楚并满足关于评论代码比率的约束,我希望当视口低于300px或内容不适合时,只有内容区域可滚动。实际上IE是我唯一关注的问题。如何在IE> = v10。

下实现相同的行为



* {
  font-family: Helvetica, Sans;
  border: 0px;
  margin: 0px;
  padding: 0px;
}
html,
body {
  height: 100%;
  overflow: hidden;
}
#table {
  display: table;
  height: 100%;
  width: 100%;
}
.navBar {
  width: auto;
  height: 72px;
  overflow: auto;
  border-bottom: 1px solid #bbb;
  display: table-row;
}
.results {
  background: gray;
  width: 100%;
  height: 100%;
  overflow: auto;
  display: table-row;
}
.results > div {
  height: 100%;
  overflow: auto;
}
@media screen and (max-height: 300px) {
  footer {
    display: none;
  }
}

<body>
  <div id="table">
    <div class='navBar'>header</div>
    <div class='results'>
      <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi faucibus sem quam, quis finibus leo pretium sit amet. Sed imperdiet venenatis enim at sagittis. Praesent porta purus nec aliquet pellentesque. Nunc bibendum urna non risus lacinia, at
        venenatis nisl interdum. Duis porta tristique augue vel dictum. Curabitur feugiat tincidunt risus eget semper. Aliquam quis cursus nibh, feugiat commodo arcu. Aliquam non dolor vel ex dapibus interdum vitae nec lorem. Phasellus fermentum neque
        ut nibh hendrerit tempus. Pellentesque sit amet ligula dui. Donec laoreet est erat. Etiam aliquet sem sit amet quam tempus aliquam. Vivamus eleifend nunc ipsum, a viverra neque efficitur at. Duis mi nisl, accumsan quis ex et, aliquam lobortis
        lectus. Vestibulum luctus diam eu mattis gravida. Quisque nisi felis, posuere vitae purus sit amet, pellentesque fermentum enim. Proin eu dui ex. Nunc nec erat sed augue rhoncus gravida. Suspendisse potenti. Pellentesque mattis lorem felis, a
        venenatis odio gravida eget. Nam dictum dui efficitur pellentesque feugiat. Aliquam quis velit sit amet nibh rhoncus lacinia. Ut sed aliquet odio. Phasellus ut eros a nulla viverra convallis aliquet vel risus. Integer eu tellus congue, sodales
        leo et, placerat nisi. Quisque semper bibendum tortor. Maecenas sed est sit amet neque convallis lacinia. Praesent vitae dapibus nibh, accumsan lobortis velit. Mauris sed imperdiet lectus. Nunc est turpis, lobortis sit amet hendrerit eu, eleifend
        sed dui. Vivamus vulputate semper elit, vitae finibus metus mollis sed.</div>
    </div>
    <footer>footer</footer>
  </div>
</body>
&#13;
&#13;
&#13;

3 个答案:

答案 0 :(得分:0)

你怎么看? Is it a solution?我从here

得到了这个想法
<div class="table">
<!-- Header -->
<div class="row header">Header</div>
<div class="row content">
    <!-- Use inner div's with position relative and absolute, to fix cell height, making it overflow correctly. -->
    <div class="wrapper">
        <div class="inner-content">
            <input type="text" />
            <div>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Morbi faucibus sem quam, quis finibus leo pretium sit amet. Sed imperdiet venenatis enim at sagittis. Praesent porta purus nec aliquet pellentesque. Nunc bibendum urna non risus lacinia, at venenatis nisl interdum. Duis porta tristique augue vel dictum. Curabitur feugiat tincidunt risus eget semper. Aliquam quis cursus nibh, feugiat commodo arcu. Aliquam non dolor vel ex dapibus interdum vitae nec lorem. Phasellus fermentum neque ut nibh hendrerit tempus. Pellentesque sit amet ligula dui. Donec laoreet est erat. Etiam aliquet sem sit amet quam tempus aliquam. Vivamus eleifend nunc ipsum, a viverra neque efficitur at. Duis mi nisl, accumsan quis ex et, aliquam lobortis lectus. Vestibulum luctus diam eu mattis gravida. Quisque nisi felis, posuere vitae purus sit amet, pellentesque fermentum enim. Proin eu dui ex. Nunc nec erat sed augue rhoncus gravida. Suspendisse potenti. Pellentesque mattis lorem felis, a venenatis odio gravida eget. Nam dictum dui efficitur pellentesque feugiat. Aliquam quis velit sit amet nibh rhoncus lacinia. Ut sed aliquet odio. Phasellus ut eros a nulla viverra convallis aliquet vel risus. Integer eu tellus congue, sodales leo et, placerat nisi. Quisque semper bibendum tortor. Maecenas sed est sit amet neque convallis lacinia. Praesent vitae dapibus nibh, accumsan lobortis velit. Mauris sed imperdiet lectus. Nunc est turpis, lobortis sit amet hendrerit eu, eleifend sed dui. Vivamus vulputate semper elit, vitae finibus metus mollis sed.</div>
            <div>Some text.</div>
        </div>
    </div>
</div>
<!-- footer -->
<div class="row footer">Footer</div>

html, body {
height: 100%;
max-height: 100%;
padding:0px;
margin:0px;
}
.table, .row {
    outline: none;
    border: none;
    outline-style: none;
    vertical-align: top;
    text-align: left;
}
.table {
    border-collapse: collapse;
    display: table;
    table-layout: fixed;
    /* This will ensure the cells within the table will keep there width. */
    width: 100%;
    height: 100%;
}
.row {
    display: table-row;
    width: 100%;
}
.header {
    background-color: red;
}
.content {
    height: 100%;
}
.footer {
    background-color: green;
}
.wrapper {
    position:relative;
    height: 100%
}
.inner-content {
    overflow: auto;
    position: absolute;
    top: 0;
    right:0;
    bottom: 0;
    left: 0;
}
@media screen and (max-height: 300px) {
    .footer {
        display: none !important;
    }
}

答案 1 :(得分:0)

我不完全确定“只有内容区域可滚动”是什么意思。这是我对它的解释:

http://jsfiddle.net/5q1Lgsy6/11/

通过使用position: fixed width:100%顶栏,您可以将其设置为只有其下方的内容才能滚动。

我抛弃了所有display: table个标签,除非该内容应该显示在实际的桌面上,否则您并不需要它们来组织您的内容。

这是CSS:

* {
    font-family: Helvetica, Sans;
    border: 0px;
    margin: 0px;
    padding: 0px;
}
html, body {
    height: 100%;
}
#table {
    height: 100%;
    width: 100%;
}
.navBar {
    background-color: white;
    top: 0;
    width: 100%;
    height: 72px;
    border-bottom: 1px solid #bbb;
    position: fixed;
}
.results {
    margin-top: 72px;
    background: gray;
    width: 100%;
    height: 100%;
    overflow: auto;
}
.results > div {
    height: 100%;
    overflow: auto;
}
@media screen and (max-height: 300px) {
    footer {
        display: none;
    }
}

编辑:如果您还希望页脚永久固定,请将其添加到您的CSS:

footer {
    position: fixed;
    bottom: 0;
    width: 100%;
    height: 20px;
    background-color: white;
}

答案 2 :(得分:-2)

有一种方法可以为IE

编写css

仅限IE-6

* html #div { 
    height: 300px;
}

仅限IE-7

*+html #div { 
    height: 300px;
}

仅限IE-8

#div {
  height: 300px\0/;
}

IE-7&amp; IE-8

#div {
  height: 300px\9;
}

仅限IE-7:

#div {
   _height: 300px;
}

从IE 6和LOWER隐藏:

#div {
   height/**/: 300px;
}

html > body #div {
      height: 300px;
}