【发布时间】:2016-12-18 09:16:50
【问题描述】:
我正在制作一个典型的 wordpress 主题,基于 twentysixteen。
我试图将.sidebar div 与.content-area div 一样长。纯 CSS 解决方案(如 flexbox)对我不起作用,原因有很多。
所以...这是我的 jQuery 函数:
window.sidebarSize = function(){
( function( $ ) {
var sidebar = $('.sidebar');
var contentArea = $('.content-area');
var viewportWidth = $(window).width();
//only if sidebar is next to contentarea
if (parseInt(viewportWidth) >= 910){
//if sidebar is longer than the content
if(parseInt(sidebar.outerHeight(true)) > parseInt(contentArea.outerHeight(true))){
sidebar.css('height',''); //reset sidebar height to its minimum
// else, sidebar is shorter than content
} else {
sidebar.css('height',contentArea.outerHeight(true)); //make its height the same
}
}
} )( jQuery );
};
这是这样称呼的:
jQuery(function($) {
//a bunch of event handlers here because I'm not sure which of these work
$(window).on('window.onload window.onresize load resize', function() {
window.sidebarSize();
});
上述方法有效,尽管有时会出现问题,并且在我刷新页面之前它不会适用。
但现在我有另一个问题。
有时,内容的大小会动态变化(我使用Collapse-O-matic 插件来折叠画廊和常见问题解答),我希望侧边栏也能效仿。
我尝试了很多解决方案,但都失败了。目前我正在使用this script,但它并不总是有效,正如我所描述的here。
特别是在常见问题页面中,内容高度可以连续多次以多种方式变化,脚本会变得很糟糕,侧边栏的长度会开始看起来不连贯。
任何关于这些脚本可以改进的地方的建议都将非常感激。我有点 JavaScript 菜鸟。
【问题讨论】:
-
在现代浏览器中都可以使用 css flexbox 完成,无需脚本
-
我想了很多,但我不能真正让它在 flexbox 中工作。我玩过这些属性,但 div 一直相互重叠——侧边栏的宽度是 27%,如果你可以发布一些关于如何在 flexbox 中应用它的 css。另外,你确定它会动态工作吗?
-
其实就从上面说的,我在网上找了另一个指南,好像更清楚一点,也许我会尝试一下
标签: jquery css wordpress height elements