现在有很多方法可以解决现代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();
- });