当前位置: 首页 > Web前端 > CSS

CSS系列—浏览器默认样式

时间:2023-03-30 17:54:33 CSS

了解了各个浏览器中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,尝试定义如下代码,在浏览器中查看:html123

CSS.item{display:list-item;}tableseriestableblockelementtableinline-tabletable-captiontable-captiondefinitiontableheadertable-celltablecelltable-rowtablecellrowtable-row-group单元格行组table-columntablecolumntable-column-group表格列grouptable-footer-grouptablebottomtable-header-grouptableheader见下面一段代码
AgeList
Name年龄
综合年龄27
张三12
李四15
当我们使用thead定义表头时,默认的显示样式是因为thead标签定义了display:table-header-group;同样,tfoot是因为定义了display:table-footer-group;caption是因为定义了display:table-caption;关于table系列,我们简单了解两个问题:display:table和display:block的区别,如何制作多列布局block和display:table-celltables的区别1.block的宽度默认为fill父元素2.表格的宽度取决于内容。表格单元格多列布局
.main{宽度:500px;显示:表格;}.left,.middle,.right{显示:表格单元格;高度:100px;}文件英尺{宽度:20%;背景:#ff0;}.middle{背景:绿色;}.right{宽度:10%;背景:红色;}网上查看CSS3系列,主要定义elastic布局盒弹性扩展盒版本1inline-box内联块弹性盒版本1flexbox弹性盒版本2inline-flexbox内联块弹性盒版本2flex弹性盒版本3inline-flex内联块收缩盒子版本3根据上下文磨合,以后有机会再详细说。这里有几点:1.box和inline-box、flexbox和inline-flexbox、flex和inline-flex的区别2.跑合是第一个问题,需要固定宽度时如何使用flex进行灵活布局根据上下文。如果元素的宽度不固定,里面的标签需要灵活布局,就是使用inline-flex。我们通过下面的代码来理解flex布局;inline-flexlayout这里的第二个问题是对其他块元素、行内元素、变量元素的详细解释。-webkitOpera-10.51InternetExplorerHTML4HTML5浏览器渲染默认样式解读