【发布时间】:2014-03-27 23:06:49
【问题描述】:
我用谷歌搜索什么也没找到,所以我在这里
假设你有这个
<div class="resizable">
<div class='row'>
<div class='col-xs-12 col-md-4' style='border:1px solid red;'> HELLo </div>
</div>
</div>
这项工作符合预期,在 > md 屏幕中,col 将占 33%,但我的问题是。
在调整大小的情况下,有没有办法让 col-md/col-xs 响应其容器而不是视口?
我正在考虑一个简单的 js 解决方案,在它开始调整 div 大小之前,它可以记录 .resizable 的当前宽度,并在调整大小完成后根据新大小删除或读取来操作 col-xs、col-md。
但如果有一些已经存在的东西或更好的解决方案,如果你分享它,我会很高兴。
谢谢
当前解决方案:
当我使用 jquery-ui 调整大小时,我写了一些简单的东西:
$(document).on('resizestop','.resizable',function(){
$(this).find('.row').each(function(){
var w = $(this).innerWidth();
var c=$(this).children('div');
if(w <= 768){
c.attr('class', c.attr('class').replace(' col-md-',' w-col-md-'));
c.attr('class', c.attr('class').replace(' col-sm-',' w-col-sm-'));
c.attr('class', c.attr('class').replace(' col-lg-',' w-col-lg-'));
}else if(w < 960){
c.attr('class', c.attr('class').replace(' w-col-sm-',' col-sm-'));
c.attr('class', c.attr('class').replace(' col-md-',' w-col-md-'));
c.attr('class', c.attr('class').replace(' col-lg-',' w-col-lg-'));
}else if(w >= 960){
c.attr('class', c.attr('class').replace(' w-col-sm-',' col-sm-'));
c.attr('class', c.attr('class').replace(' w-col-lg-',' col-lg-'));
c.attr('class', c.attr('class').replace(' w-col-md-',' col-md-'));
}
});
});
如果父元素的宽度小于XX px,这只是删除所有col-md,col-lg,如果它更大,则恢复它。
让我知道你对这种方法的看法:)。
请注意,这规定 col-xs 是类中的第一个,然后是任何其他响应类。 谢谢
【问题讨论】:
标签: javascript jquery css twitter-bootstrap twitter-bootstrap-3