最近才第一次接触这个Normalize.css,之前Jeff 都是采用CSS Reset的,但如今发现现在流行这个Normalize.css 了。自己也查阅了不少资料去了解,现在权当是笔记放在这里吧。
Normalize.css 简介
官方网站:http://necolas.github.io/normalize.css/
浏览器支持情况:Chrome, Firefox, Opera, Safari 6+, IE 8+
Normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。
它能做什么?
- 保留有用的默认值,这个区别于其他的CSS resets
- 标准化大范围的HTML elements的样式
- 纠正bugs,使浏览器具体通用性
- 通过一些巧妙的改进来增强可用性
- 用具体的说明来讲解代码的用处
Normalize.css 与 CSS Reset 有什么区别?
reset 的目的,是将所有的浏览器的自带样式重置掉,这样更易于保持各浏览器渲染的一致性。例如 yui3 reset 中的一段:
ol, ul {list-style: none} h1, h2, h3, h4, h5, h6 {font-size: 100%;font-weight: normal}normalize 的理念则是尽量保留浏览器的默认样式,不进行太多的重置。
——来源:segmentfault
Normalize 相对「平和」,注重通用的方案,重置掉该重置的样式,保留有用的 user agent 样式,同时进行一些 bug 的修复,这点是 reset 所缺乏的。
Reset 相对「暴力」,不管你有没有用,统统重置成一样的效果,且影响的范围很大,讲求跨浏览器的一致性。
Normalize 给我的感觉就是不讲求样式一致,而讲求通用性和可维护性。这点可以从详细的注释和模块化的结构体现出来。
——来源:知乎
个人感觉是HTML5、CSS3 时代的CSS Reset。
Normalize.css 源码中文注释
中文注释以2.0.1版本为对象,所谓翻译只是将其中的注释简单翻译一下,方便查看源代码体验其精妙之处。(来源:姬小光)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 |
/*! normalize.css v2.0.1 | MIT License | [git][4].io/normalize */ /* ========================================================================== HTML5 display definitions ========================================================================== */ /* * 更正IE 8/9中未定义的‘block’元素显示。 */ article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary { display: block; } /* * 更正IE 8/9中未定义的‘inline-block’元素显示 */ audio, canvas, video { display: inline-block; } /* * 防止现代浏览器将没有controls属性的的‘audio’元素显示出来 * 移除 iOS 5 设备中多余的高度 */ audio:not([controls]) { display: none; height: 0; } /* * 校正IE 8/9中‘hidden’属性不起作用的问题 */ [hidden] { display: none; } /* ========================================================================== 基本 ========================================================================== */ /* * 1. 将默认字体设置为 sans-serif * 2. 在不禁止用户缩放的情况下避免iOS设备方向调整后自动校正字体大小 */ html { font-family: sans-serif; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -ms-text-size-adjust: 100%; /* 2 */ } /* * 移除缺省的外边距 */ body { margin: 0; } /* ========================================================================== Links ========================================================================== */ /* * 校正‘outline’在Chrome和其他浏览器间的不一致 */ a:focus { outline: thin dotted; } /* * 增强在所有浏览器中聚焦和鼠标悬停时的可读性 */ a:active, a:hover { outline: 0; } /* ========================================================================== 排版 ========================================================================== */ /* * 校正 Firefox 4+,Safari 5 和 Chrome 中‘section’和‘article’内的‘h1’字体大小 */ h1 { font-size: 2em; } /* * 校正IE 8/9, Safari 5 和 Chrome中样式不呈现的问题 */ abbr[title] { border-bottom: 1px dotted; } /* * 校正 Firefox 4+, Safari 5 和 Chrome 中‘bolder’的样式 */ b, strong { font-weight: bold; } /* * 校正 Safari 5 和 Chrome 中样式不呈现的问题 */ dfn { font-style: italic; } /* * 校正 IE 8/9 中样式不呈现的问题 */ mark { background: #ff0; color: #000; } /* * 更正 Safari 5 和 Chrome 中奇怪的字体设置 */ code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; } /* * 增强所有浏览器中预格式化文本的可读性 */ pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } /* * 设置一致的引用类型 */ q { quotes: "\201C" "\201D" "\2018" "\2019"; } /* * 校正所有浏览器中易变且不一致的字体大小 */ small { font-size: 80%; } /* * 防止所有浏览器中的‘sub’和‘sup’影响到行高(line-height) */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } /* ========================================================================== 嵌入内容 ========================================================================== */ /* * 移除在 IE 8/9 中嵌入到‘a’元素时的边框 */ img { border: 0; } /* * 更正 IE 9 中奇怪的‘overflow’表现 */ svg:not(:root) { overflow: hidden; } /* ========================================================================== Figures ========================================================================== */ /* * 更正 IE 8/9 和 Safari 5 中外边距不展示的问题 */ figure { margin: 0; } /* ========================================================================== 表单 ========================================================================== */ /* * 定义一致的边框、外边距和内边距 */ fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } /* * 1. 更正 IE 8/9 中颜色不继承的问题 * 2. 移除内边距确保人们在将fieldset设置为0时不会大跌眼镜 */ legend { border: 0; /* 1 */ padding: 0; /* 2 */ } /* * 1. 更正所有浏览器中字体不继承的问题 * 2. 更正所有浏览器中字号不继承的问题 * 3. 更正 Firefox 4+, Safari 5 和 Chrome 中外边距不同的问题 */ button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ } /* * 更正 Firefox 4+ 用户代理样式表(UA stylesheet)中在‘input’上 * 设置‘line-height’时使用‘!important’的问题 */ button, input { line-height: normal; } /* * 1. 避免 Android 4.0.* 中的 WebKit bug ,该bug会破坏原生的‘audio * 和‘video’控制器 * 2. 更正 iOS 中无法设置可点击的‘input’的问题 * 3. 增强图片类型以及其他类型的‘input’中指针的可用性以及样式的一致性 */ button, html input[type="button"], /* 1 */ input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } /* * 重置disabled元素的默认指针样式 */ button[disabled], input[disabled] { cursor: default; } /* * 1. 调整 IE 8/9 box sizing 被设置为 ‘content-box’ 的问题 * 2. 移除 IE 8/9 中多余的内边距 */ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /* * 1. 校正 Safari 5 和 Chrome 中 ‘appearance’ 被设置为 ‘searchfield’ 的问题 * 2. 校正 Safari 5 和 Chrome 中 ‘box-sizing’ 被设置为 `‘border-box’ 的问题 * (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; } /* * 移除 OS X 中 Safari 5 和 Chrome 内部的内边距以及搜索框的取消按钮 */ input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /* * 移除 Firefox 4+ 内部的内边距 */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /* * 1. 移除 IE 8/9 中默认的垂直滚动条 * 2. 增强所有浏览器中的对对齐以及可读性 */ textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ } /* ========================================================================== 表格 ========================================================================== */ /* * 移除单元格间大部分的间距 */ table { border-collapse: collapse; border-spacing: 0; } |
扩展阅读:
本文标签:CSS Reset, CSS3, HTML5, Normalize.css
©声明:本站原创文章采用 BY-NC-SA 创作共用协议,转载时请以链接形式标明本文地址;非原创(转载)文章版权归原作者所有。【查看版权声明】
©转载请注明来源: http://devework.com/normalize-css-a-better-css-reset.html
©声明:本站原创文章采用 BY-NC-SA 创作共用协议,转载时请以链接形式标明本文地址;非原创(转载)文章版权归原作者所有。【查看版权声明】
©转载请注明来源: http://devework.com/normalize-css-a-better-css-reset.html
相关推荐
"normalize.css"和"reset.css"是两种常见的重置样式表方法,它们在创建响应式和跨浏览器兼容的网页时发挥着关键作用。 首先,我们来详细了解`normalize.css`。`normalize.css`是由Nicolas Gallagher和Jonathan Neal...
重置与标准化CSS:reset.css与normalize.css详解 在网页设计和开发中,浏览器的默认样式差异往往会导致页面在不同浏览器上显示不一致。为了解决这个问题,开发者通常会使用两种技术:reset.css和normalize.css。这...
Normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。这是一个压缩后的css文件,由于源码中没有提供,这里分享给大家。 源码下载地址:...
《normalize.css:现代CSS重置的替代方案》 在网页设计领域,为了消除不同浏览器之间的样式差异,开发者通常会使用CSS重置或者CSS初始化技术。其中,`normalize.css`是一个非常受欢迎的选择,它被称为“现代CSS重置...
《normalize.css 5.0.0:现代CSS重置的替代方案》 在网页设计领域,样式一致性是至关重要的,而normalize.css库正是为了解决这个问题而诞生的。"normalize.css-5.0.0.zip"是一个包含最新版本5.0.0的normalize.css...
《normalize.css:构建现代网页设计的新起点》 在网页设计领域,CSS(层叠样式表)扮演着至关重要的角色,而“normalize.css-8.0.1.zip”正是一个为CSS设计提供现代化重启的资源包。这个压缩包包含了版本8.0.1的...
Normalize.css 不像传统的CSS重置(如Eric Meyer的reset.css),它不完全清除所有元素的样式,而是选择性地针对某些元素进行标准化处理。这种做法的优点在于保持了页面的基本可读性和可用性,同时减少了不必要的样式...
这个名为“normalize.css-7.0.0.zip”的压缩包文件,正是包含了一个名为“normalize.css”的版本7.0.0的CSS文件,它为开发者提供了一个现代化的替代传统CSS重置的解决方案。 传统的CSS重置,如Eric Meyer's Reset或...
《normalize.css-6.0.0:现代CSS重置的替代方案》 在网页设计领域,CSS(层叠样式表)起着至关重要的作用,它赋予了HTML元素以视觉表现和布局。然而,由于不同浏览器对默认样式的支持程度不一,开发者常常面临样式...
重置样式表normalize.css
web前端开发必备资料,项目初始化css,normalize.css,用来统一各个浏览器之间的样式。
normalize.css v8.0.1中文版 自己翻译,官网原版,可自己进行文本比对,欢迎下载。有问题请留言,谢谢
《normalize.css:构建一致、可预测的Web布局的利器》 在Web开发中,浏览器之间的样式差异往往给开发者带来困扰,使得网页在不同浏览器上的显示效果不尽相同。为了解决这个问题,`normalize.css`应运而生。它是一个...
normalize.styl, normalize.css的手写笔版本 版 Normalize.css 版本 开始克隆 repo git clone https://github.com/bymathias/normalize.styl或者使用 Bower 安装。 bower install --
Normalize.css 是一个可以定制的CSS文件,它让不同的浏览器在渲染网页元素的时候形式更统一。1、保留有用的默认值,不同于许多 CSS 的重置 2、标准化的样式,适用范围广的元素。3、纠正错误和常见的浏览器的不一致性...