layout 布局_layout布局 - CSDN
精华内容
参与话题
  • Layout布局

    2012-12-09 22:59:53
    1、创建布局面板第一种方式(div中添加class="easyui-layout"),需要指定div层的高与宽: <div id="cc" class="easyui-layout" style="width:600px;height:400px;"...

    1、创建布局面板第一种方式(div中添加class="easyui-layout"),需要指定div层的高与宽:

    <div id="cc" class="easyui-layout" style="width:600px;height:400px;">  
        <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div>  
        <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div>  
        <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div>  
        <div data-options="region:'west',title:'West',split:true" style="width:100px;"></div>  
        <div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"></div>  
    </div>

    如图:

     

    2、第二种方式(body中添加class="easyui-layout"),整个页面将会铺满:

    <body class="easyui-layout">  
        <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div>  
        <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div>  
        <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div>  
        <div data-options="region:'west',title:'West',split:true" style="width:100px;"></div>  
        <div data-options="region:'center',title:'center title'" style="padding:5px;background:#eee;"></div>  
    </body>  

    3、布局面板属性:

     

    1)、title:布局面板的标题
    2)、region:布局面板所在区域,可以取north、south、east、west、center
    3)、border:是否显示布局面板的边框,默认true显示
    4)、split:分隔条,设置为true,用户可以拖动分割条来改变面板的尺寸,默认是false
    5)、iconCls:显示布局面板头部图标,需要引入/themes/icon.css文件
    6)、href:载入超链接的数据

    例子:

    <div data-options="region:'center',title:'center title',href:'../js/easyUi/themes/default/easyui.css'" style="padding:5px;background:#eee;"></div>  

    如图:

    例子:

    <div data-options="region:'north',title:'North Title',split:true,border:false" style="height:100px;"></div>  

    如图:

     

    4、方法:

    1)、collapse:折叠指定的布局面板,可选参数为north、south、east、west
    <script type="text/javascript">
    		$(function(){
    			$('#cc').layout('collapse','east');  
    		});	
    </script>
    

    如图:

     

    如果不想要隐藏按钮,但又需要一个头部标题(fit属性可以让它自适应父容器尺寸):

    <div id="cc" class="easyui-layout" style="width:600px;height:400px;">  
    	    <div data-options="region:'north',title:'North Title',split:true" style="height:100px;"></div>  
    	    <div data-options="region:'south',title:'South Title',split:true" style="height:100px;"></div>  
    	    <div data-options="region:'east',iconCls:'icon-reload',title:'East',split:true" style="width:100px;"></div>  
    	    <div data-options="region:'west',title:'',split:true" style="width:100px;">
    	    	<div class="easyui-panel" data-options="title:'hahha',border:false,fit:true"></div>
    	    </div>  
    	    <div data-options="region:'center',title:'center title',href:''" style="padding:5px;background:#eee;"></div>  
    	</div>  

    如图:

     

    展开全文
  • layout布局

    2019-02-27 11:48:50
    android之六大布局 1、在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、...(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。 2、在2.2操作系统中将Absolut...

    android之六大布局
    1、在4.0以前版本中一共有五种布局,都是ViewGroup的子类。分别是AbsoluteLayout、RelativeLayout、LinearLayout、(FrameLayout)、TableLayout。而TableLayout是LinearLayout的子类。(中文分别是:绝对布局、相对布局、线性布局、帧布局、表格布局)。
    2、在2.2操作系统中将AbsoluteLayout过期。而目前TableLayout也逐渐少用。
    3、在4.0之后又新增GridLayout。(GridLayout最经典的案例是计算器界面)
    总之,Android中一共有六种布局。

    目前推荐使用RelativeLayout、LinearLayout、GridLayout三种布局。

    所以下面我们只着重介绍RelativeLayout、LinearLayout、GridLayout三大布局。
    LinearLayout:
    LinearLayout是线性布局控件,它包含的子控件将以横向或竖向的方式排列,按照相对位置来排列所有的widgets或者其他的containers,
    超过边界时,某些控件将缺失或消失。因此一个垂直列表的每一行只会有一个widget或者是container,而不管他们有多宽,而一个水平列表
    将会只有一个行高(高度为最高子控件的高度加上边框高度)。LinearLayout保持其所包含的widget或者是container之间的间隔以及互相对齐
    (相对一个控件的右对齐、中间对齐或者左对齐)。
    (一)、概念:线性布局控制其中的控件或组件横向或纵向排列。线性布局布局中,每一行或每一列只能放一个控件。并且线性布局不会换行。当控件排列到窗体边缘,后面的控件就被隐藏,而不会显示出来。
    线性布局的默认方向是水平方向(Horizontal)。vertical

    (二)、LinearLayout的常用属性:
    1.android:orientation 定义布局内控件或组件的排列方式
    可选项:vertical 、 horizontal

    【备注:】
    颜色有RGB颜色格式和ARGB格式。RGB是红绿蓝三原色。而ARGB是带alpha的三原色,即有透明度的三原色。
    #FFFFFF 代表白色
    #000000 黑色
    #FFFFFFFF 完全不透明
    #00FFFFFF 完全透明
    #88FFFFFF 半透明

    6.android:layout_weight 设置控件的权重。即各控件在水平或者垂直方向上平均分配。
    备注:如果是水平方向设置权重,要将android:layout_width设置为0dp,如果是垂直方向上使用权重,要将android:layout_height设置为0dp。否则权重容易受到高度或宽度的干扰而出现偏差。

    7.android:gravity 该属性用来控制该View的内容物的位置。
    如果该属性是定义在布局节点中,则该布局中所有控件的位置都受到这个属性的控制。
    如果该属性出现在Button、TextView、EditText等控件中,则用来控制这些控件上的文字的位置。
    可选项有:top、bottom、left、right、center_vertical、fill_vertical 、 center、fill等等。
    【备注:】本属性与android:layout_gravity不同。

    8.android:layout_gravity 该属性用于设置控件相对于容器的对齐方式。
    可选项有:top、bottom、left、right、center_vertical、center_horizontal 、fill_vertical 、 center、fill等等。
    这些可选项中不是适用于每一种布局。在垂直线性布局中,android:gravity为bottom不起作用;而水平线性布局中,android:gravity为right不起作用。
    【备注:】而本属性是android:layout_gravity属性,与 android:gravity 属性不同。

    (三)、LinearLayout的特有属性:【重新归纳:去除公共属性后的特有属性】
    1、android:orientation 布局管理器内组件的排列方式
    2、android:gravity 设置布局管理器内组件的对齐方式
    3、android:weightSum

    (四)、 LinearLayout 子元素的特有属性:
    1、android:layout_weight 子元素在 LinearLayout 中所占的权重
    2、android:layout_gravity 子元素在 LinearLayout 中的对齐方式
    RelativeLayout:
    (一)、概念:指按着控件之间的相对位置来进行布局。
    RelativeLayout是一个允许子视图相对于其他兄弟视图或是父视图显示的视图组(通过ID指定)。
    每个视图的位置能够指定它相对于兄弟(比如在其他视图的左边或是下边)或是父视图(这里是指相对布局容器,
    比如底部对齐、中间偏左)的位置。
    (二)、RelativeLayout特有属性:
    1、android:gravity 设置布局容器内子控件的对齐方式
    2、android:ignoreGravity=“id” 设置布局管理器内哪个控件不受gravity属性的影响

    (三)、RelativeLayout子元素的特有属性:LayoutParams
    A、第一组:指兄弟控件之间的相对位置。该组属性的值是另一个控件的id。
    layout_toRightOf 该控件在哪个控件的右侧
    layout_toLeftOf 该控件在哪个控件的左侧
    layout_above 该控件在哪个控件的上侧
    layout_below 该控件在哪个控件的下侧

    B、第二组:指兄弟控件之间的对齐关系。该组属性的值是另一个控件的id。
    1
    layout_alignRight 该控件与哪个控件的右对齐
    layout_alignLeft 该控件与哪个控件的左对齐
    layout_alignTop 该控件与哪个控件的顶对齐
    layout_alignBottom 该控件与哪个控件的底对齐

    C、第三组:指控件与父布局之间的对齐关系。该组属性的值是true或者false。
    1
    layout_alignParentRight 该控件与父布局控件的右对齐吗?
    layout_alignParentLeft 该控件与父布局控件的左对齐吗?
    layout_alignParentTop 该控件与父布局控件的顶端对齐吗?
    layout_alignParentBottom 该控件与父布局控件的底部对齐吗?
    layout_centerInParent 该控件位于父布局控件的中心位置吗?
    layout_centerVertical 该控件位于父布局控件的垂直中心位置吗?
    layout_centerHorizontal 该控件位于父布局控件的水平中心位置吗?

    GridLayout:
    1、android:layout_column
    属性说明: 显示该控件的列。例如,android:layout_column=“0”,表示在第1列显示该控件;android:layout_column=“1”,表示在第2列显示该控件。

    2、android:layout_row
    属性说明: 该控件所在行。例如,android:layout_row=“0”,表示在第1行显示该控件;android:layout_row=“1”,表示在第2行显示该控件。它和 android:layout_column类似。

    3、android:layout_columnSpan
    属性说明: 列合并。即该控件所占的列数。例如,android:layout_columnSpan=“2”,表示该控件占2列。

    4、android:layout_rowSpan
    属性说明: 行合并。即该控件所占的行数。例如,android:layout_rowSpan=“2”,表示该控件占2行。

    5、android:layout_gravity
    属性说明:该控件的布局方式。选项值:
    top – 控件置于容器顶部,不改变控件的大小。
    bottom – 控件置于容器底部,不改变控件的大小。
    left – 控件置于容器左边,不改变控件的大小。
    right – 控件置于容器右边,不改变控件的大小。
    center_vertical – 控件置于容器竖直方向中间,不改变控件的大小。
    fill_vertical – 如果需要,则往竖直方向延伸该控件。
    center_horizontal – 控件置于容器水平方向中间,不改变控件的大小。
    fill_horizontal – 如果需要,则往水平方向延伸该控件。
    center – 控件置于容器中间,不改变控件的大小。
    fill – 如果需要,则往水平、竖直方向延伸该控件。
    clip_vertical – 垂直剪切,剪切的方向基于该控件的top/bottom布局属性。若该控件的gravity是竖直的:若它的gravity是top的话,则剪切该控件的底部;若该控件的gravity是bottom的,则剪切该控件的顶部。
    clip_horizontal – 水平剪切,剪切的方向基于该控件的left/right布局属性。若该控件的gravity是水平的:若它的gravity是left的话,则剪切该控件的右边;若该控件的gravity是 right的,则剪切该控件的左边。
    start – 控件置于容器的起始处,不改变控件的大小。
    end – 控件置于容器的结束处,不改变控件的大小。
    二:android之UI组件

    什么是View—>Object
    这个类是用户接口的基础构件。 View 表示屏幕上的一块矩形区域,负责绘制这个区域和事件处理。
    View 是所有widget类的基类,Widget 类用于创建交互式UI构件(按钮,输入框等)。
    View 类的ViewGroup子类是layout 的基类,Layout是一个不可见的容器,它保存着View(或ViewGroup)并定义这些View的layout 属性。
    可以说View类是用户接口类中最重要的一个类。

    (一)、控件名称:【标红色的为常用的】
    TextView 文本视图
    EditText 文本编辑框
    Button 按钮
    ImageView、Gallery 图像视图、画廊(建议过期)
    ImageButton 图片按钮
    ToggleButton 、Switch 开关按钮、开关
    RadioButton 单选按钮
    CheckBox 多选框
    Spinner 下拉列表
    AutoCompleteTextView 自动完成文本框
    ProgressBar 进度条
    SeekBar 拖动条
    RatingBar 星级评分条
    TimePicker、DatePicker 时间选择器、日期选择器
    AnalogClock、DigitalClock 模拟时钟、数字时钟
    Dialog(AlertDialog、ProgressDialog、TimePickerDialog、DatePickerDialog)提示对话框、进度对话框、时间选择对话框、日期选择对话框
    ListView、GridView RecyclerView(5.0之后新控件) 列表视图【最重要的UI组件】、 网格视图
    ScrollView 滚动视图
    ExpandableListView 可展开列表视图
    WebView 网页视图
    SearchView 搜索框
    TabHost 书签选项卡
    Notification 、Toast 通知 、 吐司(短时提醒)
    Menu(OptionMenu /SubMenu、ContextMenu) 菜单(选项菜单、上下文菜单)
    ImageSwitcher、TextSwitcher 、 ViewPager 图像切换器、文本切换器
    ActionBar ToolBar 动作导航条

    八、基本控件:——TextView:
    (一)、TextView类结构:
    java.lang.Object
    ↳ android.view.View
    ↳ android.widget.TextView

    (二)、TextView 常用属性:
    1、andorid:text 设置文本的内容
    2、 android:textColor 设置文本的颜色
    3、 android:textSize 设置文本的字体大小(sp)
    4、 andorid:height 设置文本的高度,以像素为单位
    5、 android:width 设置文本的宽度,以像素为单位
    6、 android:inputType 设置文本的类型。例如是普通文本,还是email,password,数字等等。
    7、 android:singleLine 设置文本是否是单行显示。
    8、android:gravity 设置文本框内文本的对齐方式。可选项有:top、bottom、left、right、center、fill、center_vertical、center_horizontal、fill_horizontal等等。这些属性值也可以同时指定,各属性值之间用竖线隔开。例如right|bottom
    9、android:drawableLeft 用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    10、android:drawableRight 用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    11、android:drawableTop 用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    12、android:drawableBottom 用于在文本框左侧绘制图片。该属性值通过“@drawable/图片文件名”来设置。
    13、android:autoLink 给指定的文本增加可单击的超链接。可选项为:none、web、email、phone、map和all。
    多个选项之间使用“|”分隔,也可以使用all。
    14、android:hint 设置当文本框内文本内容为空时,默认显示的提示性文字。

    【补充:】
    1、android:textAllCaps=“true” 设置所有字母都大小
    2、android:ellipsize=“end” 文字过长,设置省略号。可选项:start , end ,middle,marquee
    android:ellipsize=“start” 省略号在开头
    android:ellipsize=“middle” 省略号在中间
    android:ellipsize=“end” 省略号在结尾
    android:ellipsize=“marquee” 跑马灯显示
    【备注:】要实现跑马灯效果。要同时具有以下属性。
    android:ellipsize=“marquee”
    android:singleLine=“true”
    android:focusable=“true”
    android:focusableInTouchMode=“true”
    android:marqueeRepeatLimit=“marquee_forever”

    九、基本控件:——EditText:
    (一)、 EditText 类结构:
    java.lang.Object
    ↳ android.view.View
    ↳ android.widget.TextView
    ↳ android.widget.EditText

    所以 EditText 继承了TextView的所有属性。

    (二)、android:inputType的可选项:
    android:inputType=“textPersonName”
    android:inputType=“textPassword”
    android:inputType=“numberPassword” 只可以输入数字
    android:inputType=“textEmailAddress”
    android:inputType=“phone” 只允许输入数字,括号等特殊符号,不可以输入字母。
    android:inputType=“textPostalAddress”
    android:inputType=“time”
    android:inputType=“date”
    android:inputType=“number”

    十、基本控件:——Button:
    (一)、Button类结构:
    java.lang.Object
    ↳ android.view.View
    ↳ android.widget.TextView
    ↳ android.widget.Button

    所以Button继承了TextView的所有属性。

    【特别补充:】sp、dp、dip、pt、px等单位的区别?【重点】
    dpi dpi指像素密度。dots per inch ,即每英寸内像素点的个数。它不是表示长度的单位。
    在android中认为:低(120dpi),中(160dpi),高(240dpi),超高(320dpi)。随着技术的增长,实际dpi已经超出这个定义范围。
    dip device independent pixels ,即与设备无关的像素。目前这个单位已经被dp所取代,而不建议使用dip。
    dp 与dip的概念一样。不过dp已经取代了dip。在Android中用来表示非文字大小的尺寸。例如:外边距、内填充等。
    px = dp * (dpi / 160)
    3.7寸屏幕,分辨率320*480手机上,正好1px = 1dp。
    sp scale independent pixel ,即与缩放比例无关的像素。在android中常用来表示文字大小。
    px 表示像素。因为同样是200px,但是在不同手机下显示的大小是不同的。
    pt point磅。1磅=1/74英寸
    xlarge 屏幕至少:960dp x 720dp
    large 屏幕至少 :640dp x 480dp
    normal 屏幕至少 :480dp x 320dp
    small 屏幕至少 :426dp x 320dp
    总之:dp是用来定义非文字的尺寸,sp用来定义文字大小。px只用于产生一条一像素的分割线时使用。

    展开全文
  • Android RelativeLayout布局

    万次阅读 2018-08-24 17:22:45
    相对布局(RelativeLayout)将子视图以相对位置显示。默认显示在父视图的左上角。 layout_alignParentTop,父视图的上边 layout_alignParentBottom,父视图的下边 layout_alignParentLeft,父视图的左边 ...

    1. RelativeLayout类

    相对布局(RelativeLayout)将子视图以相对位置显示。默认显示在父视图的左上角。

    • layout_alignParentTop,父视图的上边
    • layout_alignParentBottom,父视图的下边
    • layout_alignParentLeft,父视图的左边
    • layout_alignParentRight,父视图的右边

    设置4个子视图在边角位置。

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <!-- 左上角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="Default"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
        <!-- 右上角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:text="Right"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
        <!-- 左下角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignParentBottom="true"
            android:text="Bottom"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
        <!-- 右下角显示 -->
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:layout_alignParentRight="true"
            android:layout_alignParentBottom="true"
            android:text="Right|Bottom"
            android:gravity="center"
            android:background="#ffa6a5aa"/>
    </RelativeLayout>
    

    效果如下
    这里写图片描述

    2. 居中显示

    layout_centerXX可以在父视图内居中显示

    • layout_centerInParent,相对于父视图完全居中
    • layout_centerHorizontal,相对于父视图水平居中
    • layout_centerVertical,相对于父视图垂直居中

    可以配合alignParentXX使用

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="centerInParent"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerInParent="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="centerHorizontal"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerHorizontal="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="alignParentBottom"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerHorizontal="true"
            android:layout_alignParentBottom="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="centerVertical"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerVertical="true"/>
    
        <TextView
            android:layout_width="120dp"
            android:layout_height="40dp"
            android:text="alignParentRight"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_centerVertical="true"
            android:layout_alignParentRight="true"/>
    
    </RelativeLayout>
    

    效果如下
    这里写图片描述

    3. 相对视图对齐

    • layout_above,视图的下边与相对视图的上边对齐
    • layout_below,视图的的上边与相对视图的下边对齐
    • layout_toRightOf,视图的左边与相对视图的右边对齐
    • layout_toLeftOf,视图的右边与相对视图的左边对齐

    设置的子视图的相对位置,

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/tv_center"
            android:layout_width="150dp"
            android:layout_height="60dp"
            android:layout_centerInParent="true"
            android:text="center"
            android:background="#ffffcc00"
            android:gravity="center" />
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="above"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_above="@id/tv_center"/>
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="below"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_below="@id/tv_center"/>
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="toRightOf"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_toRightOf="@id/tv_center"/>
    
        <TextView
            android:layout_width="100dp"
            android:layout_height="40dp"
            android:text="toLeftOf"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_toLeftOf="@id/tv_center"/>
    
    </RelativeLayout>
    

    效果如下
    在这里插入图片描述

    4. 边对齐

    • layout_alignTop,视图与基准视图的上边对齐
    • layout_alignBottom:视图与基准视图的下边对齐
    • layout_alignLeft:视图与基准视图的左边对齐
    • layout_alignRight:视图与基准视图的右边对齐
    • layout_alignBaseline:视图与基准视图的基准线对齐

    设置的子视图某条边的对齐方式,

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent">
    
        <TextView
            android:id="@+id/tv_center"
            android:layout_width="150dp"
            android:layout_height="100dp"
            android:layout_centerInParent="true"
            android:text="center"
            android:textSize="32sp"
            android:background="#ffffcc00"
            android:gravity="center" />
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignTop"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignTop="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignBottom"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignBottom="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignLeft"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignLeft="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignRight"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignRight="@id/tv_center"/>
    
        <TextView
            android:layout_width="60dp"
            android:layout_height="20dp"
            android:text="alignBaseline"
            android:gravity="center"
            android:background="#ffa6a5aa"
            android:layout_alignBaseline="@id/tv_center"/>
    
    </RelativeLayout>
    

    效果如下
    在这里插入图片描述
    相关文章
    Android LinearLayout布局
    Android RelativeLayout布局
    Android ConstraintLayout布局
    Android 自定义布局

    展开全文
  • Layout布局

    2020-06-24 16:12:07
    Layout布局基础布局分栏间隔混合布局分栏偏移对齐方式响应式布局基于断点的隐藏类Row AttributesCol Attributes 通过基础的24分栏,迅速简便地创建布局 官方原文链接:ElementUI Layout布局 基础布局 使用单一分栏...


    通过基础的24分栏,迅速简便地创建布局

    官方原文链接:ElementUI Layout布局

    基础布局

    使用单一分栏创建基础的栅格布局

    在这里插入图片描述

    通过row和col组件,并通过col组件的span属性我们可以自由地组合布局
    <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 class="grid-content bg-purple"></div></el-col>
      <el-col :span="12"><div class="grid-content bg-purple-light"></div></el-col>
    </el-row>
    <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"></div></el-col>
      <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row>
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple-light"></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-light"></div></el-col>
    </el-row>
    <el-row>
      <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
      <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="4"><div class="grid-content bg-purple-light"></div></el-col>
      <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="4"><div class="grid-content bg-purple-light"></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>
    

    分栏间隔

    分栏之间存在间隔
    在这里插入图片描述

    Row 组件 提供 gutter 属性来指定每一栏之间的间隔,默认间隔为 0。
    
    <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>
    

    混合布局

    通过基础的1/24分栏任意扩展组合形成较为复杂的混合布局
    在这里插入图片描述

    <el-row :gutter="20">
      <el-col :span="16"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="8"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="4"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="16"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="4"><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>
    

    分栏偏移

    支持偏移指定的栏数。
    在这里插入图片描述

    通过制定 col 组件的 offset 属性可以指定分栏偏移的栏数
    
    <el-row :gutter="20">
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6" :offset="6"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row :gutter="20">
      <el-col :span="12" :offset="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>
    

    对齐方式

    通过 flex 布局来对分栏进行灵活的对齐。
    在这里插入图片描述

    将 type 属性赋值为 'flex',可以启用 flex 布局,
    并可通过 justify 属性来指定 start, center, end, space-between, space-around 
    其中的值来定义子元素的排版方式。
    
    <el-row type="flex" class="row-bg">
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row type="flex" class="row-bg" justify="center">
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row type="flex" class="row-bg" justify="end">
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row type="flex" class="row-bg" justify="space-between">
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple-light"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
    </el-row>
    <el-row type="flex" class="row-bg" justify="space-around">
      <el-col :span="6"><div class="grid-content bg-purple"></div></el-col>
      <el-col :span="6"><div class="grid-content bg-purple-light"></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>
    

    响应式布局

    参照了 Bootstrap 的 响应式设计,预设了五个响应尺寸:xs、sm、md、lg 和 xl。
    在这里插入图片描述

    <el-row :gutter="10">
      <el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="1"><div class="grid-content bg-purple"></div></el-col>
      <el-col :xs="4" :sm="6" :md="8" :lg="9" :xl="11"><div class="grid-content bg-purple-light"></div></el-col>
      <el-col :xs="4" :sm="6" :md="8" :lg="9" :xl="11"><div class="grid-content bg-purple"></div></el-col>
      <el-col :xs="8" :sm="6" :md="4" :lg="3" :xl="1"><div class="grid-content bg-purple-light"></div></el-col>
    </el-row>
    
    <style>
      .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;
      }
    </style>
    

    基于断点的隐藏类

    Element 额外提供了一系列类名,用于在某些条件下隐藏元素。这些类名可以添加在任何 DOM 元素或自定义组件上。如果需要,请自行引入以下文件:

    import 'element-ui/lib/theme-chalk/display.css';
    

    包含的类名及其含义为:

    • hidden-xs-only - 当视口在 xs 尺寸时隐藏
    • hidden-sm-only - 当视口在 sm 尺寸时隐藏
    • hidden-sm-and-down - 当视口在 sm 及以下尺寸时隐藏
    • hidden-sm-and-up - 当视口在 sm 及以上尺寸时隐藏
    • hidden-md-only - 当视口在 md 尺寸时隐藏
    • hidden-md-and-down - 当视口在 md 及以下尺寸时隐藏
    • hidden-md-and-up - 当视口在 md 及以上尺寸时隐藏
    • hidden-lg-only - 当视口在 lg 尺寸时隐藏
    • hidden-lg-and-down - 当视口在 lg 及以下尺寸时隐藏
    • hidden-lg-and-up - 当视口在 lg 及以上尺寸时隐藏
    • hidden-xl-only - 当视口在 xl 尺寸时隐藏

    Row Attributes

    参数 说明 类型 可选值 默认值
    gutter 栅格间隔 number 0
    type 布局模式,可选flex,现代浏览器下有效 string
    justify flex布局下的水平排列方式 string start/end/center/space-around/space-between start
    align flex布局下的垂直排列方式 string top/middle/bottom top
    tag 自定义元素标签 string * div

    Col Attributes

    参数 说明 类型 可选值 默认值
    span 栅格占据的列数 number 24
    offset 栅格左侧的间隔数 number 0
    push 栅格向右移动格数 number 0
    pull 栅格向左移动格数 number 0
    xs <768px响应式栅格数或者栅格属性对象 number/object(例如: {span:4,offset:4})
    sm \ge 768px响应式栅格数或者栅格属性对象 number/object(例如: {span:4,offset:4})
    md \ge 992px响应式栅格数或者栅格属性对象 number/object(例如: {span:4,offset:4})
    lg \ge 1200px响应式栅格数或者栅格属性对象 number/object(例如: {span:4,offset:4})
    xl \ge 1920px响应式栅格数或者栅格属性对象 number/object(例如: {span:4,offset:4})
    tag 自定义元素标签 string * div
    展开全文
  • 这种布局比较常见,博客园很多默认主题就是这种。一般情况下,这种布局中宽度固定的区域是侧边栏,而自适应的区域是主体内容区——相信把侧边栏搞成自适应的人很少吧?要实现这种布局,也算比较简单。我们先给出html...
  • 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...
  • vue、Layout 布局Layout 属性、vue Layout 全部布局、vue Layout 全部属性
  • Qt layout布局

    千次阅读 2018-09-25 20:25:36
    Qt中关于布局有多个类,适用于不同的场景。 QBoxLayout【QHBoxLayout , QVBoxLayout】, QFormLayout, QGridLayout, and QStackedLayout,均派生自QLayout。 二 常用函数 1、设置左上右下的空白 ...
  • 简书(阅读体验更好):写出高效清晰Layout布局文件的一些技巧 当人们谈论Android性能的时候总是习惯讨论怎么写出清晰高效的Java代码,却忽略了layout布局文件。layout布局缓慢的渲染速度对app性能也有的很大的影响。...
  • 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...
  • vue项目实战(二)之首页layout布局

    万次阅读 2018-10-30 11:02:19
    1.在 src/components目录下新建Layout.vue文件: &lt;template&gt; &lt;div&gt; &lt;h2&gt;header&lt;/h2&gt; &lt;h2&gt;content&lt;/h2&gt; &lt;h2&...
  • Qt入门-layout布局

    万次阅读 多人点赞 2012-07-19 18:40:43
    开发一个图形界面应用程序,界面的布局影响到界面的美观。在设计一个界面之前,应该考虑到开发的界面可能给不用的用户使用,而用户的屏幕大小、纵横比例、分辨率可能不同,界面还可能是可缩放的,程序应该可以适应...
  • 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...
  • 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 ...
  • EasyUI之Layout布局

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

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

    万次阅读 多人点赞 2015-12-20 23:10:11
    Android中的Veiw从内存中到呈现在UI界面上需要依次经历三个阶段:量算 -> 布局 -> 绘图,关于View的量算、布局、绘图的总体机制可参见...本文将从源码角度解析View的布局layout过程,本文会详细介绍View布局过程中的
  • html layout 布局

    千次阅读 2019-01-16 15:22:23
    自然布局:默认的流式布局:就是块级的垂向下,块内的横向移动。 浮动布局:通过float,可以将块级的并行在一排。 层模型 特点:如果我想一个div在另外一个div的上面,我们就需要可以使用绝对定位来完成,层模型的...
  • tp5 layout布局

    千次阅读 2017-04-16 20:56:10
    tp5 布局 layout
1 2 3 4 5 ... 20
收藏数 406,297
精华内容 162,518
关键字:

layout 布局