ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

vue vue-element-ui组件 layout布局

2020-06-30 16:55:45  阅读:328  来源: 互联网

标签:vue layout color 100% height rgb background container element


本文仅供参考:
首先你要掌握的基础知识:
row 行概念

<el-row></el-row>
col 列概念

<el-col></el-col>
col组件的:span属性的布局调整,一共分为24栏:

代码示例:

<el-row>
<el-col :span="24"><div class="grid-content"></div></el-col>
</el-row>
效果展示:

 

代码示例:

<el-row>
<el-col :span="12"><div class="grid-content"></div></el-col>
</el-row>
效果展示:

 

row组件的:gutter属性来调整布局之间的宽度---分栏间隔

代码示例:

<el-row :gutter="20">
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
<el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
</el-row>
 

效果:


 

Col组件的:offset属性调整方块的偏移位置(每次1格/24格)

 

<el-row :gutter="20">
<el-col :span="6" :offset="6"><div class="grid-content"></div></el-col>
<el-col :span="6" :offset="6"><div class="grid-content"></div></el-col>
</el-row>
 

效果:


 

对齐方式:

row组件的type="flex"启动flex布局,再通过row组件的justify属性调整排版方式,属性值分别有:

 

justify=center 居中对齐
justify=start 左对齐
justify=end 右对齐
justify=space-between 空格间距在中间对齐
justify=space-around 左右各占半格空格对齐
<el-row type="flex" class="row-bg" justify="center">
<el-col :span="6"><div class="grid-content"></div></el-col>
</el-row>


效果:


 

响应式布局:

参考bootstrap的响应式,预设四个尺寸

xs <768px
sm ≥768px
md ≥992
lg ≥120
使用方式:
<el-row :gutter="10">
<el-col :xs="8" :sm="6" :md="4" :lg="3"><div class="grid-content bg-purple"></div></el-col>
<el-col :xs="4" :sm="6" :md="8" :lg="9"><div class="grid-content bg-purple-light"></div></el-col>
<el-col :xs="4" :sm="6" :md="8" :lg="9"><div class="grid-content bg-purple"></div></el-col>
<el-col :xs="8" :sm="6" :md="4" :lg="3"><div class="grid-content bg-purple-light"></div></el-col>
</el-row>
 

练习示例:

 

<span class="field-label">方块选择:</span>
<!-- 选择屏幕框 -->
<select v-model="selected" @change="selectbj(selected)">
<option v-for="option in layouts" :value="option.value">
{{ option.name }}
</option>
</select>
 

data默认初始化数据:

selected: 0,
layouts: [
{ 'name': '1x1模式', 'value': '0' },
{ 'name': '2x1模式', 'value': '1' },
{ 'name': '2x2模式', 'value': '2' },
{ 'name': '3x2模式', 'value': '3' },
{ 'name': '3x3模式', 'value': '4' },
{ 'name': '1+5模式', 'value': '5' }
],
 

布局代码:

<el-main v-model="selected" >
<div class="block" style="height:400px">
<!-- {{selected}} -->
<div style="height:100%;width:100%" v-if="selected==0">
<!-- 1*1布局 -->
<el-row :gutter="10" type="flex" class="grid-one-contentheight" justify="center">
<el-col :span="24"></el-col>
</el-row>
</div>
<!-- 2*1布局 -->
<div style="height:100%;width:100%" v-else-if="selected==1">
<el-row :gutter="10" type="flex" class="row-bg el-row-two" justify="space-between">
<el-col :span="12"><div class="grid-content "></div></el-col>
<el-col :span="12"><div class="grid-content "></div></el-col>
</el-row>
</div>
<!-- 2*2 -->
<div style="height:100%;width:100%" v-else-if="selected==2">
<el-row :gutter="10" type="flex" class="row-bg" justify="center">
<el-col :span="12"><div class="grid-content "></div></el-col>
<el-col :span="12"><div class="grid-content "></div></el-col>
</el-row>
<br>
<el-row :gutter="10" type="flex" class="row-bg" justify="center">
<el-col :span="12"><div class="grid-content "></div></el-col>
<el-col :span="12"><div class="grid-content "></div></el-col>
</el-row>
</div>
<!-- 3*2布局 -->
<div style="height:100%;width:100%" v-else-if="selected==3">
<el-row :gutter="10" type="flex" class="row-bg" justify="center">
<el-col :span="12"><div class="grid-content "></div></el-col>
<el-col :span="12"><div class="grid-content "></div></el-col>
<el-col :span="12"><div class="grid-content "></div></el-col>
</el-row>
<br>
<el-row :gutter="10" type="flex" class="row-bg" justify="center">
<el-col :span="12"><div class="grid-content "></div></el-col>
<el-col :span="12"><div class="grid-content "></div></el-col>
<el-col :span="12"><div class="grid-content "></div></el-col>
</el-row>
</div>
<!-- 3*3模式 -->
<div style="height:100%;width:100%" v-else-if="selected==4">
<el-row :gutter="10" type="flex" class="row-bg" justify="center">
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
</el-row>
<br>
<el-row :gutter="10" type="flex" class="row-bg" justify="center">
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
</el-row>
<br>
<el-row :gutter="10" type="flex" class="row-bg" justify="center">
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
</el-row>
</div>
<!-- 模式 -->
<div style="height:100%;width:100%" v-else>
<el-row :gutter="10" type="flex" class="row-bg" justify="start">
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
<el-col :span="8"><div class="grid-a-contentWidth"></div></el-col>
</el-row>
<br>
<el-row :gutter="10" type="flex" class="row-bg" justify="start">
<el-col :span="8">
<div class="grid-a-contentWidth"></div>
<br>
<div class="grid-a-contentWidth"></div>
</el-col>
<el-col :span="16"><div class="grid-a-content-a-Width" ></div></el-col>
</el-row>
</div>
</div>
</el-main>
 

样式(从里面对应取一下):

<style scoped>
.box-card{
width: 400px;
margin: 20px auto;
}
.block{
padding: 30px 24px;
background-color: rgb(27, 16, 16);
}
.alert-item{
margin-bottom: 10px;
}
.tag-item{
margin-right: 15px;
}
.link-title{
margin-left:35px;
}
.components-container {
position: relative;
height: 100vh;
}

.left-container {
background-color: #F38181;
height: 100%;
}

.right-container {
background-color: #FCE38A;
height: 200px;
}

.top-container {
background-color: #FCE38A;
width: 100%;
height: 100%;
}

.bottom-container {
width: 100%;
background-color: #95E1D3;
height: 100%;
}

.left-container-twoOne {
background-color: rgb(110, 75, 75);
height: 100%;
}

.container-onetoOne {
background-color: rgb(47, 80, 74);
height: 100%;
width: 50%;
}

.container-onetoTwo {
background-color: rgb(61, 19, 56);
height: 100%;
width: 50%;
}

.el-col {
border-radius: 4px;
}
.bg-purple-dark {
background: #57926b;
}
.bg-purple {
background: #7e2970;
}
.bg-purple-light {
background: #071c4d;
}
.grid-content {
background-color: rgb(44, 143, 121);
border-radius: 4px;
min-height: 150px;
min-width: 100px;
}
.grid-contentB {
background-color: rgb(64, 56, 134);
border-radius: 4px;
min-height: 150px;
min-width: 100px;
}
.grid-a-contentWidth {
background-color: rgb(44, 143, 121);
border-radius: 4px;
min-height: 100px;
}
.grid-a-content-a-Width {
background-color: rgb(44, 143, 121);
border-radius: 4px;
min-height: 220px;
}

.grid-one-contentheight {
background-color: rgb(44, 143, 121);
border-radius: 4px;
min-height: 100%;
}

.el-row-two {
margin-bottom: 80px;
margin-top: 80px;

}
</style>

原文链接:https://blog.csdn.net/jack_bob/java/article/details/79813114

标签:vue,layout,color,100%,height,rgb,background,container,element
来源: https://www.cnblogs.com/wugh8726254/p/13214663.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有