微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

flex缩放

flex-grow::当父控件还有剩余空间的时候,是否进行放大(grow),其中数值代表的是放大比例,值为0的时候表示不放大;

flex-shrink:当父控件空间不够的时候,是否进行缩小(shrink),其中数值代表的是缩小比例,值为0的时候表示不缩小;

flex-basis:表示在flex items 被放入flex容器之前的大小,也就是items的理想或者假设大小,但是并不是其真实大小,其真实大小取决于flex容器的宽度、flex items的min-width、max-width等其他样式
  • 当flex-basis和width属性同时存在时,width属性不生效,flex item的宽度为flex-basis设置的宽度;
  • flex items宽度的应用准则:flex-basis (受制于 max|min-width)  优先级大于 width 优先级大于 content;
  • .flex-item{
          flex-basis: 300px;   // 失效
          max-width: 100px;   
    }
    .item1{
          background: #66efab;
    }
  需求:希望底部内容一直在底部,只有当中间内容多到屏幕底部的时候,底部内容自动移出屏幕。大概就是下面这个效果,当绿色的内容多到黄色区域的时候黄色区域自动移动出屏幕:

解决办法:3个子view套一个父view,父view设置一个min-height:100%; display:flex; flex-direction:column;,中间的view设置flex:1;

flex是 flex-grow,flex-shrink,flex-basis的缩写

flex的属性是0 1 auto,【父控件有剩余控件也不放大,父控件空间不足按1缩小,保持本身的空间大小】;

flex:1;的值是1 1 0%,【父控件有剩余空间占1份放大,父控件空间不足按1缩小,自身的空间大小是0%】;

当 flex:none;的值为 0 0 auto; 当 flex:auto;的值为 1 1 auto; 当 flex 取值为一个非负数字,则该数字为 flex-grow 值,flex-shrink 取 1,flex-basis 取 0%; 当 flex 取值为一个长度或百分比,则视为 flex-basis 值,flex-grow 取 1,flex-shrink 取 1; 当 flex 取值为两个非负数字,则分别视为 flex-grow 和 flex-shrink 的值,flex-basis 取 0%; 当 flex 取值为一个非负数字和一个长度或百分比,则分别视为 flex-grow 和 flex-basis 的值,flex-shrink 取 1;          

原文:https://www.douban.com/note/717223803/

https://www.jianshu.com/p/57a94430dcbe

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐