返回顶部
首页 > 资讯 > 前端开发 > node.js >Flexbox浏览器兼容的知识点有哪些
  • 667
分享到

Flexbox浏览器兼容的知识点有哪些

2024-04-02 19:04:59 667人浏览 泡泡鱼
摘要

这篇文章主要介绍了Flexbox浏览器兼容的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Flexbox浏览器兼容的知识点有哪些文章都会有所收获,下面我们一起来看看

这篇文章主要介绍了Flexbox浏览器兼容的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Flexbox浏览器兼容的知识点有哪些文章都会有所收获,下面我们一起来看看吧。

历史

09年到现在flexbox分别经历了三种方式:display:box; 、display:flexbox 还有现在的display:flex;

If you Google around about Flexbox, you will find lots of outdated infORMation. Here’s how you can quickly tell:

If you are looking at a blog post (or whatever) about Flexbox and you see display: box; or a property that is box-{*}, you are looking at the old 2009 version of Flexbox.

If you are looking at a blog post (or whatever) about Flexbox and you see display: flexbox; or the flex() function, you are looking at an awkward tweener phase in 2011.

If you are looking at a blog post (or whatever) about Flexbox and you see display: flex; and flex-{*} properties, you are looking at the current (as of this writing) specification.

flexbox最初定义的时候其实2009年定义了第一个版本以后,就有浏览器厂商率先实现了display:box的功能。到了2011年大家对原来实现的功能还不满意,为了不改变原来对display:box的支持,就有了display:flexbox;。到后来规范逐渐成熟再加上功能需要在加完善,所以就到了display:flex,还会不会改鬼知道呢。

支持情况

我们从caniuse上看一下支持度。

display:box; 除了Firefox其他的都partial support with prefix -WEBkit-

display:flexbox 支持也很好啊。

display:flex 发现差不多和上一个一样的支持度。

大体总结了一下,除了Opera mobile12,还有IE,各大浏览器都是支持flexbox的旧版语法的。

注:最新的语法才加入了wrap的属性,所以旧版肯定是不支持的

解决方案

从上面的调研可以看出,其实最新的flex是兼容之前的语法的,只不过有一些新增的语法。那么解决这样的兼容问题显而易见的就是增加上旧版的语法,就可以解决一些支持旧版语法的浏览器啦。

flexbox分为container和item,所以兼容的写法也分两部分。

container

.grid{

  display: -webkit-box;

  display: -webkit-flex;

  display: flex;

}

item

.grid-cell{

    -webkit-box-flex: 1;

    -webkit-flex: 1;

    flex: 1;

}

看到这里,你可能就有疑问,这样每次写这么多前缀不累吗?我们有工具啊:

我们可以使用类似autoprefixer, 或者是sass\less等工具来写CSS。另外安利一个sass的mixin大家可以看看compass-flex。

还有一种方式就是,完全用老版本的display:box来写,这样的话 除了一些新特性比如flex-wrap不能用以外(如果你觉得没必要用新特性)别的基本没什么问题,这里贴一份朋友写的grid系统 (据说兼容Android2.3):

.row {

    width: 100%;

    margin: 0;

    padding: 0;

    box-sizing: border-box;

    height: auto;

    display: block;

    zoom: 1;

}

.row.flex:after {

    display: none;

}

.row.flex > .col-flex,

.row.flex > .col,

.row.flex > .col-1,

.row.flex > .col-2,

.row.flex > .col-3,

.row.flex > .col-4,

.row.flex > .col-5,

.row.flex > .col-6,

.row.flex > .col-7,

.row.flex > .col-8,

.row.flex > .col-9,

.row.flex > .col-10,

.row.flex > .col-11,

.row.flex > .col-12 {

    float: none;

}

.row.flex > .col-flex {

    -webkit-box-flex: 1;

}

.row:after {

    content: " ";

    visibility: hidden;

    display: table;

    height: 0;

    clear: both;

}

.row > .col,

.row > .col-1,

.row > .col-2,

.row > .col-3,

.row > .col-4,

.row > .col-5,

.row > .col-6,

.row > .col-7,

.row > .col-8,

.row > .col-9,

.row > .col-10,

.row > .col-11,

.row > .col-12 {

    -webkit-box-flex: 0;

    padding-left: 0;

    padding-right: 0;

    display: block;

    float: left;

}

.row > .col-1 {

    width: 8.33333%;

}

.row > .col-offset-1 {

    margin-left: 8.33333%;

}

.row > .col-2 {

    width: 16.66667%;

}

.row > .col-offset-2 {

    margin-left: 16.66667%;

}

.row > .col-3 {

    width: 25%;

}

.row > .col-offset-3 {

    margin-left: 25%;

}

.row > .col-4 {

    width: 33.33333%;

}

.row > .col-offset-4 {

    margin-left: 33.33333%;

}

.row > .col-5 {

    width: 41.66667%;

}

.row > .col-offset-5 {

    margin-left: 41.66667%;

}

.row > .col-6 {

    width: 50%;

}

.row > .col-offset-6 {

    margin-left: 50%;

}

.row > .col-7 {

    width: 58.33333%;

}

.row > .col-offset-7 {

    margin-left: 58.33333%;

}

.row > .col-8 {

    width: 66.66667%;

}

.row > .col-offset-8 {

    margin-left: 66.66667%;

}

.row > .col-9 {

    width: 75%;

}

.row > .col-offset-9 {

    margin-left: 75%;

}

.row > .col-10 {

    width: 83.33333%;

}

.row > .col-offset-10 {

    margin-left: 83.33333%;

}

.row > .col-11 {

    width: 91.66667%;

}

.row > .col-offset-11 {

    margin-left: 91.66667%;

}

.row > .col-12 {

    width: 100%;

}

.row > .col-offset-12 {

    margin-left: 100%;

}

.flex {

    display: -webkit-box;

    display: box;

    -webkit-box-orient: horizontal;

    box-orient: horizontal;

}

.flex.vertical {

    -webkit-box-orient: vertical;

    box-orient: vertical;

}

.flex.start {

    -webkit-box-pack: start;

}

.flex.center {

    -webkit-box-pack: center;

}

.flex.end {

    -webkit-box-pack: end;

}

.flex.justify {

    -webkit-box-pack: justify;

}

.flex.top {

    -webkit-box-align: start;

}

.flex.middle {

    -webkit-box-align: center;

}

.flex.bottom {

    -webkit-box-align: end;

}

其他的不兼容特性

在旧版的规范中,使用比例伸缩布局时,子元素的内容长短不同会导致无法“等分”,这个时候,我们需要给子元素设置一个“width:0%”来解决问题

不要给item设置“margin:auto”的属性,在部分安卓机下,它会导致该元素的宽度撑开到100%占位

旧版的box item要求属性是块级结构,所以很多inline元素需要设置display:block等才能显示正常

text-overflow: ellipsis;在display:flex元素上无效

记住上面的坑,避免跳进去。

关于“Flexbox浏览器兼容的知识点有哪些”这篇文章的内容就介绍到这里,感谢各位的阅读!相信大家对“Flexbox浏览器兼容的知识点有哪些”知识都有一定的了解,大家如果还想学习更多知识,欢迎关注编程网node.js频道。

--结束END--

本文标题: Flexbox浏览器兼容的知识点有哪些

本文链接: https://lsjlt.com/news/95361.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Flexbox浏览器兼容的知识点有哪些
    这篇文章主要介绍了Flexbox浏览器兼容的知识点有哪些的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Flexbox浏览器兼容的知识点有哪些文章都会有所收获,下面我们一起来看看...
    99+
    2024-04-02
  • IE与Firefox的CSS兼容知识点有哪些
    这篇文章主要讲解了“IE与Firefox的CSS兼容知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“IE与Firefox的CSS兼容知识点有哪些”...
    99+
    2024-04-02
  • 浏览器基础知识有哪些
    这篇文章主要介绍“浏览器基础知识有哪些”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“浏览器基础知识有哪些”文章能帮助大家解决问题。   浏览器的主要功能:   ...
    99+
    2024-04-02
  • 常见浏览器兼容问题有哪些
    小编给大家分享一下 常见浏览器兼容问题有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!常见浏览器兼容问题:1.li在IE中底部3像素的BUG。解决方案:在&l...
    99+
    2023-06-05
  • DIV CSS HACK和浏览器兼容的方法有哪些
    本文小编为大家详细介绍“DIV CSS HACK和浏览器兼容的方法有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“DIV CSS HACK和浏览器兼容的方法有哪些”文章能帮助大家解决疑惑,下面跟着小编...
    99+
    2024-04-02
  • div+css需要兼容验证的浏览器有哪些
    这篇文章将为大家详细讲解有关div+css需要兼容验证的浏览器有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。需要兼容验证的浏览器有哪些?DIV+CSS开发需要安装的...
    99+
    2024-04-02
  • DIV+CSS开发浏览器的兼容性问题有哪些
    这篇文章主要介绍“DIV+CSS开发浏览器的兼容性问题有哪些”,在日常操作中,相信很多人在DIV+CSS开发浏览器的兼容性问题有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解...
    99+
    2024-04-02
  • 各种浏览器下常见css的兼容问题有哪些
    这篇文章主要讲解了“各种浏览器下常见css的兼容问题有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“各种浏览器下常见css的兼容问题有哪些”吧!一、链接...
    99+
    2024-04-02
  • 主流浏览器HTML5与CSS3兼容性有哪些区别
    这篇文章主要介绍“主流浏览器HTML5与CSS3兼容性有哪些区别”,在日常操作中,相信很多人在主流浏览器HTML5与CSS3兼容性有哪些区别问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望...
    99+
    2024-04-02
  • IE和火狐浏览器下CSS兼容技巧有哪些
    IE和火狐浏览器下CSS兼容技巧有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。你对IE和火狐浏览器下CSS兼容技巧是否熟悉,这里和大...
    99+
    2024-04-02
  • web开发中常见的浏览器兼容性问题有哪些
    这篇文章将为大家详细讲解有关web开发中常见的浏览器兼容性问题有哪些,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。浏览器的兼容性无非还是样式兼容性(css),交互兼容性(...
    99+
    2024-04-02
  • PHP不容错过的知识点有哪些
    这篇文章主要介绍“PHP不容错过的知识点有哪些”,在日常操作中,相信很多人在PHP不容错过的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”PHP不容错过的知识点有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-06-04
  • IOC容器注解的相关知识点有哪些
    这篇文章主要讲解了“IOC容器注解的相关知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“IOC容器注解的相关知识点有哪些”吧!xml配置与类配置1...
    99+
    2024-04-02
  • MySQL的知识点有哪些
    本篇内容主要讲解“MySQL的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“MySQL的知识点有哪些”吧! 1.在Ce...
    99+
    2024-04-02
  • Elasticsearch的知识点有哪些
    本篇内容主要讲解“Elasticsearch的知识点有哪些”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Elasticsearch的知识点有哪些”吧!本篇主要内...
    99+
    2024-04-02
  • Css的知识点有哪些
    这篇文章主要为大家展示了“ Css的知识点有哪些”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“ Css的知识点有哪些”这篇文章吧。块元素、内联元素,是一个元素,...
    99+
    2024-04-02
  • HTML5的知识点有哪些
    这篇文章主要讲解了“HTML5的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML5的知识点有哪些”吧!1 :基于HTML5的移动Web应用Canvas绘图:通过获取HTML...
    99+
    2023-06-17
  • JavaScript8的知识点有哪些
    这篇文章主要介绍“JavaScript8的知识点有哪些”,在日常操作中,相信很多人在JavaScript8的知识点有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”JavaScript8的知识点有哪些”的疑...
    99+
    2023-06-27
  • ECharts的知识点有哪些
    本文小编为大家详细介绍“ECharts的知识点有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“ECharts的知识点有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。简介ECharts(Enterpris...
    99+
    2023-06-27
  • yolov5的知识点有哪些
    这篇文章主要讲解了“yolov5的知识点有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“yolov5的知识点有哪些”吧!一、yolo中txt文件的说明:二、yolo跑视频、图片文件的格式...
    99+
    2023-07-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作