我有blog新的响应式模板。我想检查帖子里面的所有div,以获得宽度大于窗口大小的任何div,并将只有那些div的宽度更改为max-width:windowsize。
真相是博客有350多个帖子,我没有时间编辑每一篇文章,以删除屏幕宽度固定的div。
我对jQuery和js不是很了解,但我得到了this代码并且做到了这一点:
var div = $(".post div").width();
var win = $(window).width();
if (div > win ) {
$(" ONLY THE DIV THATS BIGGER? ").css('max-width', ' WINDOW-WIDTH? ');
}
但它正在改变所有div的大小。有什么想法吗?
[解决方案 - 无论如何我的需要]
尽管你所有的jQuery代码都令人惊叹,但我无法让他们中的任何一个工作在我想要的div上(但我相信他们将来会帮助人们看到这篇文章),所以我只是去了基本的CSS,它符合我的需求。我害怕在帖子宽度内裁定所有DIVS:100%因为它会影响嵌套的,所以我只是使用:
.post-body > * {
max-width:100% !important;
}
它仅调用我帖子的所有直接子节点,它们已经与移动设备上的窗口大小相同,并设置规则max-width以防止离开屏幕。完善!
感谢您的帮助!
答案 0 :(得分:2)
首先,您可能希望开始使用循环来遍历变量内部的所有div" div"也不要试图立即追求宽度陈述,但得到所有的div
所以你的代码:
var div = $(".post div").width();
var win = $(window).width();
if (div > win ) {
$(" ONLY THE DIV THATS BIGGER? ").css('max-width', ' WINDOW-WIDTH? ');
}
应该是这样的:
var div = $(".post div");
var win = $(window).width();
for(var i=0; i<div.length;i++){
if(div[i].width() > win){
$(div[i]).css('max-width','WINDOW-WIDTH?');
}
}
如果你想知道div究竟是什么用这个代码:
var div=$(".post div");
console.log(div);
答案 1 :(得分:1)
溢出的问题并非来自此。实际上,它来自div类 linkwithin_inner ,其中宽度已设置为固定宽度680px!important。
您应该在该页面上找到的CSS中将宽度更改为100%。
.linkwithin_inner {
width: 100% !important;
}
问题将解决。
答案 2 :(得分:1)
试
var win = $(window).width();
$(".post div").each(function () {
if ( $(this).width() > win ) {
$(this).css('max-width', win );
}
});
答案 3 :(得分:1)
您需要过滤掉比窗口宽的div,然后将最大宽度设置为仅限于那些,如下所示。
var winWidth = $(window).width();
$(".post div").filter(function(){
return $(this).width() > winWidth
}).css({"max-width": winWidth + "px"});
她的a demo along行是{{3}}
答案 4 :(得分:0)
基本上你想循环通过这个`$(&#34; .post div&#34;)&#39;
找到的所有div归结为:
$(".post div").each(function () {
$(this).width("50px");
});
在这里你有一个工作小提琴: https://jsfiddle.net/gkLmx6d1/2/