🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
1.@import和link的区别? > 区别: > 1、从属关系:link是html的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等;而@import是css的语法,只有导入样式表的作用。 > 2、加载顺序:页面被加载时,link会和html同时被加载而;@import引入的 CSS 将在页面加载完毕后被加载。 > 3、兼容性:@import是 CSS2.1 才有的语法,所以只能在 IE5以上 才能识别;而link是 HTML 标签,所以不存在兼容性问题。 > 4、DOM:javascript只能控制dom去改变link标签引入的样式,而@import的样式不是dom可以控制的。 > 5、link方式的样式权重高于@import的权重。 > 总结: > @import是依赖css的,存在一定的兼容问题,并且根据浏览器渲染机制来说,他在dom树渲染完成后才会渲染,并且不能被js动态修改。相比之下link兼容性较好,且dom元素的样式可以被js动态修改,又因为link的权重高于@import,所以 @import适用于引入公共基础样式或第三方样式,link适用于自己写的且需要动态修改的样式。 2. 你知道哪些垂直居中水平方案,他们各有什么优缺点? > 想装逼的话就去看这篇文章 [完美实现CSS垂直居中的11种方法](https://www.cnblogs.com/ypha/p/13957673.html) > 实际绝对定位+transform、flex、line-height、使用 display:table 和 vertical-align这几种回答已经足够了。区别无非就是兼容性、和适用定高、不定高之类的。 3.为什么实际开发有些字体不能完全居中,特别是移动端? > 设置基准线;有些字体设计就那吊样设置基准线还是不行,需要hack处理。