溢出DIV完全适合浏览器内部

时间:2015-10-01 20:32:48

标签: javascript jquery html5 css3

我正在尝试将垂直滚动条设置为token_response = requests.get(url=cls.token_url, params=cls.params) access_token = token_response.text.split('=')[1] 以替换默认的浏览器垂直滚动条。

from django.http import HttpResponse
from app.services.social_networks.facebook import FacebookFeed

def get_facebook_posts(request, user):
    posts = FacebookFeed.get_posts(user=user)
    if not posts:
        return HttpResponse(status=500, content="Can't fetch posts for desired user", content_type="application/json")
    return HttpResponse(json.dumps(posts), content_type="application/json")
div2

使用上述样式,文档底部留有空白,因为.div1 { height: 200px; } .div2 { overflow-y: auto; height: 500px; }的高度并不完全占据整个文档高度。我该如何解决这个问题?

3 个答案:

答案 0 :(得分:0)

实现目标的步骤是:

  • html&{39}和body' marginpadding设置为0
  • header的高度设置为您想要的固定高度:在您的情况下,200px
  • .main的高度设置为视口的100%减去header高度:calc(100vh - 200px)
  • .main' s overflow-y设置为auto
  • section中创建.main,并设置要显示内容的边距(可选)

然后,我们完成了!请看下面的示例(如果您想以更好的方式测试它,请单击Full Page按钮,然后使用您的窗口调整大小等):



html,
body {
  overflow: hidden;
  padding: 0;
  margin: 0;
}

header {
  height: 120px;
  background-color: blue;
}

div.main {
  height: calc(100vh - 120px);
  background-color: red;
  overflow-y: auto;
}

div.main > section {
  margin: 10px;
}

div.main > div > p {
  text-align: justify;
}

<header>
</header>
<div class="main">
  <section>
    <p>Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nunc tincidunt enim sit amet diam bibendum, ut rhoncus est molestie. Ut vulputate egestas mauris, eget ultricies tellus aliquet nec. Mauris nec neque et lorem volutpat feugiat eget sit amet
      erat. Nullam luctus ultricies augue ut cursus. Mauris pulvinar velit at venenatis semper. Quisque non dolor ante. Nulla tempus id turpis et placerat. Interdum et malesuada fames ac ante ipsum primis in faucibus. Vestibulum justo elit, rhoncus vitae
      massa non, condimentum ornare quam. Duis sit amet orci a risus mollis gravida et quis augue. Donec sed felis ante. Vestibulum rutrum non dolor quis finibus. Vestibulum ultricies leo eget mi elementum, vel vestibulum felis maximus. Donec congue lorem
      vel ante mattis, eu luctus magna finibus. Donec sit amet dui quam.
    </p>
    <p>
      In ullamcorper, nibh eget venenatis imperdiet, augue ante porttitor mauris, nec scelerisque tortor nisi eu arcu. Phasellus libero ligula, eleifend a lobortis in, cursus in tellus. Morbi volutpat, sem a dignissim venenatis, velit nulla vehicula sem, ut
      fermentum augue eros sit amet nisi. Vivamus eget ex id turpis scelerisque lobortis sed sed arcu. Nulla facilisi. Curabitur hendrerit iaculis justo, at iaculis est facilisis sit amet. Donec sem tellus, posuere et metus id, consectetur vehicula sapien.
      Ut eros quam, tempor vitae quam sed, efficitur faucibus sapien. Mauris varius velit orci, sit amet fermentum neque auctor ac. Nullam pretium sed urna et pellentesque.
    </p>
    <p>
      Nunc id odio ligula. Sed ut dolor vitae sem fringilla condimentum. Sed venenatis lacus a magna egestas, nec volutpat quam ullamcorper. Maecenas volutpat eu magna nec ultrices. In egestas, risus id porta condimentum, odio urna ultricies mi, ut elementum
      magna tortor quis eros. Sed a hendrerit felis. Curabitur id sem consectetur, luctus velit in, sollicitudin elit. Proin ac commodo tortor. Proin imperdiet id massa at sollicitudin. Pellentesque enim arcu, venenatis ut dictum et, ornare at tortor.
      Donec et urna nec metus rhoncus auctor. Nunc id nisi nec sem condimentum vehicula a in arcu.
    </p>
    <p>
      Proin eleifend sem massa, at auctor eros porta congue. Aliquam nec aliquet justo, at cursus ipsum. Cras justo leo, varius vel accumsan eget, sagittis sit amet lorem. Donec pulvinar ante ut efficitur eleifend. Duis tincidunt metus non nunc accumsan, vel
      accumsan velit rhoncus. Nunc arcu magna, sollicitudin non urna in, pellentesque dignissim eros. Nam placerat sodales rutrum. Sed quis placerat leo. Nunc porttitor nisi nunc, in feugiat dolor accumsan nec. Aliquam gravida diam ac tempor sodales.
      Ut in sapien gravida odio molestie vehicula sed vel nulla. Integer sed ipsum semper, auctor massa eget, viverra justo. Nullam mattis suscipit lorem vel mattis. Morbi non aliquet nunc. In hac habitasse platea dictumst.
    </p>
    <p>
      Pellentesque dapibus sapien quis congue porta. Maecenas faucibus ex nisi, in varius risus imperdiet ac. Aliquam tristique egestas ligula, sed vestibulum lacus mollis vel. Nunc non ante ut quam placerat suscipit. Lorem ipsum dolor sit amet, consectetur
      adipiscing elit. In a viverra augue, a dignissim justo. Aliquam volutpat nibh ut tellus interdum suscipit. Praesent mi sem, mollis in libero vel, pretium accumsan ex. Nullam gravida diam quis semper faucibus. Nullam cursus felis dolor, sed egestas
      ex lobortis et. Vivamus at maximus felis, vel posuere purus. Quisque pellentesque risus nec posuere suscipit. Aliquam eleifend tempus ante, vel vehicula nunc facilisis quis. Mauris lacinia, felis at ultrices luctus, lacus nisl molestie neque, et
      varius urna velit at massa. Nulla facilisi.
    </p>
  </section>
</div>
&#13;
&#13;
&#13;

答案 1 :(得分:-1)

我并不完全确定你要做什么,但是尝试将其添加到你的css中,看看它是否能修复它。

[OutputCache( NoStore = true, Duration = 0 )]
public class RedirectController
{
    public static Redirect SearchPageByUrlWS( int tipo, string cursoCURL = "", string cursoURL = "", string redirectURL = "", string redirectURLTwo = "" )
    {
        using( var db = new Site() )
        {
            IQueryable<Redirect> redirects;

            if( tipo == 1 )
            {
                redirects = from redirect in db.Redirect
                            where redirect.url == cursoCURL && redirect.cursoCatId > 0
                            select redirect;
            }
            else
            {
                redirects = from redirect in db.Redirect
                            where redirect.url == redirectURL &&
                            redirect.cursoCatId == 0 &&
                            redirect.regulamentoId == 0 &&
                            redirect.noticiaId == 0 &&
                            redirect.ebookId == 0 &&
                            redirect.conhecaId == 0
                            select redirect;
            }

            return (redirects.ToList().Count > 0) ? redirects.ToList()[0] : null;
        }
    }

    public static HS_Redirect SearchPageByUrlHS( int tipo, string cursoCURL = "", string cursoURL = "", string redirectURL = "", string redirectURLTwo = "" )
    {
        using( var dbHS = new HS() )
        {
            IQueryable<HS_Redirect> redirects;

            if( tipo == 4 )
            {
                redirects = from redirect in dbHS.HS_Redirect
                            where redirect.url == redirectURL && redirect.noticiaId > 0 && redirect.unidadeCE == GlobalVars.HotSite.unidadeHS.unidadeCE
                            select redirect;
            }
            else
            {
                redirects = from redirect in dbHS.HS_Redirect
                            where
                                redirect.url           == redirectURL &&
                                redirect.cursoCatId    == 0 &&
                                redirect.regulamentoId == 0 &&
                                redirect.noticiaId     == 0 &&
                                redirect.ebookId       == 0 &&
                                redirect.conhecaId     == 0
                            select redirect;
            }

            return ( redirects.ToList().Count > 0 ) ? redirects.ToList()[0] : null;
        }
    }
}

答案 2 :(得分:-1)

试试这个。 div1和div2上的边框只是为了显示div的高度。随意删除它;)

&#13;
&#13;
#container {
height: 100%;
position: absolute;
}   

.div1 {
      height: 200px;
      position: relative;
      border: 2px solid yellow;
    }

.div2 {
      overflow-y: auto;
      position: relative;
      height: 100%;
      border: 2px solid red;
    }
&#13;
    <div id='container' style="height:100%">
      <div class='div1'>
        div1 content
      </div>
      <div class='div2'>
        div2 content
      </div>
    </div>
&#13;
&#13;
&#13;