Element-UI 使用el-row 分栏布局的教程

使用多个卡片显示的时候,并且要求当列数到一定数目的时候,要自动换行,el-container 布局就满足了需求了,就要用到el-row 布局做分栏处理,

代码如下

<template>
 <el-row :gutter="20" class="el-row" type="flex" >
  <el-col :span="8" v-for = "(item,index) in apps" :key="item.id" class="el-col" >
   <el-card class="el-card" :key="index" onclick="">
    <div slot="header" class="clearfix">
     <span>{{item.appname}}</span>
    </div>
    <div >
     <div class="text item">
      <div class="item_tag" >
       <span >用户标签:</span>
      </div>
      <div class="item_desr">
       <span > {{item.tag}}</span>
      </div>
     </div>
     <div class="text item">
      <div class="item_tag">
       <span>搜索标签:</span>
      </div>
      <div class="item_desr">
       {{item.seatag}}
      </div>
     </div>
     <div class="text item">
      <div class="item_tag">
       <span>短信签名:</span>
      </div>
      <div class="item_desr">
       <span>
         {{item.wxname}}
       </span>
      </div>
     </div>
     <div class="text item">
      <div class="item_tag">
       <span>客服QQ:</span>
      </div>
      <div class="item_desr">
       {{item.qq}}
      </div>
     </div>
     <div class="text item">
      <div class="item_tag">
       <span>商务合作:</span>
      </div>
      <div class="item_desr">
       {{item.buscoo}}
      </div>
     </div>
    </div>
   </el-card>
  </el-col>
  <el-col :span="8">
   <el-card class="box-card" style="min-height: 200px;" align="middle" onclick="">
    <div class="el-card__body mid">
     <el-button icon="el-icon-circle-plus" circle></el-button>
     <el-button style="margin-left: 0;color: #505458" type="text">添加APP</el-button>
    </div>
   </el-card>
  </el-col>
 </el-row>
</template>
<script>

css

<style type="text/css">
 .all{
  margin-top: -30px;
  word-break: break-all;
  height: 100%;
 }
 .mid{
  margin-top: 25%;
  height: 50%;
 }
 .mid_item{
  justify-content: center;
  align-items: center;
 }
 .item {
  margin-bottom: 10px;
 }
 .item_tag{
  float:left;
  text-align:left;
 }
 .item_desr{
  margin-left: 40%;
  min-height: 30px;
  text-align:left;
 }
 .text {
  width: 100%;
  font-size: 12px;
  font-family: "Microsoft YaHei";
  color: #909399;
 }
 .clearfix:before,
 .clearfix:after {
  display: table;
  content: "";
 }
 .clearfix:after {
  clear: both
 }

 .el-card {
  min-width: 100%;
  height: 100%;
  margin-right: 20px;
  /*transition: all .5s;*/
 }
 .el-card:hover{
  margin-top: -5px;
 }
 .el-row {
  margin-bottom: 20px;
  display: flex;
  flex-wrap: wrap
 }
 .el-col {
  border-radius: 4px;
  align-items: stretch;
  margin-bottom: 40px;
 }
</style>

补充知识:vue element框架中el-row控件里按列排列失效问题的解决

最近我在使用vue的ui框架element-ui,可能是自己经验不足,遇到了很奇怪的问题,在这里特意把解决的步骤记录一下,希望能对大家有所帮助。

首先我使用的分栏间隔的布局方式,参照官网上的例子:

<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-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>
<style>
 .el-row {
  margin-bottom: 20px;
  &:last-child {
   margin-bottom: 0;
  }
 }
 .el-col {
  border-radius: 4px;
 }
 .bg-purple-dark {
  background: #99a9bf;
 }
 .bg-purple {
  background: #d3dce6;
 }
 .bg-purple-light {
  background: #e5e9f2;
 }
 .grid-content {
  border-radius: 4px;
  min-height: 36px;
 }
 .row-bg {
  padding: 10px 0;
  background-color: #f9fafc;
 }
</style>

应该效果如下图:

但是我在参考例子后,代码如下:

App.vue

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

<script>
</script>

<style>
 .el-row {
  margin-bottom: 20px;
 }
 .el-col {
  border-radius: 14px;
 }
 .bg-purple {
  background: #d3dce6;
 }
 .grid-content {
  border-radius: 14px;
  min-height: 36px;
 }
</style>

main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui'//A Vue.js 2.0 UI Toolkit for Web
Vue.use(ElementUI);

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 components: { App },
 template: '<App/>'
})

可是效果如下:

奇怪了,为何布局变成了纵向,明明row中的布局应该是按列排列的。经过排查发现自己少了这一行:import ‘element-theme-chalk';

也就是代码应该如下:

main.js

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from 'vue'
import App from './App'
import router from './router'
import ElementUI from 'element-ui'//A Vue.js 2.0 UI Toolkit for Web
import 'element-theme-chalk';
Vue.use(ElementUI);

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
 el: '#app',
 router,
 components: { App },
 template: '<App/>'
})

这个时候效果如下,应该是我们希望看到的,至少列生效了:

我看了一下文档,发现并没有特别指出这一行的配置,可能是我遗漏了或者其他的原因导致的,也有可能是官网没有标识出这一点。总之加上了这一行配置解决了我的问题。在这里做一个笔记,也希望能够帮助到遇到类似的问题的同学。

以上这篇Element-UI 使用el-row 分栏布局的教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。

(0)

相关推荐

  • vue修改Element的el-table样式的4种方法

    修改Element中的el-table样式,可以使用以下几种方法: 1. row-style 行的 style 的回调方法,也可以使用一个固定的 Object 为所有行设置一样的 Style. 2. cell-style 单元格的 style 的回调方法,也可以使用一个固定的 Object 为所有单元格设置一样的 Style. 3. header-row-style 表头行的 style 的回调方法,也可以使用一个固定的 Object 为所有表头行设置一样的 Style. 4. header-c

  • Vue中正确使用Element-UI组件的方法实例

    一.CDN 目前可以通过 unpkg.com/element-ui获取到最新版本的资源,在页面上引入 js 和 css 文件即可开始使用. <!-- 引入样式 --> <link rel="stylesheet" href="https://unpkg.com/element-ui/lib/theme-chalk/index.css"> <!-- 引入组件库 --> <script src="https://unp

  • 基于elementUI竖向表格、和并列的案例

    效果图如下 代码 <template> <div> <section> <el-table :show-header="false" :data="tableData" :span-method="objectSpanMethod" border :cell-style="columnStyle" style="width: 100%; margin-top: 20px&qu

  • Element-UI 使用el-row 分栏布局的教程

    使用多个卡片显示的时候,并且要求当列数到一定数目的时候,要自动换行,el-container 布局就满足了需求了,就要用到el-row 布局做分栏处理, 代码如下 <template> <el-row :gutter="20" class="el-row" type="flex" > <el-col :span="8" v-for = "(item,index) in apps"

  • 详解vue2.0的Element UI的表格table列时间戳格式化

    这两天学习了vue2.0的Element UI的表格table列时间戳格式化,所以,今天添加一点小笔记. 表格属性 <el-table :data="tableData" v-loading.body="loading" border @selection-change="selectionChange" style="width: 100%"> <el-table-column prop="cre

  • 微信小程序开发之左右分栏效果的实例代码

    本文以一个简单的小例子,简述在微信小程序开发中左右分栏功能的实现方式,主要涉及scroll-view ,列表数据绑定,及简单样式等内容,属于初级入门内容,仅供学习分享使用. 概述 在微信小程序开发中,左右分栏(左边显示分类,右边显示明细,然后进行联动)是一种常见的布局方式,多应用于点餐,冷饮店,外卖,以及其他类似的商城. 布局分析 布局分析图示如下: 涉及知识点 •scroll-view 可滚动视图区域.使用竖向滚动时,需要给<scroll-view>一个固定高度,通过 WXSS 设置 hei

  • Element UI table参数中的selectable的使用及遇到坑

    Element UI table参数中的selectable的使用中遇到的坑:页面: <el-table-column :selectable='selectable' type="selection" :reserve-selection="true"> </el-table-column> 网上搜了说这样: selectable(row,index) { if(row.id==="10001"){ return fal

  • js 分栏效果实现代码

    网上我也见到一些分栏效果,也有一个jquery的插件jquery.splitter.js, 但是他们基本都没有解决一个问题:如果页面上有iframe, 当拖动分割线经过iframe的时候,鼠标不听使唤了,我曾经开过帖子讨论过这个问题.本例采用一个小技巧解决了这个问题,使拖动流畅. 复制代码 代码如下: <html> <head> <title>Splitter demo</title> <style>             #splitter_

  • Vue2.5 结合 Element UI 之 Table 和 Pagination 组件实现分页功能

    2017年底了,总结了这一年多来的前端之路,Vue从入门到放弃,再二进宫,从 Vue1.0 持续跟踪到 Vue2.5.结合公司的一些实际项目,也封装了一些比较实用的组件. 由于现在公司管理平台主要运用Element UI,索性就结合组件Table 和 Pagination 封装了一个支持页面切换的Table组件,不啰嗦,直接上代码. 2.实现思路 2.1.Element UI 引入(整体引入) main.js // Element UI import Element from 'element-

  • Element ui 下拉多选时新增一个选择所有的选项

    项目里经常会用到,在一个多选下拉框里新增一个选择所有的选项,例如: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Document</title> <script src="https://cdn.jsdelivr.net/npm/vue@2.5.16/dist/vue.js"

  • element ui分页多选,翻页记忆的实例

    先说需求:实时记录当前选中的分页中的列表,分页保存数据,然后在用选中的数据进行某些操作:PS:左下角的数字为记录的当前选中的列表的和 直接上可用的代码,前提已配置好各种环境 HTML部分 <!--table组件需要使用ref="table"--> <template> <div> <el-table :data="tableData" ref="table" stripe style="widt

  • element ui table 增加筛选的方法示例

    网上大部分都可以增加筛选功能,但没有找到下列这种情况. 若表头数据较多,而表头是自己通过v-for循环产生,这种情况怎么给虚拟dom添加筛选规则. <el-table-column v-for="item in tableHead" :key="item.id" :prop="item.id" :label="item.label" :filters="item.filter" :filter-met

  • 解决element UI 自定义传参的问题

    如下所示: <el-autocomplete v-model="state4" :fetch-suggestions="querySearchAsync" placeholder="请输入内容" @select="handleSelect" ></el-autocomplete> 这里的 hanleSelect 默认绑定的参数是选中的那条数据. 但是如果一个页面有好几个相同的组件,要想知道选中的是第几个

随机推荐