首页>建站相关>flex布局下space-between在元素数量不足时效果不理想

flex布局下space-between在元素数量不足时效果不理想

不太熟悉float属性,入了flex的坑,感觉这flex是真心好用,但也有个小问题,space-between虽然能自动生成等间距,如果是多行排列的情况,底行元素数量不足的时候,space-between同样会自动计算间距,这个时候问题来了,上面一排有4个,最后一排就俩,这间距当然就不一样了么。

百度了一下解决的方案,感觉用js动态添加一些填充元素更加灵活方便。博主的容器css写成了自适应,根据页面宽度依次2,3,4,5个元素同行排列。所以js也需要根据对应的宽度来动态填充。附上js源码备忘:

  //fillItem
  function getViewportWidth() {
    return window.innerWidth || document.documentElement.clientWidth;
  }
    
  function adjustCategoryItems() {
    let $container = $('.category-post');
    let items = $container.find('article.category-post-item');
    let placeholder = $container.find('article.category-post-placeholder');
    if (items.length === 0) {
      return; // 如果没有item,直接退出函数
    }
    let itemCount = items.length - placeholder.length;
    let windowWidth = getViewportWidth();
    let modulo;
    // 根据窗口宽度确定模数
    if (windowWidth >= 992) {
      modulo = 5;
    } else if (windowWidth >= 768) {
      modulo = 4;
    } else if (windowWidth >= 568) {
      modulo = 3;
    } else {
      modulo = 1; // 小于568px时不补充
    }
    
    // 计算需要补充的数量
    let remainder = itemCount % modulo;
    let itemsToAdd = (remainder === 0) ? 0 : (modulo - remainder);
    
    // 移除之前可能添加的占位元素
    $container.find('article.category-post-placeholder').remove();
    
    // 如果需要补充元素且数量大于0
    if (itemsToAdd > 0) {
      for (let i = 0; i < itemsToAdd; i++) {
        $container.append(
          $('<article/>', {
            'class': 'category-post-item category-post-placeholder',
            'aria-hidden': 'true',
            'style': 'visibility: hidden;'
          })
        );
      }
    }
  }
  
  // 页面加载时执行一次
  adjustCategoryItems();

标签: jquery

移动端可扫我直达哦~

推荐阅读

jquery 2025-03-25

关于jquery获取页面宽度的width()函数

想在页面变动的时候动态添加一些元素,以动态填充页面调整后容器尾部出现的空缺。但是利用jquery完成逻辑之后,发现与实际页面宽度有点儿对不上,明明要求在宽度小于992px时才执行的元素,宽度为1006px的时候已经开始执行了,这就导致...

建站相关 jquery

jquery 2025-03-12

jQCloud 一个基于jquery的词云生成插件

jQCloud 是一个基于 jQuery 的插件,用于生成美观且纯 HTML + CSS 的词云和标签云。使用这个插件需要引入两个文件,分别jQCloud 的 js 依赖与 css 依赖,但是由于其默认的css非常的简单,且预设的颜色...

建站相关 jquery

jquery 2024-03-23

利用Jquery实现点击元素后复制被点击元素的标签

在博客上放了一个“Fontawesome4.7.0图标一览”的页面,一直觉得功能太过于单一。自己使用当中,遇到合适的图标,往往还需要去获取它的html标签属性。所以就想给这个页面增加一个点击后复制被点击元素标签的功能。获取标签的相关指...

建站相关 jquery

jquery 2023-12-21

为当前页面生成一个二维码以便于移动端访问

想要在手机上上访问pc端的一个页面,现在很常见的做法是提供一个二维码,让用户通过手机扫码软件识别后用浏览器打开,这样就实现了页面地址数据的传输。某天做完一个页面后,想在手机上看看效果,一边手动输入页面地址,一边就萌生了为站点添加一个二...

建站相关 jquery

jquery 2023-06-09

Jquery幻灯插件Slidesjs图片宽高异常与引用文件顺序

遇到一个困扰多日的问题,在页面中生成了一个幻灯片组件,正常载入的时候是挺正常的,但是偶尔多刷新几次,图片的宽高会出现异常,离谱的是幻灯容器的宽度正常,图片大幅度溢出,而按钮位置无误。以上的bug描述对解决问题毫无帮助,幻灯容器的宽高是...

建站相关 jquery

jquery 2023-05-10

Jquery实现wordpress菜单的鼠标跟随效果

看别人家的博客,菜单栏下有一条装饰线,会根据鼠标悬停的位置来回滑动,且根据滑动距离长短,有明显的速度变化。一直心向往之,正好在学习wordpress的wp_nav_menu函数,顺便尝试一下实现这个效果。看过张戈博客主题的元素,似乎是...

建站相关 jquery

jquery 2023-05-05

Jquery实现wordpress彩色标签云

想在wordpress中实现一组彩色的标签,网上相关的实现教程很多,这里就不赘述了。之所以考虑用Jquery来实现,是基于服务器性能的考虑。因为博主的服务器是2h1g的低配版本,这个配置相对于访问用户的主机配置,无论是移动端还是电脑端...

建站相关 jquery

jquery 2023-05-04

Jquery添加与删除元素的class名

尝试了一下在新的主题中使用jquery,绑定点击动作来添加与删除元素的类名,使用下来感觉确实非常方便。虽然随着各种前段框架的流行,jquery的影响力逐渐减退,但对于博主这种菜鸟来说,还是觉得惊为天人。用jquery添加classna...

建站相关 jquery