vue、element實(shí)現(xiàn)表格表頭縱向顯示方式
vue、element實(shí)現(xiàn)表格表頭縱向顯示
大多數(shù)情況,我們的管理端都有表格展示數(shù)據(jù),然而表格的展示基本都是表頭橫向展示,然后相應(yīng)的數(shù)據(jù)一行一行排列在下方。
先看一下element官網(wǎng)的el-table的樣子

那么我們?nèi)绻胍尡眍^縱向展示該如何實(shí)現(xiàn)呢?怎么樣?
是不是發(fā)現(xiàn)element官網(wǎng)沒有這樣的示例,有點(diǎn)難搞,哈哈,接下來咱們就來現(xiàn)場擼縱向表格展示,準(zhǔn)備好了嗎?
其實(shí)原理很簡單,一般的都是橫向展示,先定義第一行表頭,然后數(shù)據(jù)部分直接放在一個(gè)數(shù)組中進(jìn)行排序就可以渲染了,那么我們根據(jù)這個(gè)思路啟發(fā)一下:縱向表頭是不是也可以如此?
那當(dāng)然了,我們可以先定義一個(gè)縱向的表頭,再按照一列一列來進(jìn)行渲染表格數(shù)據(jù),那么按照列來寫表頭,我們就可以使用table來進(jìn)行了
先來處理表頭
<table width="100%">
<tr><td class="black_title">對(duì)比項(xiàng)</td></tr>
<tr><td class="left_title bottom_border">表頭1</td></tr>
<tr><td class="left_title bottom_border">表頭2</td></tr>
<tr><td class="left_title bottom_border">表頭3</td></tr>
<tr><td class="left_title bottom_border">表頭4</td></tr>
<tr><td class="left_title bottom_border">表頭5</td></tr>
<tr><td class="left_title bottom_border">表頭6</td></tr>
<tr><td class="left_title bottom_border">表頭7</td></tr>
<tr><td class="left_title bottom_border">表頭8</td></tr>
<tr><td class="left_title bottom_border">表頭9</td></tr>
<tr><td class="left_title bottom_border">表頭10</td></tr>
<tr><td class="left_title bottom_border">。。。</td></tr>
</table>其中我們只需要設(shè)置好每個(gè)單元格的樣式,然后我們就可以復(fù)制這樣的table了,只不過我們可以根據(jù)我們的數(shù)據(jù)來動(dòng)態(tài)添加table
<div v-for="(item, index) in tableData" :key="index">
<table width="100%">
<tr><td class="black_title">{{item.val1}}</td></tr>
<tr><td class="td_content">{{item.val2}}</td></tr>
<tr><td class="td_content">{{item.val3}}</td></tr>
<tr><td class="td_content">{{item.val4}}</td></tr>
<tr><td class="td_content">{{item.val5}}</td></tr>
<tr><td class="td_content">{{item.val6}}</td></tr>
<tr><td class="td_content">{{item.val7}}</td></tr>
<tr><td class="time_comtent">{{item.val8}}</td></tr>
<tr><td class="td_content">{{item.val9}}</td></tr>
<tr><td class="td_content">{{item.val10}}</td></tr>
<tr><td class="td_content">{{item.val11}}</td></tr>
</table>
</div>主體思路已經(jīng)OK了,那么 這樣就能夠說可以達(dá)到要求嗎?
不行的,我們還得加上樣式上的要求?。。?/p>
那么這里我推薦使用flex布局,不是很清楚flex布局的可以先移步相關(guān)百度flex布局樣式介紹。
我們可以這樣來一個(gè)思路
比如定義一個(gè)大的div用來裝我們需要展示的表格,然后div里面一列就是一個(gè)table也用div進(jìn)行包裹,那么用上flex布局就可以動(dòng)態(tài)擺放這些div達(dá)到我們想要的效果:
<div class="" style="width:100%;display:flex;justify-content: space-between;">
<div style="width:15%;box-shadow: 0 0 2px #000;">
<table width="100%">
//這里是表頭的table
</table>
</div>
<div v-for="(item, index) in tableData" :key="index" :style="'width:'+ calcWidth(tableData)+';box-shadow: 0 0 2px #000;'">
<table width="100%">
//這里是內(nèi)容的table
</table>
</div>
</div>當(dāng)然我這里自己樣式的css有進(jìn)行設(shè)置,大家可根據(jù)自身要求進(jìn)行設(shè)置,也可以加一些el-button和點(diǎn)擊事件的元素在里面

頭部縱向展示有一個(gè)缺點(diǎn)
不能有太多數(shù)據(jù)進(jìn)行展示對(duì)比,只能用于少數(shù)數(shù)據(jù)展示對(duì)比,不過這樣看上去數(shù)據(jù)對(duì)比也會(huì)更明顯。
怎么樣?
是不是看完之后也想自己動(dòng)手實(shí)現(xiàn)?。?/p>
其實(shí)還是蠻簡單的對(duì)吧!
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
vue簡單實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng)
這篇文章主要為大家詳細(xì)介紹了vue簡單實(shí)現(xiàn)轉(zhuǎn)盤抽獎(jiǎng),文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-03-03
在Vue3項(xiàng)目中使用VueCropper裁剪組件實(shí)現(xiàn)裁剪及預(yù)覽效果
這篇文章主要介紹了在Vue3項(xiàng)目中使用VueCropper裁剪組件(裁剪及預(yù)覽效果),本文分步驟結(jié)合實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-07-07
Vue.prototype全局變量的實(shí)現(xiàn)示例
在Vue中可以使用Vue.prototype向Vue的全局作用域添加屬性或方法,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2024-06-06
Vue通過getAction的finally來最大程度避免影響主數(shù)據(jù)呈現(xiàn)問題
這篇文章主要介紹了Vue通過getAction的finally來最大程度避免影響主數(shù)據(jù)呈現(xiàn),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-04-04

