首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设置固定的div宽度以继承父级的流体宽度

问设置固定的div宽度以继承父级的流体宽度
EN

Stack Overflow用户
提问于 2015-02-05 20:49:53
回答 1查看 460关注 0票数 0

我试图让一个“头”div固定,当它的滚动位置击中浏览器的顶部。当然,这会使它脱离文档流,因此需要设置一个宽度。这很好,就是容器的宽度被设置为一个特定的值。但是如果容器是流体的,比如最小宽度:300 as;最大宽度:500 as;那么整个容器就会崩溃。。

CSS

代码语言:javascript
复制
#container{
    min-width: 300px; max-width: 500px;
    background: #FFC;    }
#wrapper {

    /* width:500px; <= this works */ 

    width:100%; /* this does not work*/  

    border: solid 1px red;    }
#logo_banner {
    width: inherit;
    border: solid 1px red;    }
.banner_fixed {
    position:fixed;
    top:0;    }

HTML

代码语言:javascript
复制
<div id="container">

    <div id="wrapper">
        <div id="logo_banner">
            Banner Here
        </div>
    </div>

</div>

JSFIDDLE

EN

回答 1

Stack Overflow用户

发布于 2015-02-05 21:22:08

您需要使用jquery设置相对于包含的div的宽度。例如,将现有代码更改为:

代码语言:javascript
复制
if (y >= top) {
   $('#logo_banner').addClass('banner_fixed');
   $('#logo_banner').width($('#container').width());
} else {
   $('#logo_banner').removeClass('banner_fixed');
   $('#logo_banner').width('100%');
}

因为宽度是固定的px大小,所以在#容器更改宽度时,需要重新设置宽度。假设这是一个响应性设计,那么只有当窗口大小发生变化时,这才会发生变化,因此我们可以运行如下所示的内容:

代码语言:javascript
复制
// Trigger when window size is changed
$(window).resize(function(){
   // Only trigger if the element is fixed
   if (#logo_banner.hasClass('banner_fixed')) {
      $('#logo_banner').width($('#container').width());
   }
});

如果我们正在练习DRY (不要重复自己)编程,您可以将它转换成一个单独的函数,例如:

代码语言:javascript
复制
function set_banner_width(){
   if ($('#logo_banner').hasClass('banner_fixed')) {
      $('#logo_banner').width($('#container').width());
   } else {
      $('#logo_banner').width('100%');
   }
};

然后,当您滚动时,只需在设置banner_fixed类之后调用该函数

代码语言:javascript
复制
...
   if (y >= top) {
      $('#logo_banner').addClass('banner_fixed');
   } else {
      $('#logo_banner').removeClass('banner_fixed');
   }

   set_banner_width();
...

在调整窗口大小时也是如此

代码语言:javascript
复制
$(window).resize(function(){
   set_banner_width();
});
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28353727

复制
相关文章

相似问题

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