了解了各个浏览器中HTML标签的默认样式,可以帮助我们理解为什么要写Reset.css,以及Reset.css中的样式怎么写才是最合理的。试着思考以下问题:为什么会有默认样式?每个浏览器的默认样式有何不同?Reset.css怎么写才能让各个浏览器显示的效果一样?默认样式这里所说的默认样式其实就是各个浏览器的默认样式。我们通常以样式或链接的形式应用的样式内容称为“用户样式”。浏览器加载页面后的工作流程大致如下:1.转换2.Tokenization3.词法分析4.DOM树构建5.CSSOM树构建6.DOM树和CSSOM树合并形成渲染树7.通过布局计算出每个对象显示的位置和大小8.绘制页面根据以上过程,浏览器会检查文档中是否有“用户样式”,如果没有,则使用浏览器的默认样式,如果还有,它会使用“用户样式”,只是用用户样式覆盖“浏览器默认样式”,用于后续隐藏元素的渲染。我们知道head、title、meta、link、style、script元素inHTML标签默认是不显示的,因为浏览器默认的样式,里面定义了display:none属性head,meta,title,link,style,script{display:none;}可以在浏览器中查看效果定义如下代码head{display:block;width:80px;height:80px;background:#f00;}块元素的特点:每个块元素从新的一行开始(独占行)可以设置width,height,margin,border,padding可以嵌套其他标签元素,默认块元素宽度等于可以通过父元素的宽度定义display:block,将该元素设置为块元素。在HTML标签中,那些叫做块元素的标签之所以有块元素属性,是因为浏览器默认为它定义了display:block,并不是因为它是块元素。将有一个display:block属性。所有定义display:block的元素都是块元素html,body,p,div,layer,article,aside,footer,header,hgroup,main,nav,section,address,blockquote,figure,center,hr,ol,ul,menu,dir,dd,dl,form,legend,fieldset,frameset,frame,details,summaryh1,h2,h3,h4,h5,h6{display:block;}inlineelement内联元素的特点:和其他元素一样linewidth,height,margin-top,margin-bottom不能控制元素的显示形式(定义无效)margin-left,margin-right,padding可以定义默认宽度是其包含内容的宽度通过定义display:block,可以将行内元素设置为块元素。所有元素默认都是内联元素,即display:inlineq,map,area,output{display:inline;}display属性html标签在浏览器中以layout的形式显示,都是因为display属性的定义,显示属性包含以下值:基本值:无|内联|块|列表项|inline-blocktable系列:table|内联表|表格标题|表格单元格|表行|表行组|表列|表列组|表页脚组|表头组css3添加:框|行内框|弹性盒子|内联弹性盒|run-inbasicvaluenone隐藏元素inline设置为行内元素block设置为块元素inline-block设置为inline-blocklist-item设置为list-itemli标签中默认定义的display:list-item,尝试定义如下代码,在浏览器中查看:html
