新浪的初始化:
1 html,body,ul,li,ol,dl,dd,dt,p,h1,h2,h3,h4,h5,h6,form,fieldset,legend,img { 2 ????margin: 0; 3 ????padding: 0 4 } 5 fieldset,img { 6 ????border: 0 7 } 8 img { 9 ????display: block10 }11 address,caption,cite,code,dfn,th,var {12 ????font-style: normal;13 ????font-weight: normal14 }15 ul,ol {16 ????list-style: none17 }18 input {19 ????padding-top: 0;20 ????padding-bottom: 0;21 ????font-family: "SimSun","宋体"22 }23 input::-moz-focus-inner {24 ????border: 0;25 ????padding: 026 }27 select,input {28 ????vertical-align: middle29 }30 select,input,textarea {31 ????font-size: 12px;32 ????margin: 033 }34 input[type="text"],input[type="password"],textarea {35 ????outline-style: none;36 ????-webkit-appearance: none37 }38 textarea {39 ????resize: none40 }41 table {42 ????border-collapse: collapse43 }京东的初始化:
1 * { 2 ????margin: 0; 3 ????padding: 0 4 } 5 em,i { 6 ????font-style: normal 7 } 8 li { 9 ????list-style: none10 }11 img {12 ????border: 0;13 ????vertical-align: middle14 }15 button {16 ????cursor: pointer17 }18 a {19 ????color: #666;20 ????text-decoration: none21 }22 a:hover {23 ????color: #c8162324 }大众版初始化:
html, body, div, span, object, iframe,h1, h2, h3, h4, h5, h6, p, blockquote, pre,abbr, address, cite, code,del, dfn, em, img, ins, kbd, q, samp,small, strong, sub, sup, var,b, i,dl, dt, dd, ol, ul, li,fieldset, form, label, legend,table, caption, tbody, tfoot, thead, tr, th, td,article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary,time, mark, audio, video { ???margin:0; ???padding:0; ???border:0; ???outline:0; ???font-size:100%; ???vertical-align:baseline; ???background:transparent;}h1,h2,h3,h4,h5,h6,em,i { ???font-weight: 100; ???font-style: normal}ul,ol,li { ???list-style-type: none}a { ???color: #666; ???text-decoration: none; ???outline: 0}a:hover { ???text-decoration: none} 看到这些是不是感觉自己平时也是这么写的?其实我之前也是这么写的,后来看到张鑫旭大神的文章后才知道有一种更好的写法,更简单、更高效。自己也已经亲测过了div、li、tr、td这种标签默认就没有margin和padding,dt标签的默认的margin和padding就是0,还有dfn, ins, kbd, q, samp, sub, sup, var这些标签平常我们网站上也用不到,所以就没必要重置,像京东这种一个 * 号全部重置,本着宁可错杀三千也不放过一个这么暴力的做法最好避免,不,应该是杜绝这种写法,不过大家在写一个简单的测试页面的时候可以暂时用一下,因为我平时也是这么写的,主要是快速不用写太多标签,注意只是测试暂时可以用一下。。。
还有一些h1、h2、h3、h4、h5、h6这些标签也可以酌情处理,一般用到几个就写几个不用全部重置,像h1这个标签按其seo方面来考虑,一个页面最好只有一个,所以没必要开始的时候就重置其样式,等你按设计稿写样式的时候又重置一次,这样就相当于浏览器渲染了2次,完全没有必要,你可能会说这也没几个不会有什么影响,错,既然我们是做重构的就要本着能少则少的理念去做,如今时间就是金钱,即使提高0.1秒的载入时间我们也是有必要去争取的。
网上特意搜了一下html标签的默认样式和浏览器默认样式,整理了一下有兴趣的可以看一下~
/*html标签默认样式*/html, address,blockquote,body, dd, div,dl, dt, fieldset, form,frame, frameset,h1, h2, h3, h4,h5, h6, noframes,ol, p, ul, center,dir, hr, menu, pre { display: block }/*以上列表元素默认状态下以块状显示,未显示的将以内联元素显示,该列表针对HTML4版本,部分元素在HTML5中已废弃*/ li { display: list-item }/*默认以列表显示*/ head { display: none }/*默认不显示*/ table { display: table }/*默认为表格显示*/ tr { display: table-row }/*默认为表格行显示*/ thead { display: table-header-group }/*默认为表格头部分组显示*/ tbody { display: table-row-group }/*默认为表格行分组显示*/ tfoot { display: table-footer-group }/*默认为表格底部分组显示*/ col { display: table-column }/*默认为表格列显示*/ colgroup { display: table-column-group }/*默认为表格列分组显示*/ td, th { display: table-cell; }/*默认为单元格显示*/ caption { display: table-caption }/*默认为表格标题显示*/ th { font-weight: bolder; text-align: center }/*默认为表格标题显示,呈现加粗居中状态*/ caption { text-align: center }/*默认为表格标题显示,呈现居中状态*/ body { margin: 8px; line-height: 1.12 } h1 { font-size: 2em; margin: .67em 0 } h2 { font-size: 1.5em; margin: .75em 0 } h3 { font-size: 1.17em; margin: .83em 0 } h4, p, blockquote, ul, fieldset, form, ol, dl, dir, menu { margin: 1.12em 0 } h5 { font-size: .83em; margin: 1.5em 0 } h6 { font-size: .75em; margin: 1.67em 0 } h1, h2, h3, h4, h5, h6, b,strong { font-weight: bolder } blockquote { margin-left: 40px; margin-right: 40px } i, cite, em,var, address { font-style: italic } pre, tt, code, kbd, samp { font-family: monospace } pre { white-space: pre } button, textarea, input, object, select { display:inline-block; } big { font-size: 1.17em } small, sub, sup { font-size: .83em } sub { vertical-align: sub }/*定义sub元素默认为下标显示*/ sup { vertical-align: super }/*定义sub元素默认为上标显示*/ table { border-spacing: 2px; } thead, tbody, tfoot { vertical-align: middle }/*定义表头、主体表、表脚元素默认为垂直对齐*/ td, th { vertical-align: inherit }/*定义单元格、列标题默认为垂直对齐默认为继承*/ s, strike, del { text-decoration: line-through }/*定义这些元素默认为删除线显示*/ hr { border: 1px inset }/*定义分割线默认为1px宽的3D凹边效果*/ ol, ul, dir, menu, dd { margin-left: 40px } ol { list-style-type: decimal } ol ul, ul ol, ul ul, ol ol { margin-top: 0; margin-bottom: 0 } u, ins { text-decoration: underline } br:before { content: ""A" }/*定义换行元素的伪对象内容样式*/ :before, :after { white-space: pre-line }/*定义伪对象空格字符的默认样式*/ center { text-align: center } abbr, acronym { font-variant: small-caps; letter-spacing: 0.1em } :link, :visited { text-decoration: underline } :focus { outline: thin dotted invert } /* Begin bidirectionality settings (do not change) */ BDO[DIR="ltr"] { direction: ltr; unicode-bidi: bidi-override}/*定义BDO元素当其属性为DIR="ltr"时的默认文本读写显示顺序*/ BDO[DIR="rtl"] { direction: rtl; unicode-bidi: bidi-override}/*定义BDO元素当其属性为DIR="rtl"时的默认文本读写显示顺序*/ *[DIR="ltr"] { direction: ltr; unicode-bidi: embed}/*定义任何元素当其属性为DIR="ltr"时的默认文本读写显示顺序*/ *[DIR="rtl"] { direction: rtl; unicode-bidi: embed}/*定义任何元素当其属性为DIR="rtl"时的默认文本读写显示顺序*/ @media print { /*定义标题和列表默认的打印样式*/ h1 { page-break-before: always } h1, h2, h3, h4, h5, h6 { page-break-after: avoid } ul, ol, dl { page-break-before: avoid } } /*浏览器默认样式*///1、页边距//IE默认为10px,通过body的margin属性设置//FF默认为8px,通过body的padding属性设置//要清除页边距一定要清除这两个属性值 body {margin:0;padding:0;}//2、段间距//IE默认为19px,通过p的margin-top属性设置//FF默认为1.12em,通过p的margin-bottom属性设//p默认为块状显示,要清除段间距,一般可以设置 p {margin-top:0;margin-bottom:0; }//3、标题样式//h1~h6默认加粗显示:font-weight:bold;。//默认大小请参上表//还有是这样的写的 h1 {font-size:xx-large;} h2 {font-size:x-large;} h3 {font-size:large;} h4 {font-size:medium;} h5 {font-size:small;} h6 {font-size:x-small;}/*个大浏览器默认字体大小为16px,即等于medium,h1~h6元素默认以块状显示字体显示为粗体,要清除标题样式,一般可以设置*/hx {font-weight:normal;font-size:value; }//4、列表样式//IE默认为40px,通过ul、ol的margin属性设置//FF默认为40px,通过ul、ol的padding属性设置//dl无缩进,但起内部的说明元素dd默认缩进40px,而名称元素dt没有缩进。//要清除列表样式,一般可以设置ul, ol, dd {list-style-type:none;margin-left:0;padding-left:0;}// 元素居中// IE默认为text-align:center;// FF默认为margin-left:auto;margin-right:auto;//5、超链接样式a 样式默认带有下划线,显示颜色为蓝色,被访问过的超链接变紫色,要清除链接样式,一般可以设置a {text-decoration:none;color:#colorname;}//6、鼠标样式//IE默认为cursor:hand;//FF默认为cursor:pointer;该声明在IE中也有效//7、图片链接样式//IE默认为紫色2px的边框线//FF默认为蓝色2px的边框线//要清除图片链接样式,一般可以设置img {border:0;}总结一下,我们写代码的时候可以参考别人的代码,找到自己需要的,不用全部都copy过来,即浪费代码又浪费性能。好了就到这里吧,如果文中有错误的地方还望指正,我们共同进步吧。