1-5 全局样式
本节编程练习不计算学习进度,请电脑登录imooc.com操作

全局样式

在制作Web页面时,前端人员都习惯为网站设置一个全局样式(reset.css)。那么在Bootstrap框架中也不例外。Bootstrap框架的核心是轻量的CSS基础代码库,他并没有一味的重置样式,而是注重各浏览器基础表现,降低开发难度。大部分前端人员都具有归零的思想,但实际你会发现,归零之后的样式在开发过程中会存在着潜在的问题,例如,在全局样式表中将em变成一个普通标记,明明应该是斜体,怎么就没效果了呢?

Bootstrap框架在这一部分做了一定的变更,不再一味追求归零,而是更注重重置可能产生问题的样式(如,body,form的margin等),保留和坚持部分浏览器的基础样式,解决部分潜在的问题,提升一些细节的体验,具体说明如下:

小伙伴们,你们可以单击查看右侧“style.css”文件,来查看上面所说的全局样式(这个是从下载的boostrap.css中摘取出来的)。

其实Bootstrap的全局样式采用了normalize.css,但并没有一味的全部使用此重置样式,而是在此基础上进行了一些改良,让其更适合Bootstrap的设计思想。

你可以通过“normalize.less”(LESS版本)或“_normalize.scss”(Sass版本)进行深入的了解。

 

任务

我来试试:查看style.css中的全局样式代码,感受它的设计思想。

  1. <!DOCTYPE HTML>
  2. <html>
  3. <head>
  4. <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
  5. <title>全局样式</title>
  6. <link rel="stylesheet" href="https://cdn.bootcss.com/bootstrap/4.0.0-beta.2/css/bootstrap.min.css">
  7. </head>
  8.  
  9. <body>
  10.  
  11. <!-- Main jumbotron for a primary marketing message or call to action -->
  12. <div class="jumbotron">
  13. <h1>Hello, world!</h1>
  14. <p>This is a template for a simple marketing or informational website. It includes a large callout called a jumbotron and three supporting pieces of content. Use it as a starting point to create something more unique.</p>
  15. <p><a href="#" >Learn more »</a></p>
  16. </div>
  17.  
  18. </body>
  19. </html>
  1. html {
  2. font-family: sans-serif;
  3. -webkit-text-size-adjust: 100%;
  4. -ms-text-size-adjust: 100%;
  5. }
  6. body {
  7. margin: 0;
  8. }
  9. article,
  10. aside,
  11. details,
  12. figcaption,
  13. figure,
  14. footer,
  15. header,
  16. hgroup,
  17. main,
  18. nav,
  19. section,
  20. summary {
  21. display: block;
  22. }
  23. audio,
  24. canvas,
  25. progress,
  26. video {
  27. display: inline-block;
  28. vertical-align: baseline;
  29. }
  30. audio:not([controls]) {
  31. display: none;
  32. height: 0;
  33. }
  34. [hidden],
  35. template {
  36. display: none;
  37. }
  38. a {
  39. background: transparent;
  40. }
  41. a:active,
  42. a:hover {
  43. outline: 0;
  44. }
  45. abbr[title] {
  46. border-bottom: 1px dotted;
  47. }
  48. b,
  49. strong {
  50. font-weight: bold;
  51. }
  52. dfn {
  53. font-style: italic;
  54. }
  55. h1 {
  56. margin: .67em 0;
  57. font-size: 2em;
  58. }
  59. mark {
  60. color: #000;
  61. background: #ff0;
  62. }
  63. small {
  64. font-size: 80%;
  65. }
  66. sub,
  67. sup {
  68. position: relative;
  69. font-size: 75%;
  70. line-height: 0;
  71. vertical-align: baseline;
  72. }
  73. sup {
  74. top: -.5em;
  75. }
  76. sub {
  77. bottom: -.25em;
  78. }
  79. img {
  80. border: 0;
  81. }
  82. svg:not(:root) {
  83. overflow: hidden;
  84. }
  85. figure {
  86. margin: 1em 40px;
  87. }
  88. hr {
  89. height: 0;
  90. -moz-box-sizing: content-box;
  91. box-sizing: content-box;
  92. }
  93. pre {
  94. overflow: auto;
  95. }
  96. code,
  97. kbd,
  98. pre,
  99. samp {
  100. font-family: monospace, monospace;
  101. font-size: 1em;
  102. }
  103. button,
  104. input,
  105. optgroup,
  106. select,
  107. textarea {
  108. margin: 0;
  109. font: inherit;
  110. color: inherit;
  111. }
  112. button {
  113. overflow: visible;
  114. }
  115. button,
  116. select {
  117. text-transform: none;
  118. }
  119. button,
  120. html input[type="button"],
  121. input[type="reset"],
  122. input[type="submit"] {
  123. -webkit-appearance: button;
  124. cursor: pointer;
  125. }
  126. button[disabled],
  127. html input[disabled] {
  128. cursor: default;
  129. }
  130. button::-moz-focus-inner,
  131. input::-moz-focus-inner {
  132. padding: 0;
  133. border: 0;
  134. }
  135. input {
  136. line-height: normal;
  137. }
  138. input[type="checkbox"],
  139. input[type="radio"] {
  140. box-sizing: border-box;
  141. padding: 0;
  142. }
  143. input[type="number"]::-webkit-inner-spin-button,
  144. input[type="number"]::-webkit-outer-spin-button {
  145. height: auto;
  146. }
  147. input[type="search"] {
  148. -webkit-box-sizing: content-box;
  149. -moz-box-sizing: content-box;
  150. box-sizing: content-box;
  151. -webkit-appearance: textfield;
  152. }
  153. input[type="search"]::-webkit-search-cancel-button,
  154. input[type="search"]::-webkit-search-decoration {
  155. -webkit-appearance: none;
  156. }
  157. fieldset {
  158. padding: .35em .625em .75em;
  159. margin: 0 2px;
  160. border: 1px solid #c0c0c0;
  161. }
  162. legend {
  163. padding: 0;
  164. border: 0;
  165. }
  166. textarea {
  167. overflow: auto;
  168. }
  169. optgroup {
  170. font-weight: bold;
  171. }
  172. table {
  173. border-spacing: 0;
  174. border-collapse: collapse;
  175. }
  176. td,
  177. th {
  178. padding: 0;
  179. }
  180. @media print {
  181. * {
  182. color: #000 !important;
  183. text-shadow: none !important;
  184. background: transparent !important;
  185. box-shadow: none !important;
  186. }
  187. a,
  188. a:visited {
  189. text-decoration: underline;
  190. }
  191. a[href]:after {
  192. content: " (" attr(href) ")";
  193. }
  194. abbr[title]:after {
  195. content: " (" attr(title) ")";
  196. }
  197. a[href^="javascript:"]:after,
  198. a[href^="#"]:after {
  199. content: "";
  200. }
  201. pre,
  202. blockquote {
  203. border: 1px solid #999;
  204.  
  205. page-break-inside: avoid;
  206. }
  207. thead {
  208. display: table-header-group;
  209. }
  210. tr,
  211. img {
  212. page-break-inside: avoid;
  213. }
  214. img {
  215. max-width: 100% !important;
  216. }
  217. p,
  218. h2,
  219. h3 {
  220. orphans: 3;
  221. widows: 3;
  222. }
  223. h2,
  224. h3 {
  225. page-break-after: avoid;
  226. }
  227. select {
  228. background: #fff !important;
  229. }
  230. .navbar {
  231. display: none;
  232. }
  233. .table td,
  234. .table th {
  235. background-color: #fff !important;
  236. }
  237. .btn > .caret,
  238. .dropup > .btn > .caret {
  239. border-top-color: #000 !important;
  240. }
  241. .label {
  242. border: 1px solid #000;
  243. }
  244. .table {
  245. border-collapse: collapse !important;
  246. }
  247. .table-bordered th,
  248. .table-bordered td {
  249. border: 1px solid #ddd !important;
  250. }
  251. }
下一节