关于css3 兼容性问题

来源:2-3 CSS3-浏览器兼容性

慕粉1149105846

2020-12-23 15:39:48

老师 想让文字水平垂直居中的方法,为了兼容低版本浏览器

用了modernizer,css变成了

.flexbox header{

display:-webkit-flex;

display:flex;

justify-content:center;

align-items:center

}


.no-flexbox header{

text-align:center;

line-height:50px;

}


和直接写成

.header{

display:-webkit-flex;

display:flex;

justify-content:center;

align-items:center;

text-align:center;

line-height:50px;

}不用modernizer有啥区别呢?哪种方式更好?



写回答

3回答

好帮手慕久久

2020-12-24

同学你好,这样写是可以的(正确的),只是相对而言,同学这样要写很多多余的代码,即要把所有兼容性的代码都手写出来;而如果使用modernizer,我们只需写一部分代码,剩余的由modernizer自动生成即可,这样可以提高效率。要是不想使用modernizer,可以像同学这样写。

祝学习愉快!

0

慕粉1149105846

提问者

2020-12-23

.header{

display:-webkit-flex;

display:flex;

justify-content:center;

align-items:center;


text-align:center;

line-height:50px;

}

我的意思是都写到一起去 前四句话迎合了现代浏览器 后面两句迎合了低版本浏览器 为啥这样是不行的

0

好帮手慕久久

2020-12-23

同学你好,问题解答如下:

1、以当前代码为例,modernizer可以在支持flex布局的页面上,给元素添加上标志类名.flexbox ,在不支持flex布局的页面上,给元素添加类名.no-flexbox;因此就会生成两套样式,如下:

http://img.mukewang.com/climg/5fe3005709b4121205700403.jpg

即,我们只写一套代码,但是modernizer可以帮助我们生产两套,这两套可以适配不同的浏览器。

如果不使用modernizer,并且我们直接使用了flex进行布局(.header的样式),那么在不支持flex布局的浏览器上,页面样式就会不正常。

所以二者的区别就是,modernizer可以帮助我们适配,而直接写flex这样的代码可能会有不兼容的问题。

2、由于现代浏览器的兼容性比较好,如果只要求适配现代浏览器,那么modernizer的优势并不大,此时可以不使用modernizer,直接写flex这样的代码即可。如果项目要求适配较低版本浏览器,那么就要考虑兼容性问题,此时modernizer就会有很大的优势,它可以帮助我们解决大部分兼容性问题。

因此,二者的使用场景,要具体问题具体分析;在不同的场景下,二者的优势也不一样。

祝学习愉快!

0

0 学习 · 6815 问题

查看课程