• web前端笔试归纳——HTML+CSS篇


    根据网上众多资料加上自己的理解,特别整理出笔试试题(有空继续更新)供大家和自己学习,共勉!
    1. 对WEB标准以及W3C的理解与认识
    答: WEB标准是一系列标准的集合。网页主要由三部分组成:结构(Structure)、表现(Presentation)和行为(Behavior)。对应的标准也分三方面:结构化标准语言主要包括XHTML和XML,表现标准语言主要包括CSS,行为标准主要包括对象模型(如W3C DOM)、ECMAScript等。这些标准大部分由W3C起草和发布.
    a.web标准规范要求,书写标签必须闭合、标签小写、不乱嵌套,可提高搜索机器人对网页内容的搜索几率。
    b.建议使用外链css和js脚本,从而达到结构与行为、结构与表现的分离,提高页面的渲染速度,能更快地显示页面的内容。
    c.样式与标签的分离,更合理的语义化标签,使内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件, 从而降低维护成本、改版更方便
    d..不需要变动页面内容,便可提供打印版本而不需要复制内容,提高网站易用性
    2. 什么是web语义化?谈谈对它的理解。
    答:HTML的每个标签都有其特定含义(语义),Web语义化是指使用语义恰当的标签,使页面有良好的结构,页面元素有含义,能够让人和搜索引擎都容易理解。
    好处:a. 去掉或样式丢失的时候能让页面呈现清晰的结构;
    b. 屏幕阅读器(如果访客有视障)会完全根据你的标记来“读”你的网页;
    c. 搜索引擎的爬虫也依赖于标记来确定上下文和各个关键字的权重, 爬虫很大程度上会忽略用于表现的标记,而只注重语义标记;.
    d. 便于团队开发和维护。W3C给我们定了一个很好的标准,在团队中大家都遵循这个标准,可以减少很多差异化的东西,方便开发和维护,提高开发效率,甚至实现模块化开发。
    3. Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
    答:指文档类型,此标签可告知浏览器文档使用哪种(HTML 或 XHTML)规范。该标签可声明三种 DTD 类型,分别表示严格版本(../strict.dtd)、过渡版本(../loose.dtd)以及基于框架(../frameset.dtd)的 HTML 文档。
    浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。如果XHTML文档包含形式完整的DOCTYPE,那么它一般以标准模式 呈现。对于HTML 4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过 渡DTD而没有URI会导致页面以混杂模式呈现。DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。XHTML 元素必须被正确地嵌套,闭合,区分大小写,文档必须拥有根元素。
    差异:
    a.盒模型的高宽包含内边距padding和边框border
    在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在IE5.5及以下的浏览器及其他版本的Quirks模式下,IE的宽度和高度还包含了padding和border。
    b.可以设置行内元素的高宽
    在Standards模式下,给span等行内元素设置wdith和height都不会生效,而在quirks模式下,则会生效。
    c.可设置百分比的高度
    在standards模式下,一个元素的高度是由其包含的内容来决定的,如果父元素没有设置高度,子元素设置一个百分比的高度是无效的。
    d.用margin:0 auto设置水平居中在IE下会失效
    使用margin:0 auto在standards模式下可以使元素水平居中,但在quirks模式下却会失效,quirk模式下的解决办法,用text-align属性:
    e.quirk模式下设置图片的padding会失效
    f.quirk模式下Table中的字体属性不能继承上层的设置
    g.quirk模式下white-space:pre会失效
    意义:DOCTYPE切换是浏览器用来区分遗留文档和符合标准的文档的手段。无论是否编写了有效的CSS,如果选择了错误的DOCTYPE,那么页面就将以混杂 模式呈现,其行为就可能会有错误或不可预测。因此,一定要在站点的每个页面上包含形式完整的DOCTYPE声明,并且在使用HTML时选择严格的DTD。
    4. CSS选择符有哪些?优先级算法如何计算?内联和important哪个优先级高?
    答: css选择器有:类、id、标签、相邻、通配符、属性、后代、子元素、伪类及伪元素选择器。
    a 行内样式优先级Specificity值为1,0,0,0,高于外部定义(外部定义指经由<link>或<style>标签定义的规则);
    b.!important声明的Specificity值最高;c.Specificity值一样的情况下,按CSS代码中出现的顺序决定,后者CSS样式居上;
    important优先级高。
    优先级的算法:
    每个规则对应一个初始"四位数":0、0、0、0
    若是 行内选择符,则加1、0、0、0
    若是 ID选择符,则加0、1、0、0
    若是 类选择符/属性选择符/伪类选择符,则分别加0、0、1、0
    若是 元素选择符/伪元素选择符,则分别加0、0、0、1
    算法:将每条规则中,选择符对应的数相加后得到的”四位数“,从左到右进行比较,大的优先级越高
    5.清除浮动的几种方式?各自的优缺点
    答:a. 父级div定义height;
    • 原理:父级div手动定义height,就解决了父级div无法自动获取到高度的问题
    • 优点:简单,代码少,容易掌握
    • 缺点:只适合高度固定的布局,要给出精确的高度,如果高度和父级div不一样时,会产生问题
    b. 结尾处加空div标签clear:both
    • 原理:添加一个空div,利用clear:both清除浮动,使后面元素无法补前面元素左或右的空缺,从而让父级div能自动获取到高度;
    • 优点:简单,代码少,浏览器支持好,不容易出现怪问题
    • 缺点:不利于理解,当页面浮动布局多,就要增加很多空div,代码冗余
    c. 父级div定义伪类:after和zoom
    • 原理:IE8以上和非IE浏览器才支持:after,原理和方法2有点类似,zoom(IE转有属性)可解决ie6,ie7浮动问题
    • 优点:浏览器支持好,不容易出现怪问题(目前:大型网站都有使用,如:腾迅,网易,新浪等等)
    • 缺点:代码多,不少初学者不理解原理,要两句代码结合使用,才能让主流浏览器都支持
    d. 父级div定义overflow:hidden
    • 原理:必须定义width或zoom:1,同时不能定义height,使用overflow:hidden时,浏览器会自动检查浮动区域的高度
    • 优点:简单,代码少,浏览器支持好
    • 缺点:不能和position配合使用,因为超出的尺寸的会被隐藏
    e. 父级div定义overflow:auto
    • 原理:必须定义width或zoom:1,同时不能定义height,使用overflow:auto时,浏览器会自动检查浮动区域的高度
    • 优点:简单,代码少,浏览器支持好
    • 缺点:内部宽高超过父级div时,会出现滚动条
    6. 哪些属性可以继承?
    内联元素可继承:letter-spacing、word-spacing、white-space、line-height、color、font、font-family、font-size、font-style、font-variant、font-weight、text-decoration、text-transform、direction。
    终端块状元素可继承:text-indent和text-align。
    列表元素可继承:list-style、list-style-type、list-style-position、list-style-image
    所有元素可继承:visibility和cursor。
    7. 什么是CSS hack?
    由于不同浏览器对CSS的支持、解析不一样,导致在不同浏览器的环境中呈现出不一致的页面展现效果,为了获得统一的页面效果,针对不同的浏览器/不同版本写相应的CSS code的过程,叫做CSS hack。有以下三种表现形式:
    a.属性前缀法(即类内部Hack):例如 IE6能识别下划线"_"和星号" * ",IE7能识别星号" * ",但不能识别下划线"_",IE6~IE10都认识"9",但firefox前述三个都不能认识。
    b.选择器前缀法(即选择器Hack):例如 IE6能识别*html .class{},IE7能识别*+html .class{}或者*:first-child+html .class{}。
    c.IE条件注释法(即HTML条件注释Hack):针对所有IE(注:IE10+已经不再支持条件注释): <!--[if IE]>IE浏览器显示的内容 <![endif]-->,针对IE6及以下版本: <!--[if lt IE 6]>只在IE6-显示的内容 <![endif]-->。这类Hack不仅对CSS生效,对写在判断语句里面的所有代码都会生效。
    在标准模式中: “-″减号是IE6专有的hack
    “9″ IE6/IE7/IE8/IE9/IE10都生效
    “″ IE8/IE9/IE10都生效,是IE8/9/10的hack
    “9″ 只对IE9/IE10生效,是IE9/10的hack
    8.什么是CSS sprite?使用它有什么好处?
    答:CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字能精确的定位出背景图片的位置。
    优点:a、减少图片的字节;b、减少了网页的http请求,从而大大的提高了页面的性能;
    c、解决了网页设计师在图片命名上的困扰,只需对一张集合的图片上命名就可以了,不需要对每一个小元素进行命名,从而提高了网页的制作效率。
    d、更换风格方便,只需要在一张或少张图片上修改图片的颜色或样式,整个网页的风格就可以改变。维护起来更加方便
    缺点:a、在图片合并的时候,你要把多张图片有序的合理的合并成一张图片,还要留好足够的空间,防止板块内出现不必要的背景;这些还好,最痛苦的是在宽屏,高分辨率的屏幕下的自适应页面,你的图片如果不够宽,很容易出现背景断裂;
    b、CSS Sprites在维护的时候比较麻烦,如果页面背景有少许改动,一般就要改这张合并的图片,无需改的地方最好不要动,这样避免改动更多的css,如果在原来的地方放不下,又只能(最好)往下加图片,这样图片的字节就增加了,还要改动css。

  • 相关阅读:
    单链表
    找最长最短字符串
    注解
    Json字符串
    java的反射机制
    java类的加载与加载器
    String StringBuilder StringBuffer
    查看运行某类时当前的进程状态
    迷宫小游戏
    类的初始化过程、super关键字与函数绑定
  • 原文地址:https://www.cnblogs.com/july-Vivian/p/5262438.html
Copyright © 2020-2023  润新知