CSS3之flex兼容写法

2023-01-31 03:01:19 兼容 写法 css3

很久不写博文,之前的长时间不上都关闭了,但随着工作时间长越来越长,对知识的积累和总结还真的是很重要的。所以奉劝码农们每天都还是要抽出来一点时间总结点东西,以后对你受益匪浅!!今天还是变谈css3里的flex怎么处理兼容的

flex是个非常好用的属性,如果说有什么可以完全代替 float 和 position ,那么肯定是非它莫属了,虽然现在低版本浏览器不支持,可是对于移动来说兼容性不是问题,可是在安卓4.3以后版本里。那就不好用了,今天咱们就说下如果写flex才能保证兼容性。

flex之所以有兼容性。是因为w3c从09到现在更新了很多次,所以有一些浏览器只是支持旧语法的书定方式,flex属性有很多种,今天主要说常用的等比设置和居中这两块


一、旧语法

.box{
    display: -moz-box;    
    display: -WEBkit-box; 
    display: box;
}

2.容器属性

 1)box-pack box-pack属性总共有4个值:

.box{    box-pack: start | end | center | justify;
        }

3.子元素属性

 box-flex 属性:

.item{
    -moz-box-flex: 1.0;    
    -webkit-box-flex: 1.0; 
    box-flex: 1.0;}


二、新语法

  1.容器的display属性


.item{
    -moz-box-flex: 1;     
    -webkit-box-flex: 1;  
    box-flex: 1;
}
    
.box{                              
     display: -webkit-inline-flex; 
     display:inline-flex;
}

2.容器样式

.box{    flex-direction: row | row-reverse | column | column-reverse;    

    flex-wrap: nowrap | wrap | wrap-reverse;    

    flex-flow: <flex-direction> || <flex-wrap>;    

    justify-content: flex-start | flex-end | center | space-between | space-around;    

    align-items: flex-start | flex-end | center | baseline | stretch;    

    align-content: flex-start | flex-end | center | space-between | space-around | stretch;    }

3.子元素属性

.item{    order: <integer>;    

    flex-grow: <number>; 
    

    flex-shrink: <number>; 
    

    flex-basis: <length> | auto; 
    

    flex: none | [ <'flex-grow'> <'flex-shrink'>? || <'flex-basis'> ]    

    align-self: auto | flex-start | flex-end | center | baseline | stretch;    }

兼容写法:

1.盒子的兼容写法 

.box{
    display: -webkit-box; 
    display: -moz-box; 
    display: -ms-flexbox; 
    display: -webkit-flex; 
    display: flex; }

2.子元素的兼容写法:


.flex1 {  
            -webkit-box-flex: 1     
            -moz-box-flex: 1;                  
            -webkit-flex: 1;     
            -ms-flex: 1         
            flex: 1;         
  }

我要说的主要部分来了。。


这种兼容写法不一定起效的。尤其是在底版本安卓系统中。因为什么呢?因为所有都是向下兼容的,所以写法的顺序一定要写好了才起作用。就是把旧语法写在底下,个别不兼容的移动设置才会识别,哪些是旧的语法,你懂的。那些带box的一定要写在最下面即可。所以上面的兼容写法应该是这样的才对

.box{
    
    display: -webkit-flex; 
    display: flex; 
    display: -webkit-box; 
    display: -moz-box; 
    display: -ms-flexbox;    
    
 }
.flex1 {  
                  
            -webkit-flex: 1;     
            -ms-flex: 1         
            flex: 1;         
             -webkit-box-flex: 1     
            -moz-box-flex: 1;           
  }

如果你不把握好这个先后顺序,总是调整不出来完整的兼容样式。  


   

相关文章