zoukankan      html  css  js  c++  java
  • css基础篇(三)——布局(下)

    之所以将浮动,定位归为布局来讲,就是因为css布局技术都依赖于三个基本概念:定位,浮动和空白边的操纵;

    1.固定宽度布局

    1.1 居中布局

    如上图:是pc端比较时髦的居中设计,而实现居中设计的方案有:

    1.自动空白实现(如上图)

    .main{
    	1000px;
    	marign:0 auto;
    }
    

    2.定位和负值空白边

    .main{
    	positon:relative;
    	1000px;
    	left:50%;
    	margin-left:-500px;
    }
    

    1.2 多栏布局

    如上图:利用float实现的多栏布局,给不同的列定宽,然后使用float(float的使用上篇已有介绍)像左浮动,就可以使每一栏依次有序的排列了

    2.流体布局

    流体布局,尺寸用的是百分比而不是像素设置的,这使得流体布局能够相对浏览器窗口进行伸缩。

    流体布局在窗口很小的时候,行变得非常窄,很难阅读。因此有必要添加min-width,从而防止布局变的太窄

    3.弹性布局

    弹性布局相对与字号(而不是浏览器宽度)。通过以em为单位设置宽度,可以确保字号增加时整个布局随之扩大。

    目前我使用弹性布局主要是在移动端,在说弹性布局前,先说说弹性盒;

    3.1 box 和 flex

    这两种写法只是对应不同时期的flex规范,各个写法的兼容性如下:

    display: -webkit-box;   /* Chrome 4+, Safari 3.1, iOS Safari 3.2+ */
    display: -moz-box;      /* Firefox 17- */
    display: -webkit-flex;  /* Chrome 21+, Safari 6.1+, iOS Safari 7+, Opera 15/16 */
    display: -moz-flex;     /* Firefox 18+ */
    display: -ms-flexbox;   /* IE 10 */
    display: flex;          /* Chrome 29+, Firefox 22+, IE 11+, Opera 12.1/17/18, Android 4.4+ */	
    

    3.2 box 和 flex的属性

    (1)定义布局为弹性盒

    .flex{
    	display:-webkit-box;
    	display:-webkit-flex;
    	display:flex;
    }
    

    (2)定义子元素垂直布局

    .flex-v{
    	-webkit-box-orient:vertical;
    	-webkit-flex-direction:column;
    	flex-direction:column;
    }
    

    (3)子元素占据剩余的空间

    .flex-l{
    	-webkit-box-flex:1;
    	-webkit-flex:1;
    	flex:1;
    }
    

    (4)子元素垂直居中

    .flex-align-center{
    	-webkit-box-align:center;
    	-webkit-align-items:center;
    	align-items:center;
    }
    

    (5)子元素水平居中

    .flex-pack-center{
    	-webkit-box-pack:center;
    	-webkit-justify-content:center;
    	justify-content:center;
    }
    

    (6)子元素两端对齐

    .flex-pack-justify{
    	-webkit-box-pack:justify;
    	-webkit-justify-content:space-between;
    	justify-content:space-between;
    }
    

    !!!兼容性:ios 4+、android 2.3+、winphone8+

  • 相关阅读:
    60、剑指offer--把二叉树打印成多行
    59、剑指offer--按之字形顺序打印二叉树
    KNN(最近邻算法)
    RBM(受限玻尔兹曼机)
    Denoising Autoencod
    决策树算法
    AdaBoost算法简介
    suricata工作流程简介
    KD tree详解
    tesseract训练新字库
  • 原文地址:https://www.cnblogs.com/zhuz/p/5042479.html
Copyright © 2011-2022 走看看