vue样式初始化_在vue中使用Normalize初始化样式详解

安装使用Normalize

首先安装normalize.css:

npm i normalize.css --save-dev

yarn add normalize.css

//main.js

import 'normalize.css'

遇到的问题:

import 'normalize.css'报错:原因没有安装:css-loader 和style-loader

解决方案:

npm install css-loader style-loader

yarn add css-loader

yarn add style-loader

Normalize的作用:统一浏览器的初始样式

Normalize vs Reset

知道Normalize.css和传统Reset的区别是非常有价值的。

1. Normalize.css 保护了有价值的默认值

Reset通过为几乎所有的元素施加默认样式,强行使得元素有相同的视觉效果。相比之下,Normalize.css保持了许多默认的浏览器样式。这就意味着你不用再为所有公共的排版元素重新设置样式。当一个元素在不同的浏览器中有不同的默认值时,Normalize.css会力求让这些样式保持一致并尽可能与现代标准相符合。

2. Normalize.css 修复了浏览器的bug

它修复了常见的桌面端和移动端浏览器的bug。这往往超出了Reset所能做到的范畴。关于这一点,Normalize.css修复的问题包含了HTML5元素的显示设置、预格式化文字的font-size问题、在IE9中SVG的溢出、许多出现在各浏览器和操作系统中的与表单相关的bug。

可以看以下这个例子,看看对于HTML5中新出现的input类型search,Normalize.css是如何保证跨浏览器的一致性的。

/**

* 1\. Addresses appearance set to searchfield in S5, Chrome

* 2\. Addresses box-sizing set to border-box in S5, Chrome (include -moz to future-proof)

*/

input[type="search"] {

-webkit-appearance: textfield; /* 1 */

-moz-box-sizing: content-box;

-webkit-box-sizing: content-box; /* 2 */

box-sizing: content-box;

}

/**

* Removes inner padding and search cancel button in S5, Chrome on OS X

*/

input[type="search"]::-webkit-search-decoration,

input[type="search"]::-webkit-search-cancel-button {

-webkit-appearance: none;

}

3. Normalize.css 不会让你的调试工具变的杂乱

使用Reset最让人困扰的地方莫过于在浏览器调试工具中大段大段的继承链,如下图所示。在Normalize.css中就不会有这样的问题,因为在我们的准则中对多选择器的使用时非常谨慎的,我们仅会有目的地对目标元素设置样式。

image

4. Normalize.css 是模块化的

这个项目已经被拆分为多个相关却又独立的部分,这使得你能够很容易也很清楚地知道哪些元素被设置了特定的值。因此这能让你自己选择性地移除掉某些永远不会用到部分(比如表单的一般化)。

5. Normalize.css 拥有详细的文档

Normalize.css的代码基于详细而全面的跨浏览器研究与测试。这个文件中拥有详细的代码说明并在Github Wiki中有进一步的说明。这意味着你可以找到每一行代码具体完成了什么工作、为什么要写这句代码、浏览器之间的差异,并且你可以更容易地进行自己的测试。

这个项目的目标是帮助人们了解浏览器默认是如何渲染元素的,同时也让人们很容易地明白如何改进浏览器渲染。

-----------------------------------------------------------------------------------------------分割线--------------------------------------------------------------------------------------------------------------------

以下是详解部分:

html与body 元素

/**

* 1. 设置全局的字体为sans-serif, 关于中文字体的设置可参考Amaze UI.

* 2. 防止 iOS 横屏字号放大,同时保证在PC上 zoom 功能正常.

*/

html {

font-family: sans-serif; /* 1 */

-ms-text-size-adjust: 100%; /* 2 */

-webkit-text-size-adjust: 100%; /* 2 */

}

第2个问题场景是这样:

苹果IOS设备调整后会自动调整文字的大小,按照苹果的意图是为了提升用户体验.

比如竖屏状态下是14px,转换为横屏时就变成了20px,把text-size-adju

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值