第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定

【前端騷操作】Grid布局20行代碼快速生成瀑布流

网格布局

Grid 布局,好用又简单,至少比 Flex 要人性化一点,美中不足就是浏览器支持度差点。


DOM结构

DOM

中间夹层为了后续拓展。


CSS

.grid {
	display: grid;
    grid-template-columns: repeat(2, 1fr);
    grid-auto-rows: 10px;
    grid-column-gap: 4px;
    height: e('calc(100% - 32px)');
    overflow-y: scroll;
}

.img-container {
    .img {
        width: 100%;
        height: auto;
    }
}

.grid 的意思是网格布局,2 列平分宽度,单行为 10px,自动拓展行数,列间距 4px,超出高度滚动。

这里 10px 是颗粒度,颗粒度越小,效果越好。注意,颗粒度与行间距有关,颗粒度小,行间距最好为 0,颗粒度大可以有适量的行间距,但是建议依然是 0。

图片设置 width 为 100%,是表明为等宽瀑布。


JavaScript

return m('.img-container', { : this.clickImg, style: `grid-row: auto / span ${this.rows}` }, [
      m("img.img[alt='img']", {
        src: url,
        : e => {
          const rows = Math.ceil(e.target.height / 10)
          this.rows = rows
        }
      })
    ])

这是 Mithril.js 的代码,知道我的都清楚我最近用这个。

代码意思就是给夹层根据图片高度设置所在网格行,auto 是自动放置在某行,span X 是跨越多少行,这里跨越多少取决于图片高与颗粒度的商,商 + 1 是为了留白。

这里的 10 对应的是 CSS 里面的 10px,注意下。


效果

实际效果


小结

  1. HTML 两层或三层,具体看自己需求,建议 3 层用于拓展。
  2. CSS Grid 布局,设置行为自动,颗粒度尽量小,不要行间距。
  3. JavaScript 通过图片缩放后的高度来设置跨越的行数。
  4. 缺点,图片排序会有偏差。

欢迎关注,如有需要 Web,App,小程序,请留言联系。

點擊查看更多內(nèi)容
6人點贊

若覺得本文不錯,就分享一下吧!

評論

作者其他優(yōu)質(zhì)文章

正在加載中
感謝您的支持,我會繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會直接到老師賬戶
支付方式
打開微信掃一掃,即可進行掃碼打賞哦
今天注冊有機會得

100積分直接送

付費專欄免費學

大額優(yōu)惠券免費領(lǐng)

立即參與 放棄機會
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學習伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號

舉報

0/150
提交
取消