现在有很多方法可以解决现代web开发中的等高元素。最好的两种方法是使用CSS flexbox和Grid Layout。
但是,如果您正在寻找一种跨浏览器的解决方案,以使某些元素(如div)具有统一的高度,那么本文非常适合您。
这是一个简单而轻量级的jQuery函数,可以用来使所选元素具有相同的高度。它的工作原理是计算元素的高度差,然后设置所有其他元素的高度以匹配该差,从而确保所有元素都具有相同的高度。
1.主要功能是循环浏览一组中的所有元素,并将所有这些孩子的身高设置为最高者。复制下面的代码段,并在加载最新的jQuery库后插入它们。
<script src="/path/to/cdn/jquery.slim.min.js"></script>
function mam_set_auto_height() { // reset sh-active class $('.sh-active').css('height', 'auto'); $('.sh-active').removeClass('sh-active'); // get all elemets with same height data $ashElements = $("[data-same-height]"); // loop through the elements $ashElements.each(function () { $element = $(this); // skip if it's been configured already or not if ($element.hasClass('sh-active')) { return true; } // get group to set same height var _group = $element.attr('data-same-height'); // get group elements $groupElements = $('[data-same-height="' + _group + '"]'); // Cache the highest var highestBox = 0; // loop throgh the group elements $groupElements.each(function () { // If this box is higher than the cached highest then store it if ($(this).height() > highestBox) { highestBox = $(this).height(); } }); // Set the height of all those children to whichever was highest $groupElements.addClass('sh-active').height(highestBox); }); }
2.添加数据高度相同
属性指定给将具有相同高度的元素。
<div data-same-height="group-1"> ... </div> <div data-same-height="group-1"> ... </div> <div data-same-height="group-1"> ... </div> ...
3.拨打主要_自动_重量()
文档上的函数已准备就绪。
mam_set_auto_height();
4.重新初始化主要_自动_重量()
页面加载和调整大小。
$(window).on('load',function () { mam_set_auto_height(); }); $(window).on('resize',function () { mam_set_auto_height(); });