关于css3 兼容性问题
来源:2-3 CSS3-浏览器兼容性
慕粉1149105846
2020-12-23 15:39:48
老师 想让文字水平垂直居中的方法,为了兼容低版本浏览器
.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,可以像同学这样写。
祝学习愉快!
慕粉1149105846
提问者
2020-12-23
.header{
display:-webkit-flex;
display:flex;
justify-content:center;
align-items:center;
text-align:center;
line-height:50px;
}
我的意思是都写到一起去 前四句话迎合了现代浏览器 后面两句迎合了低版本浏览器 为啥这样是不行的
好帮手慕久久
2020-12-23
同学你好,问题解答如下:
1、以当前代码为例,modernizer可以在支持flex布局的页面上,给元素添加上标志类名.flexbox ,在不支持flex布局的页面上,给元素添加类名.no-flexbox;因此就会生成两套样式,如下:
即,我们只写一套代码,但是modernizer可以帮助我们生产两套,这两套可以适配不同的浏览器。
如果不使用modernizer,并且我们直接使用了flex进行布局(.header的样式),那么在不支持flex布局的浏览器上,页面样式就会不正常。
所以二者的区别就是,modernizer可以帮助我们适配,而直接写flex这样的代码可能会有不兼容的问题。
2、由于现代浏览器的兼容性比较好,如果只要求适配现代浏览器,那么modernizer的优势并不大,此时可以不使用modernizer,直接写flex这样的代码即可。如果项目要求适配较低版本浏览器,那么就要考虑兼容性问题,此时modernizer就会有很大的优势,它可以帮助我们解决大部分兼容性问题。
因此,二者的使用场景,要具体问题具体分析;在不同的场景下,二者的优势也不一样。
祝学习愉快!
相似问题
回答 1
回答 2