精华内容
下载资源
问答
  • layout布局

    千次阅读 2018-09-19 10:34:04
    xml配置文件:res/layout目录下 注:也可以同时使用xml和代码 布局的基本属性 取值范围 { //效果是一样的 fill_parent//过时 match_parent//不过时 } 固定值 { dp 控件大小 sp 文字大小 } padding 内补丁 margin ...

    就是把界面中的控件按照某种规律摆放到指定的位置

    1. 布局的二种实现
      代码
      xml配置文件:res/layout目录下
      注:也可以同时使用xml和代码

    2. 布局的基本属性
      取值范围
      { //效果是一样的
      fill_parent//过时
      match_parent//不过时
      }

      固定值
      {
      dp 控件大小
      sp 文字大小
      }

      padding 内补丁
      margin 外补丁

      android:gravity和android:layout_gravity
      用一个TextView、文字、背景查看效果最方便
      android:gravity:控件内部的元素
      android:layout_gravity:控件所在父元素的位置
      但父元素的水平和垂直设置的优先度更高

    3. 常见布局
      线性布局(重点) LinearLayout
      表格布局(几乎不用)
      帧布局

      绝对布局
      相对布局 RelativeLayout
      网格布局
      RTL(几乎不用)

    4. 案例1:padding内补丁、margin外补丁的区别,以及与内容
      match_parent/fill_parent
      padding/margin
      background
      wrap_content

    5. 案例2:线性布局(重点)
      orientation=“vertical|horizontal”
      android:gravity:控件内部的元素(对内有效)

    6. 案例3:android:gravity和android:layout_gravity的区别
      7.1 android:gravity:控件内部的元素(对内有效)
      android:layout_gravity:控件所在父元素的位置(对外生效)
      7.2 特殊情况
      父元素的android:orientation=“vertical”,layout_gravity 水平设置的相关属性有效
      父元素的android:orientation=“horizontal”,layout_gravity 垂直设置的相关属性有效

    7. 案例4:LinearLayout布局中Layout_weight属性的作用
      8.1 首先声明只有在Linearlayout中,layout_weight属性才有效。
      8.2 它是用来指定(剩余空闲空间)的分割比例,而非按比例分配整个空间。
      8.3 另外android:layout_weight会引起争议,是因为在设置该属性的同时,
      设置android:layout_width为wrap_content和match_parent会造成两种截然相反的效果。
      8.4 如果想用layout_weight平均分配空间,正确方式是将layout_width(或layout_height)设置为0dp,
      再通过layout_weight按比例分配空间
      注:关键点在于搞清楚什么是剩余空闲空间

    8. 案例5:帧布局(就好象一张张卡片堆叠上去,后面会盖出前面的)
      FrameLayout
      注:帧布局有点类似于awt的CardLayout都是把组件一个一个叠加到一起,
      但CardLayout能将下面的组件移上来,但FrameLayout没有提供此功能

      ImageView
      src
      scaleType=“fitXY” XY方向拉伸

      android:scaleType=“fitXY”
      android:src="@drawable/img18"

    展开全文
  • vue vue-element-ui组件 layout布局系列学习(一)

    万次阅读 多人点赞 2018-04-04 10:58:50
    本文仅供参考: 首先你要掌握的基础知识: row 行概念 <el-row>...col组件的:span属性的布局调整,一共分为24栏: 代码示例: <el-row> <el-col :span="24"><div class="g...

    本文仅供参考:

    首先你要掌握的基础知识:

    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属性调整排版方式,属性值分别有:

     

    1. justify=center 居中对齐
    2. justify=start 左对齐
    3. justify=end 右对齐
    4. justify=space-between 空格间距在中间对齐
    5. 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的响应式,预设四个尺寸

    1. xs <768px
    2. sm ≥768px
    3. md ≥992
    4. 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>


    效果:


     


     

    展开全文
  • vue、Layout 布局Layout 属性、vue Layout 全部布局、vue Layout 全部属性

    设计规则

    协助进行页面级整体布局。

    尺寸

    一级导航项偏左靠近 logo 放置,辅助菜单偏右放置。

    • 顶部导航(大部分系统):一级导航高度 64px,二级导航 48px
    • 顶部导航(展示类页面):一级导航高度 80px,二级导航 56px
    • 顶部导航高度的范围计算公式为:48+8n
    • 侧边导航宽度的范围计算公式:200+8n

    交互

    • 一级导航和末级的导航需要在可视化的层面被强调出来;
    • 当前项应该在呈现上优先级最高;
    • 当导航收起的时候,当前项的样式自动赋予给它的上一个层级;
    • 左侧导航栏的收放交互同时支持手风琴和全展开的样式,根据业务的要求进行适当的选择。

    视觉

    导航样式上需要根据信息层级合理的选择样式:

    • 大色块强调

    建议用于底色为深色系时,当前页面父级的导航项。

    • 高亮火柴棍

    当导航栏底色为浅色系时使用,可用于当前页面对应导航项,建议尽量在导航路径的最终项使用。

    • 字体高亮变色

    从可视化层面,字体高亮的视觉强化力度低于大色块,通常在当前项的上一级使用。

    • 字体放大

    12px14px 是导航的标准字号,14 号字体用在一、二级导航中。字号可以考虑导航项的等级做相应选择。

    组件概述

    Layout:布局容器,其下可嵌套 Header Sider Content FooterLayout 本身,可以放在任何父容器中。
    Header:顶部布局,自带默认样式,其下可嵌套任何元素,只能放在 Layout 中。
    Sider:侧边栏,自带默认样式及基本功能,其下可嵌套任何元素,只能放在 Layout 中。
    Content:内容部分,自带默认样式,其下可嵌套任何元素,只能放在 Layout中。
    Footer:底部布局,自带默认样式,其下可嵌套任何元素,只能放在 Layout中。

    代码演示

    1.基本结构

    在这里插入图片描述
    典型的页面布局。

    <template>
      <div id="components-layout-demo-basic">
        <a-layout>
          <a-layout-header>Header</a-layout-header>
          <a-layout-content>Content</a-layout-content>
          <a-layout-footer>Footer</a-layout-footer>
        </a-layout>
    
        <a-layout>
          <a-layout-header>Header</a-layout-header>
          <a-layout>
            <a-layout-sider>Sider</a-layout-sider>
            <a-layout-content>Content</a-layout-content>
          </a-layout>
          <a-layout-footer>Footer</a-layout-footer>
        </a-layout>
    
        <a-layout>
          <a-layout-header>Header</a-layout-header>
          <a-layout>
            <a-layout-content>Content</a-layout-content>
            <a-layout-sider>Sider</a-layout-sider>
          </a-layout>
          <a-layout-footer>Footer</a-layout-footer>
        </a-layout>
    
        <a-layout>
          <a-layout-sider>Sider</a-layout-sider>
          <a-layout>
            <a-layout-header>Header</a-layout-header>
            <a-layout-content>Content</a-layout-content>
            <a-layout-footer>Footer</a-layout-footer>
          </a-layout>
        </a-layout>
      </div>
    </template>
    <style>
    #components-layout-demo-basic {
      text-align: center;
    }
    #components-layout-demo-basic .ant-layout-header,
    #components-layout-demo-basic .ant-layout-footer {
      background: #7dbcea;
      color: #fff;
    }
    #components-layout-demo-basic .ant-layout-footer {
      line-height: 1.5;
    }
    #components-layout-demo-basic .ant-layout-sider {
      background: #3ba0e9;
      color: #fff;
      line-height: 120px;
    }
    #components-layout-demo-basic .ant-layout-content {
      background: rgba(16, 142, 233, 1);
      color: #fff;
      min-height: 120px;
      line-height: 120px;
    }
    #components-layout-demo-basic > .ant-layout {
      margin-bottom: 48px;
    }
    #components-layout-demo-basic > .ant-layout:last-child {
      margin: 0;
    }
    </style>
    

    2.自定义触发器

    在这里插入图片描述
    要使用自定义触发器,可以设置 :trigger="null" 来隐藏默认设定。

    <template>
      <a-layout id="components-layout-demo-custom-trigger">
        <a-layout-sider
          :trigger="null"
          collapsible
          v-model="collapsed"
        >
          <div class="logo" />
          <a-menu theme="dark" mode="inline" :defaultSelectedKeys="['1']">
            <a-menu-item key="1">
              <a-icon type="user" />
              <span>nav 1</span>
            </a-menu-item>
            <a-menu-item key="2">
              <a-icon type="video-camera" />
              <span>nav 2</span>
            </a-menu-item>
            <a-menu-item key="3">
              <a-icon type="upload" />
              <span>nav 3</span>
            </a-menu-item>
          </a-menu>
        </a-layout-sider>
        <a-layout>
          <a-layout-header style="background: #fff; padding: 0">
            <a-icon
              class="trigger"
              :type="collapsed ? 'menu-unfold' : 'menu-fold'"
              @click="()=> collapsed = !collapsed"
            />
          </a-layout-header>
          <a-layout-content :style="{ margin: '24px 16px', padding: '24px', background: '#fff', minHeight: '280px' }">
            Content
          </a-layout-content>
        </a-layout>
      </a-layout>
    </template>
    <script>
    export default {
      data(){
        return {
          collapsed: false,
        }
      },
    }
    </script>
    <style>
    #components-layout-demo-custom-trigger .trigger {
      font-size: 18px;
      line-height: 64px;
      padding: 0 24px;
      cursor: pointer;
      transition: color .3s;
    }
    
    #components-layout-demo-custom-trigger .trigger:hover {
      color: #1890ff;
    }
    
    #components-layout-demo-custom-trigger .logo {
      height: 32px;
      background: rgba(255,255,255,.2);
      margin: 16px;
    }
    </style>
    

    3.顶部-侧边布局-通栏

    在这里插入图片描述
    同样拥有顶部导航及侧边栏,区别是两边未留边距,多用于应用型的网站。

    <template>
      <a-layout id="components-layout-demo-top-side-2">
        <a-layout-header class="header">
          <div class="logo" />
          <a-menu
            theme="dark"
            mode="horizontal"
            :defaultSelectedKeys="['2']"
            :style="{ lineHeight: '64px' }"
          >
            <a-menu-item key="1">nav 1</a-menu-item>
            <a-menu-item key="2">nav 2</a-menu-item>
            <a-menu-item key="3">nav 3</a-menu-item>
          </a-menu>
        </a-layout-header>
        <a-layout>
          <a-layout-sider width="200" style="background: #fff">
            <a-menu
              mode="inline"
              :defaultSelectedKeys="['1']"
              :defaultOpenKeys="['sub1']"
              :style="{ height: '100%', borderRight: 0 }"
            >
              <a-sub-menu key="sub1">
                <span slot="title"><a-icon type="user" />subnav 1</span>
                <a-menu-item key="1">option1</a-menu-item>
                <a-menu-item key="2">option2</a-menu-item>
                <a-menu-item key="3">option3</a-menu-item>
                <a-menu-item key="4">option4</a-menu-item>
              </a-sub-menu>
              <a-sub-menu key="sub2">
                <span slot="title"><a-icon type="laptop" />subnav 2</span>
                <a-menu-item key="5">option5</a-menu-item>
                <a-menu-item key="6">option6</a-menu-item>
                <a-menu-item key="7">option7</a-menu-item>
                <a-menu-item key="8">option8</a-menu-item>
              </a-sub-menu>
              <a-sub-menu key="sub3">
                <span slot="title"><a-icon type="notification" />subnav 3</span>
                <a-menu-item key="9">option9</a-menu-item>
                <a-menu-item key="10">option10</a-menu-item>
                <a-menu-item key="11">option11</a-menu-item>
                <a-menu-item key="12">option12</a-menu-item>
              </a-sub-menu>
            </a-menu>
          </a-layout-sider>
          <a-layout style="padding: 0 24px 24px">
            <a-breadcrumb style="margin: 16px 0">
              <a-breadcrumb-item>Home</a-breadcrumb-item>
              <a-breadcrumb-item>List</a-breadcrumb-item>
              <a-breadcrumb-item>App</a-breadcrumb-item>
            </a-breadcrumb>
            <a-layout-content :style="{ background: '#fff', padding: '24px', margin: 0, minHeight: '280px' }">
              Content
            </a-layout-content>
          </a-layout>
        </a-layout>
      </a-layout>
    </template>
    <script>
    export default {
      data () {
        return {
          collapsed: false,
        }
      },
    }
    </script>
    
    <style>
    #components-layout-demo-top-side-2 .logo {
      width: 120px;
      height: 31px;
      background: rgba(255,255,255,.2);
      margin: 16px 28px 16px 0;
      float: left;
    }
    </style>
    

    4.顶部-侧边布局

    在这里插入图片描述
    拥有顶部导航及侧边栏的页面,多用于展示类网站。

    <template>
      <a-layout id="components-layout-demo-top-side">
        <a-layout-header class="header">
          <div class="logo" />
          <a-menu
            theme="dark"
            mode="horizontal"
            :defaultSelectedKeys="['2']"
            :style="{ lineHeight: '64px' }"
          >
            <a-menu-item key="1">nav 1</a-menu-item>
            <a-menu-item key="2">nav 2</a-menu-item>
            <a-menu-item key="3">nav 3</a-menu-item>
          </a-menu>
        </a-layout-header>
        <a-layout-content style="padding: 0 50px">
          <a-breadcrumb style="margin: 16px 0">
            <a-breadcrumb-item>Home</a-breadcrumb-item>
            <a-breadcrumb-item>List</a-breadcrumb-item>
            <a-breadcrumb-item>App</a-breadcrumb-item>
          </a-breadcrumb>
          <a-layout style="padding: 24px 0; background: #fff">
            <a-layout-sider width="200" style="background: #fff">
              <a-menu
                mode="inline"
                :defaultSelectedKeys="['1']"
                :defaultOpenKeys="['sub1']"
                style="height: 100%"
              >
                <a-sub-menu key="sub1">
                  <span slot="title"><a-icon type="user" />subnav 1</span>
                  <a-menu-item key="1">option1</a-menu-item>
                  <a-menu-item key="2">option2</a-menu-item>
                  <a-menu-item key="3">option3</a-menu-item>
                  <a-menu-item key="4">option4</a-menu-item>
                </a-sub-menu>
                <a-sub-menu key="sub2">
                  <span slot="title"><a-icon type="laptop" />subnav 2</span>
                  <a-menu-item key="5">option5</a-menu-item>
                  <a-menu-item key="6">option6</a-menu-item>
                  <a-menu-item key="7">option7</a-menu-item>
                  <a-menu-item key="8">option8</a-menu-item>
                </a-sub-menu>
                <a-sub-menu key="sub3">
                  <span slot="title"><a-icon type="notification" />subnav 3</span>
                  <a-menu-item key="9">option9</a-menu-item>
                  <a-menu-item key="10">option10</a-menu-item>
                  <a-menu-item key="11">option11</a-menu-item>
                  <a-menu-item key="12">option12</a-menu-item>
                </a-sub-menu>
              </a-menu>
            </a-layout-sider>
            <a-layout-content :style="{ padding: '0 24px', minHeight: '280px' }">
              Content
            </a-layout-content>
          </a-layout>
        </a-layout-content>
        <a-layout-footer style="text-align: center">
          Ant Design ©2018 Created by Ant UED
        </a-layout-footer>
      </a-layout>
    </template>
    
    <style>
    #components-layout-demo-top-side .logo {
      width: 120px;
      height: 31px;
      background: rgba(255,255,255,.2);
      margin: 16px 28px 16px 0;
      float: left;
    }
    </style>
    

    5.上中下布局

    在这里插入图片描述
    最基本的『上-中-下』布局。
    一般主导航放置于页面的顶端,从左自右依次为:logo、一级导航项、辅助菜单(用户、设置、通知等)。通常将内容放在固定尺寸(例如:1200px)内,整个页面排版稳定,不受用户终端显示器影响;上下级的结构符合用户上下浏览的习惯,也是较为经典的网站导航模式。页面上下切分的方式提高了主工作区域的信息展示效率,但在纵向空间上会有一些牺牲。此外,由于导航栏水平空间的限制,不适合那些一级导航项很多的信息结构。

    <template>
      <a-layout id="components-layout-demo-top" class="layout">
        <a-layout-header>
          <div class="logo" />
          <a-menu
            theme="dark"
            mode="horizontal"
            :defaultSelectedKeys="['2']"
            :style="{ lineHeight: '64px' }"
          >
            <a-menu-item key="1">nav 1</a-menu-item>
            <a-menu-item key="2">nav 2</a-menu-item>
            <a-menu-item key="3">nav 3</a-menu-item>
          </a-menu>
        </a-layout-header>
        <a-layout-content style="padding: 0 50px">
          <a-breadcrumb style="margin: 16px 0">
            <a-breadcrumb-item>Home</a-breadcrumb-item>
            <a-breadcrumb-item>List</a-breadcrumb-item>
            <a-breadcrumb-item>App</a-breadcrumb-item>
          </a-breadcrumb>
          <div :style="{ background: '#fff', padding: '24px', minHeight: '280px' }">Content</div>
        </a-layout-content>
        <a-layout-footer style="text-align: center">
          Ant Design ©2018 Created by Ant UED
        </a-layout-footer>
      </a-layout>
    </template>
    <style>
    #components-layout-demo-top .logo {
      width: 120px;
      height: 31px;
      background: rgba(255,255,255,.2);
      margin: 16px 24px 16px 0;
      float: left;
    }
    </style>
    

    6.响应式布局

    在这里插入图片描述
    Layout.Sider 支持响应式布局。

    说明:配置 breakpoint 属性即生效,视窗宽度小于 breakpoint 时 Sider 缩小为 collapsedWidth 宽度,若将 collapsedWidth 设置为零,会出现特殊 trigger。

    <template>
      <a-layout id="components-layout-demo-responsive">
        <a-layout-sider
          breakpoint="lg"
          collapsedWidth="0"
          @collapse="onCollapse"
          @breakpoint="onBreakpoint"
        >
          <div class="logo" />
          <a-menu theme="dark" mode="inline" :defaultSelectedKeys="['4']">
            <a-menu-item key="1">
              <a-icon type="user" />
              <span class="nav-text">nav 1</span>
            </a-menu-item>
            <a-menu-item key="2">
              <a-icon type="video-camera" />
              <span class="nav-text">nav 2</span>
            </a-menu-item>
            <a-menu-item key="3">
              <a-icon type="upload" />
              <span class="nav-text">nav 3</span>
            </a-menu-item>
            <a-menu-item key="4">
              <a-icon type="user" />
              <span class="nav-text">nav 4</span>
            </a-menu-item>
          </a-menu>
        </a-layout-sider>
        <a-layout>
          <a-layout-header :style="{ background: '#fff', padding: 0 }" />
          <a-layout-content :style="{ margin: '24px 16px 0' }">
            <div :style="{ padding: '24px', background: '#fff', minHeight: '360px' }">
              content
            </div>
          </a-layout-content>
          <a-layout-footer style="textAlign: center">
            Ant Design ©2018 Created by Ant UED
          </a-layout-footer>
        </a-layout>
      </a-layout>
    </template>
    <script>
    export default {
      methods: {
        onCollapse(collapsed, type) {
          console.log(collapsed, type);
        },
        onBreakpoint(broken) {
          console.log(broken);
        }
      }
    }
    </script>
    
    <style>
    #components-layout-demo-responsive .logo {
      height: 32px;
      background: rgba(255,255,255,.2);
      margin: 16px;
    }
    </style>
    

    7.固定侧边栏

    在这里插入图片描述
    当内容较长时,使用固定侧边栏可以提供更好的体验。

    <template>
      <a-layout id="components-layout-demo-fixed-sider">
        <a-layout-sider :style="{ overflow: 'auto', height: '100vh', position: 'fixed', left: 0 }">
          <div class="logo"></div>
          <a-menu theme="dark" mode="inline" :defaultSelectedKeys="['4']">
            <a-menu-item key="1">
              <a-icon type="user" />
              <span class="nav-text">nav 1</span>
            </a-menu-item>
            <a-menu-item key="2">
              <a-icon type="video-camera" />
              <span class="nav-text">nav 2</span>
            </a-menu-item>
            <a-menu-item key="3">
              <a-icon type="upload" />
              <span class="nav-text">nav 3</span>
            </a-menu-item>
            <a-menu-item key="4">
              <a-icon type="bar-chart" />
              <span class="nav-text">nav 4</span>
            </a-menu-item>
            <a-menu-item key="5">
              <a-icon type="cloud-o" />
              <span class="nav-text">nav 5</span>
            </a-menu-item>
            <a-menu-item key="6">
              <a-icon type="appstore-o" />
              <span class="nav-text">nav 6</span>
            </a-menu-item>
            <a-menu-item key="7">
              <a-icon type="team" />
              <span class="nav-text">nav 7</span>
            </a-menu-item>
            <a-menu-item key="8">
              <a-icon type="shop" />
              <span class="nav-text">nav 8</span>
            </a-menu-item>
          </a-menu>
        </a-layout-sider>
        <a-layout :style="{ marginLeft: '200px' }">
          <a-layout-header :style="{ background: '#fff', padding: 0 }" />
          <a-layout-content :style="{ margin: '24px 16px 0', overflow: 'initial' }">
            <div :style="{ padding: '24px', background: '#fff', textAlign: 'center' }">
              ...
              <br />
              Really
              <br />...<br />...<br />...<br />
              long
              <br />...<br />...<br />...<br />...<br />...<br />...
              <br />...<br />...<br />...<br />...<br />...<br />...
              <br />...<br />...<br />...<br />...<br />...<br />...
              <br />...<br />...<br />...<br />...<br />...<br />...
              <br />...<br />...<br />...<br />...<br />...<br />...
              <br />...<br />...<br />...<br />...<br />...<br />...
              <br />...<br />...<br />...<br />...<br />...<br />
              content
            </div>
          </a-layout-content>
          <a-layout-footer :style="{ textAlign: 'center' }">
            Ant Design ©2018 Created by Ant UED
          </a-layout-footer>
        </a-layout>
      </a-layout>
    </template>
    <style>
    #components-layout-demo-fixed-sider .logo {
      height: 32px;
      background: rgba(255,255,255,.2);
      margin: 16px;
    }
    </style>
    

    8.固定头部

    在这里插入图片描述
    一般用于固定顶部导航,方便页面切换。

    <template>
      <a-layout id="components-layout-demo-fixed">
        <a-layout-header :style="{ position: 'fixed', zIndex: 1, width: '100%' }">
          <div class="logo" />
          <a-menu
            theme="dark"
            mode="horizontal"
            :defaultSelectedKeys="['2']"
            :style="{ lineHeight: '64px' }"
          >
            <a-menu-item key="1">nav 1</a-menu-item>
            <a-menu-item key="2">nav 2</a-menu-item>
            <a-menu-item key="3">nav 3</a-menu-item>
          </a-menu>
        </a-layout-header>
        <a-layout-content :style="{ padding: '0 50px', marginTop: '64px' }">
          <a-breadcrumb :style="{ margin: '16px 0' }">
            <a-breadcrumb-item>Home</a-breadcrumb-item>
            <a-breadcrumb-item>List</a-breadcrumb-item>
            <a-breadcrumb-item>App</a-breadcrumb-item>
          </a-breadcrumb>
          <div :style="{ background: '#fff', padding: '24px', minHeight: '380px' }">Content</div>
        </a-layout-content>
        <a-layout-footer :style="{ textAlign: 'center' }">
          Ant Design ©2018 Created by Ant UED
        </a-layout-footer>
      </a-layout>
    </template>
    <style>
    #components-layout-demo-fixed .logo {
      width: 120px;
      height: 31px;
      background: rgba(255,255,255,.2);
      margin: 16px 24px 16px 0;
      float: left;
    }
    </style>
    

    9.侧边布局

    在这里插入图片描述
    侧边两列式布局。页面横向空间有限时,侧边导航可收起。
    侧边导航在页面布局上采用的是左右的结构,一般主导航放置于页面的左侧固定位置,辅助菜单放置于工作区顶部。内容根据浏览器终端进行自适应,能提高横向空间的使用率,但是整个页面排版不稳定。侧边导航的模式层级扩展性强,一、二、三级导航项目可以更为顺畅且具关联性的被展示,同时侧边导航可以固定,使得用户在操作和浏览中可以快速的定位和切换当前位置,有很高的操作效率。但这类导航横向页面内容的空间会被牺牲一部份。

    API

    <Layout>
      <Header>header</Header>
      <Layout>
        <Sider>left sidebar</Sider>
        <Content>main content</Content>
        <Sider>right sidebar</Sider>
      </Layout>
      <Footer>footer</Footer>
    </Layout>
    

    Layout 布局容器

    参数 说明 类型 默认值
    class 容器 class string -
    style 指定样式 object -
    hasSider 表示子元素里有 Sider,一般不用指定。可用于服务端渲染时避免样式闪动 boolean -

    Layout.Header Layout.Footer Layout.Content API 与 Layout 相同

    Layout.Sider 侧边栏

    参数 说明 类型 默认值
    breakpoint 触发响应式布局的断点 Enum { 'xs', 'sm', 'md', 'lg', 'xl', 'xxl' } -
    class 容器 class string -
    collapsed(v-model) 当前收起状态 boolean -
    collapsedWidth 收缩宽度,设置为 0 会出现特殊 trigger number 80
    collapsible 是否可收起 boolean false
    defaultCollapsed 是否默认收起 boolean false
    reverseArrow 翻转折叠提示箭头的方向,当 Sider 在右边时可以使用 boolean false
    style 指定样式 object|string -
    theme 主题颜色 string: light dark dark
    trigger 自定义 trigger,设置为 null 时隐藏 trigger string|slot -
    width 宽度 number|string 200

    事件

    事件名称 说明 回调参数
    collapse 展开-收起时的回调函数,有点击 trigger 以及响应式反馈两种方式可以触发 (collapsed, type) => {}
    breakpoint 触发响应式布局断点时的回调 (broken) => {}

    breakpoint width

    {
    xs: ‘480px’,
    sm: ‘576px’,
    md: ‘768px’,
    lg: ‘992px’,
    xl: ‘1200px’,
    xxl: ‘1600px’,
    }

    展开全文
  • EasyUI之Layout布局

    千次阅读 2016-07-20 15:00:12
    Layout布局,是按照上北,下南,左西右东,center居中的布局方式。主要属性:region设置布局的方向,style设置样式,title设置标题 依赖 panel resizable 用法示例 创建 Layout 经由标记创建 Layout 。添加 '...

    视频课:https://edu.csdn.net/course/play/7621

    Layout布局,是按照上北,下南,左西右东,center居中的布局方式。主要属性:region设置布局的方向,style设置样式,title设置标题

    依赖

    • panel
    • resizable

    用法示例

    创建 Layout

    经由标记创建 Layout 。添加 'easyui-layout' 类到 <div/> 标记。

    1.  <div id="cc" class="easyui-layout" style="width:600px;height:400px;">  

    2.      <div region="north" title="North Title" split="true" style="height:100px;"></div>  

    3.      <div region="south" title="South Title" split="true" style="height:100px;"></div>  

    4.      <div region="east" iconCls="icon-reload" title="East" split="true" style="width:100px;"></div>  

    5.      <div region="west" split="true" title="West" style="width:100px;"></div>  

    6.      <div region="center" title="center title" style="padding:5px;background:#eee;"></div>  

    7.  </div>  


    折叠 Layout Panel

    1.  $('#cc').layout();   

    2.  // 折叠 west panel  

    3.  $('#cc').layout('collapse','west');  

    Layout Panel 选项

    名称

    类型

    说明

    默认值

    title

    string

    Layout panel 的标题文字。

    null

    region

    string

    定义 layout panel 的位置,其值是下列之一:north、south、east、west、center。

    border

    boolean

    True 就显示 layout panel 的边框。

    true

    split

    boolean

    True 就显示拆分栏,用户可以用它改变panel 的尺寸。

    false

    iconCls

    string

    在panel 头部显示一个图标的CSS 类。

    null

    href

    string

    从远程站点加载数据的 URL 。

    null

    方法

    名称

    参数

    说明

    resize

    none

    设置 layout 的尺寸。

    panel

    region

    返回指定的 panel,'region' 参数可能的值是:'north'、'south'、'east'、'west'、'center'。

    collapse

    region

    折叠指定的 panel,'region' 参数可能的值是:'north'、'south'、'east'、'west'。

    expand

    region

    展开指定的 panel,'region' 参数可能的值是:'north'、'south'、'east'、'west'。


    <div id="tt" class="easyui-tabs" fit=true style="width:500px;height:250px;">  
    	    <div title="信用卡" style="padding:20px;display:none;"style="width:500px;height:250px;">  
    	        	信用卡各中心信息
    	    </div>  
    	    <div title="白金卡" closable="true" style="overflow:auto;padding:20px;display:none;">  
    	        	白金卡信息
    	    </div>  
    	    <div title="借记卡" iconCls="icon-reload" closable="true" style="padding:20px;display:none;">  
    	        	借记卡中心
    	    </div>  
    	</div>  

    Accordion  手风琴


    依赖

    • panel

    用法示例

    创建 Accordion

    经由标记创建 accordion, 添加 'easyui-accordion' 类到 <div/> 标记。


    <div id="aa" class="easyui-accordion"  style="width:300px;height:200px;">  
    	    <div title="后台管理"  style="overflow:auto;padding:10px;"iconCls="icon-tip">  
    	        <h3 style="color:#0099FF;">个人资料信息管理</h3>  
    	        <p>理财专家、互联网金融</p>  
    	    </div>  
    	    <div title="贷款"  selected="true" style="padding:10px;">  
    	        	贷款   
    	    </div>  
    	    <div title="存款">  
    	       		 存款   
        </div>  
    </div>  

    容器选项

    名称

    类型

    说明

    默认值

    width

    number

    Accordion 容器的宽度。

    auto

    height

    number

    Accordion 容器的高度。

    auto

    fit

    boolean

    设置为 true 就使 accordion 容器的尺寸适应它的父容器。

    false

    border

    boolean

    定义是否显示边框。

    true

    animate

    boolean

    定义当展开折叠 panel 时是否显示动画效果。

    true

    Panel 选项

    Accordion 的 panel 选项承自 panel,下面是增加的特性:

    名称

    类型

    说明

    默认值

    selected

    boolean

    设为 true 就展开 panel。

    false

    事件

    名称

    参数

    说明

    onSelect

    title

    当 panel 被选中时触发。

    onAdd

    title

    当增加一个新 panel 时触发。

    onBeforeRemove

    title

    当移除一个 panel 之前触发,返回 false 就取消移除动作。

    onRemove

    title

    当移除一个 panel 时触发。

    方法

    名称

    参数

    说明

    options

    none

    返回 accordion 的选项。

    panels

    none

    获取全部的 panel。

    resize

    none

    调整 accordion 的尺寸。

    getSelected

    none

    获取选中的 panel。

    getPanel

    title

    获取指定的 panel。

    select

    title

    选择指定的 panel。

    add

    options

    增加一个新的 panel。

    remove

    title

    移除指定的 panel。




    展开全文
  • easyui之layout布局

    千次阅读 2018-08-17 09:20:43
    layout布局 1、首页我们打开easyui官网和我们的中文api一起结合使用 2、先看下我们需要做出的效果 ​ 代码 核心内容 整个大的布局 class="easyui-layout" 自动适应整个屏幕的两种方式 1、body...
  • Android Layout 布局属性全解

    万次阅读 多人点赞 2018-05-30 16:17:34
    Layout 布局属性全解 Android有基本Layout:FrameLayout,LinearLayout,TableLayout,RelativeLayout,AbsoluteLayout。android开发者谷歌文档http://android.xsoftlab.net/reference/android/view/ViewGrou...
  • Android Layout 布局属性

    千次阅读 2014-08-01 15:00:55
    这需要Android应用开发工程师对Android Layout布局有熟悉的了解,才能快捷的搭建起UI框架来。 Android Layout Android中Layout主要有:FrameLayout、LinearLayout、RelativeLayout、TableLayout、
  • vue Layout布局 靠右对齐

    千次阅读 2020-08-05 17:49:29
    vue Layout布局 靠右对齐 通过Row组件的type="flex"启动flex布局,再通过Row组件的justify属性调整排版方式,属性值分别有 start 居前(默认) center 居中 end 居后 space-between 分布自适应(两边–中间,两边...
  • element-ui layout布局

    千次阅读 2019-03-01 15:14:34
    element-ui layout布局 row指定一行 &lt;el-row :gutter="20"&gt;&lt;/el-row&gt; 1 col指定列、span 指定分栏 &lt;el-col :span="6"&gt; &lt;/el-col&gt; 1 ...
  • 关于layout布局中的变量

    千次阅读 2016-06-14 16:10:33
    关于layout布局中的变量
  • Ext.form.Layout布局--column布局

    万次阅读 2015-05-12 16:31:19
    Ext.form.Layout布局、form验证。
  • 1、layout布局24列 <el-row> <el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col> </el-row> <el-row> <el-col :span="12"><div ...
  • 1.切换layout布局 2.记录从哪个页面跳转到登录页面的,登录之后返回(不使用localStorage) 3.Cookie等信息记录登录状态(登录失效,跳到登录页面) 核心观点是:将是否登录的状态划分为2种布局 布局1:非登录...
  • pyqt5 qt designer layout 布局 研究

    千次阅读 2020-04-27 15:48:44
    pyqt5 qt designer layout 布局 研究 需要达到 如下的效果: 看上图可以知道: 文字 “输入付款密码” 的 字体设置为: font: 13pt “微软雅黑”; color: rgb(51, 51, 51); 这个13pt ---- 对应的实际长度是22 像素 ...
  • elementUI 学习- Layout布局 与UI 设定

    千次阅读 2018-08-22 15:35:45
    Layout布局 1.创建布局 通过Col组件的:span属性调整Layout布局,分为24栏。 el-row&gt; &lt;el-col :span="24"&gt;&lt;div class="grid-content bg-purple-dark"&gt;&...
  • Android Studio中layout布局文件比较多时,只用名字来区分并不容易进行良好的管理,因此对layout文件进行分层,这样同一类的布局文件可以放在同一个子layout文件夹中,其建立步骤为: 1.选择project模式 2.找到...
  • Android的layout布局属性

    千次阅读 2013-12-17 13:37:06
    Android的layout布局总体来看分为几大类:  第一类:属性值 true或者 false  android:layout_centerHrizontal 水平居中  android:layout_centerVertical 垂直居中  android:layout_cente
  • 【工作日志】elementUI学习-Layout布局

    万次阅读 2017-03-13 16:24:53
    Layout布局1.创建布局通过Col组件的:span属性调整Layout布局,分为24栏。el-row> <el-col :span="24"><div class="grid-content bg-purple-dark"></div></el-col> </el-row>2.分栏间隔通过Row组件的:gutter属性来...
  • antd-layout布局

    万次阅读 2019-02-19 16:59:40
    nz-layout布局容器,其下可嵌套 nz-headernz-sider nz-content nz-footer 或 nz-layout 本身,可以放在任何父容器中。 nz-header:顶部布局,自带默认样式,其下可嵌套任何元素,只能放在 nz-layout 中。 nz-sider...
  • vue 之element-ui Layout 布局

    千次阅读 2018-10-26 11:28:45
    vue 之 element Layout 布局 //&amp;amp;amp;lt;el-row&amp;amp;amp;gt;&amp;amp;amp;lt;/el-row&amp;amp;amp;gt;布局最外层容器,里面子元素如果浮动以后,一般父级可以不清除浮动, 1. &amp;...
  • easyui中的layout布局:如何引入jsp页面。我引用之后左侧菜单就消失了(是被覆盖了吗?)
  • Layout 布局 用法: <el-row> <el-col :span="8"><div class="grid-content bg-purple"></div></el-col> <el-col :span="8"><div class="grid-content bg-purple-light"&...
  • html layout 布局

    千次阅读 2019-01-16 15:22:23
    自然布局:默认的流式布局:就是块级的垂向下,块内的横向移动。 浮动布局:通过float,可以将块级的并行在一排。 层模型 特点:如果我想一个div在另外一个div的上面,我们就需要可以使用绝对定位来完成,层模型的...
  • 问题:Android将Layout布局类型转换成View类型,然后对布局内的内部控件进行操作 解答: LayoutInflater inflater = getLayoutInflater(); View view = inflater.inflate(R.layout.item_camera_info, null); ...
  • 简书(阅读体验更好):写出高效清晰Layout布局文件的一些技巧 当人们谈论Android性能的时候总是习惯讨论怎么写出清晰高效的Java代码,却忽略了layout布局文件。layout布局缓慢的渲染速度对app性能也有的很大的影响。...
  • tp5 layout布局

    千次阅读 2017-04-16 20:56:10
    tp5 布局 layout
  • self.layout = QtWidgets.QGridLayout(self)生成一个网格布局对象 self.layout.addWidget(QtWidgets.QCheckBox(str(i) + '-' + str(j)), i, j, QtCore.Qt.AlignCenter)将widget添加到网格布局中的指定位置,最后一...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 48,365
精华内容 19,346
关键字:

layout布局