Element el-row el-col 布局組件詳解
1. 背景
element的布局方式與bootstrap原理是一樣的,將網(wǎng)頁(yè)劃分成若干行,然后每行等分為若干列,基于這樣的方式進(jìn)行布局,形象的成為柵欄布局。
區(qū)別是element可將每行劃分為24個(gè)分欄,而bootstrap是劃分為12個(gè)分欄,從使用角度,還是24個(gè)分欄更加精細(xì)。
2. 分欄布局
首先每行使用<el-row>標(biāo)簽標(biāo)識(shí),然后每行內(nèi)的列使用<el-col>標(biāo)識(shí),至于每列整行的寬度比例,則使用:span屬性進(jìn)行設(shè)置。
如下代碼,即為將1行等分為2列,為了便于區(qū)分列,我們?yōu)榱刑砑恿瞬煌臉邮?,另外注?lt;el-divider></el-divider>是分割線,此處用于區(qū)分不同的示例。
<template> ? <div> ? ?? ?<span>每行24分欄布局</span> ? ? <el-row> ? ? ? <el-col :span="12" class="lightgreen-box">示例1</el-col> ? ? ? <el-col :span="12" class="orange-box">示例1</el-col> ? ? </el-row> ? ? <el-divider></el-divider> ? </div> </template>
<style scoped> ?? ?.lightgreen-box { ?? ? ?background-color: lightgreen; ?? ? ?height: 24px; ?? ?} ?? ?.orange-box { ?? ? ?background-color: orange; ?? ? ?height: 24px; ?? ?} </style>
效果如下:
3. 分欄間隔
有時(shí)候想為不同分欄之間設(shè)定一定的間隔,可以使用<el-row>標(biāo)簽的:gutter屬性,注意默認(rèn)間隔為0。
此時(shí)需要注意的是,下面的寫(xiě)法,間隔是不生效的。
<span>分欄間隔 無(wú)效</span> <el-row :gutter="50"> <el-col :span="8" class="lightgreen-box">示例2</el-col> <el-col :span="8" class="orange-box">示例2</el-col> <el-col :span="8" class="lightgreen-box">示例2</el-col> </el-row> <el-divider></el-divider>
需要在分欄里面新增元素,才能實(shí)現(xiàn)分欄間隔,代碼修改如下則間隔生效。
<span>分欄間隔 有效</span> <el-row :gutter="24"> <el-col :span="8"> <div class="lightgreen-box">示例3</div> </el-col> <el-col :span="8"> <div class="orange-box">示例3</div> </el-col> <el-col :span="8"> <div class="lightgreen-box">示例3</div> </el-col> </el-row> <el-divider></el-divider>
上面兩個(gè)示例效果如下:
4. 分欄偏移
有時(shí)候想讓某個(gè)分欄不從左邊顯示,而是直接顯示到中間或者右側(cè),例如右側(cè)導(dǎo)航欄,我們希望它處于右側(cè)且占據(jù)頁(yè)面1/3的寬度。此時(shí)可以借助offset屬性來(lái)實(shí)現(xiàn),表示偏移量。
此時(shí),想占據(jù)1/3寬度,則:span應(yīng)為8,偏移量應(yīng)為24-8=16,所以代碼如下:
<span>分欄偏移</span> <el-row> <el-col :span="8" :offset="16"> <div class="lightgreen-box">示例4</div> </el-col> </el-row> <el-divider></el-divider>
效果如下:
4. 對(duì)齊方式
如果想讓整個(gè)行居左、居中、居右對(duì)齊,則可以直接設(shè)置<el-row>的對(duì)齊方式。
此時(shí)需要先設(shè)置type="flex"來(lái)啟用對(duì)齊方式,然后通過(guò)justify屬性來(lái)設(shè)置具體的對(duì)齊方式,例如下面的例子實(shí)現(xiàn)了居中對(duì)齊。
<span>對(duì)齊方式</span> <el-row type="flex" justify="center"> <el-col :span="12"> <div class="lightgreen-box">示例5</div> </el-col> </el-row> <el-divider></el-divider>
5. 響應(yīng)式布局
element和bootstrap的響應(yīng)式布局原理相同,都是通過(guò)為列設(shè)置不同分辨率下的占用寬度比例來(lái)實(shí)現(xiàn)的。
例如我們想實(shí)現(xiàn)在比較大的分辨率(電腦),每分欄占據(jù)屏幕寬度的1/4,而在比較小寬度(手機(jī)),每分欄占據(jù)屏幕全部寬度。
這樣就能保證在手機(jī)上也能完整顯示內(nèi)容,則可以使用如下代碼:
<span>響應(yīng)式布局</span> <el-row> <el-col :lg="6" :xs="24" class="lightgreen-box">示例6</el-col> <el-col :lg="6" :xs="24" class="orange-box">示例6</el-col> <el-col :lg="6" :xs="24" class="lightgreen-box">示例6</el-col> <el-col :lg="6" :xs="24" class="orange-box">示例6</el-col> </el-row>
在電腦上效果如下:
在手機(jī)上效果如下:
注意具體的尺寸屬性為:
屬性 | 使用說(shuō)明 |
---|---|
xs | 寬度<768px |
sm | >=768px |
md | >=992px |
lg | >=1200px |
xl | >=1920px |
6. 小結(jié)
element的布局跟bootstrap原理是一樣的,使用起來(lái)也比較方便,具體的參數(shù)其實(shí)不需要都記住,只要知道用法,使用時(shí)去官網(wǎng)查詢(xún)即可。
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue Treeselect下拉樹(shù)只能選擇第N級(jí)元素實(shí)現(xiàn)代碼
這篇文章主要介紹了vue Treeselect下拉樹(shù)只能選擇第N級(jí)元素實(shí)現(xiàn)代碼,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-08-08Vue使用js-audio-recorder實(shí)現(xiàn)錄制,播放與下載音頻功能
這篇文章主要為大家詳細(xì)介紹了Vue如何使用js-audio-recorder實(shí)現(xiàn)錄制,播放與下載音頻功能,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以了解下2023-12-12vite前端構(gòu)建Turborepo高性能monorepo方案
這篇文章主要為大家介紹了vite前端構(gòu)建Turborepo高性能monorepo方案詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08vue中keep-alive內(nèi)置組件緩存的實(shí)例代碼
這篇文章主要介紹了vue中的keep-alive內(nèi)置組件緩存,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04Vue+Element-ui彈窗?this.$alert?is?not?a?function問(wèn)題
這篇文章主要介紹了Vue+Element-ui彈窗?this.$alert?is?not?a?function問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-10-10Vue.js項(xiàng)目部署到服務(wù)器的詳細(xì)步驟
這篇文章給大家介紹了Vue.js項(xiàng)目部署到服務(wù)器的詳細(xì)步驟,既然是部署到服務(wù)器,肯定是需要一個(gè)云的。具體思路步驟大家可以參考下本文2017-07-07VUE中路由變化this.$router(push\replace\go\back)解讀
這篇文章主要介紹了VUE中路由變化this.$router(push\replace\go\back),具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10vue3中實(shí)現(xiàn)音頻播放器APlayer的方法
這篇文章主要介紹了vue3中實(shí)現(xiàn)音頻播放器APlayer的方法,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-08-08