zoukankan      html  css  js  c++  java
  • 初级面试

     

      

    HTML

    1.对WEB标准以及W3C的理解与认识 
       标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性;

    2.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? 
       IE: trident内核 
       Firefox:gecko内核 
       Safari:webkit内核 
       Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核 Chrome:Blink(基于webkit,Google与Opera Software共同开发)

    3.每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗? 
       Doctype声明位于文档中的最前面的位置,处于标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。该标签可声明三种DTD 类型,分别表示严格版本、过渡版本以及基于框架的 HTML 文档。 当浏览器厂商开始创建与标准兼容的浏览器时,他们希望确保向后兼容性。为了实现这一点,他们创建了两种呈现模式:标准模式和混杂模式(quirks mode)。在标准模式中,浏览器根据规范呈现页面;在混杂模式中,页面以一种比较宽松的向后兼容的方式显示。混杂模式通常模拟老式浏览器(比如Microsoft IE 4和Netscape Navigator 4)的行为以防止老站点无法工作。 浏览器根据DOCTYPE是否存在以及使用的哪种DTD来选择要使用的呈现方法。如果XHTML文档包含形式完整的DOCTYPE,那么它一般以标准模式呈现。对于HTML 4.01文档,包含严格DTD的DOCTYPE常常导致页面以标准模式呈现。包含过渡DTD和URI的DOCTYPE也导致页面以标准模式呈现,但是有过渡DTD而没有URI会导致页面以混杂模式呈现。DOCTYPE不存在或形式不正确会导致HTML和XHTML文档以混杂模式呈现。

    4.xhtml和html有什么区别 ? 
       HTML是一种基本的WEB网页设计语言,XHTML是一个基于XML的置标语言 
       最主要的不同:XHTML 元素必须被正确地嵌套。XHTML 元素必须被关闭。标签名必须用小写字母。 XHTML 文档必须拥有根元素。

    5. 行内元素有哪些?块级元素有哪些?CSS的盒模型? 
       行内元素有:a b span I bem img input select strong 
       块级元素有:div ul ol lidl dt dd h1 h2 h3 h4…p 
       盒模型:margin borderpadding width

    6.a:img的alt与title有何异同?b:strong与em的异同? 
       a: alt(alt text):为不能显示图像、窗体或applets的用户代理(UA),alt属性用来指定替换文字。替换文字的语言由lang属性指定。(在IE浏览器下会在没有title时把alt当成 tool tip显示) title(tool tip):该属性为设置该属性的元素提供建议性的信息。 
       b: strong:粗体强调标签,强调,表示内容的重要性 em:斜体强调标签,更强烈强调,表示内容的强调点

    CSS

    1.有哪项方式可以对一个DOM设置它的CSS样式? 
       外部样式表,引入一个外部css文件 内部样式表,将css代码放在 head标签内部 内联样式,将css样式直接定义在 HTML 元素内部

    2. css的基本语句构成是? 
       选择器{属性1:值1;属性2:值2;……}

    3.CSS都有哪些选择器? 
       派生选择器(用HTML标签申明) 
       id选择器(用DOM的ID申明) 类选择器(用一个样式类名申明) 
       属性选择器(用DOM的属性申明,属于CSS2,IE6不支持,不常用,不知道就算了) 
       除了前3种基本选择器,还有一些扩展选择器,包括 后代选择器(利用空格间隔,比如div .a{ }) 群组选择器(利用逗号间隔,比如p,div,#a{ }) 那么问题来了,CSS选择器的优先级是怎么样定义的? 基本原则: 一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。

    4. CSS Sprites是否用过 
       Css 精灵 把一堆小的图片整合到一张大的图片上,减轻服务器对图片的请求数量

    5.CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内? 
       最基本的:设置display属性为none,或者设置visibility属性为hidden 技巧性: 设置宽高为0,设置透明度为0,设置z-index位置在-1000

    6.超链接访问过后hover样式就不出现的问题是什么?如何解决? 
       被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序: L-V-H-A(link,visited,hover,active)

    7.行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗? 
       块级元素(block)特性: 总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示; 宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制; 
       内联元素(inline)特性: 和相邻的内联元素在同一行; 宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)都不可改变(也就是padding和margin的left和right是可以设置的),就是里面文字或图片的大小。 那么问题来了,浏览器还有默认的天生inline-block元素(拥有内在尺寸,可设置高宽,但不会自动换行),有哪些? 答案: <input>、<img> 、 <button>> 、 <texterea> 、 <label>。

    8.什么是外边距重叠?重叠的结果是什么? 
       外边距重叠就是margin-collapse。 在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。 折叠结果遵循下列计算规则: 两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。 两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。 两个外边距一正一负时,折叠结果是两者的相加的和。

    9.rgba()和opacity的透明效果有什么不同? 
       rgba()和opacity都能实现透明效果,但最大的不同是opacity作用于元素,以及元素内的所有内容的透明度, 而rgba()只作用于元素的颜色或其背景色。(设置rgba透明的元素的子元素不会继承透明效果!)

    10.css中可以让文字在垂直和水平方向上重叠的两个属性是什么? 
       垂直方向:line-height 水平方向:letter-spacing 那么问题来了,关于letter-spacing的妙用知道有哪些么? 答案:可以用于消除inline-block元素间的换行符空格间隙问题。

    11.如何垂直居中一个浮动元素? 
       方法一:已知元素的高宽 #div1{ 200px; height:200px; position: absolute; //父元素需要相对定位 top: 50%; left: 50%; margin-top:-100px ; //二分之一的height,width margin-left: -100px; } 
       方法二:未知元素的高宽 #div1{ 200px; height: 200px; background-color: #6699FF; margin:auto; position: absolute; //父元素需要相对定位 left: 0; top: 0; right: 0; bottom: 0; } 
       那么问题来了,如何垂直居中一个 <img>>?(用更简便的方法。) #container //<img>的容器设置如下 { display:table-cell; text-align:center; vertical-align:middle; }

    12.px和em的区别。 
       px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。 浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。

    13.描述一个”reset”的CSS文件并如何使用它。知道normalize.css吗?你了解他们的不同之处? 
       重置样式非常多,凡是一个前端开发人员肯定有一个常用的重置CSS文件并知道如何使用它们。他们是盲目的在做还是知道为什么这么做呢?原因是不同的浏览器对一些元素有不同的默认样式,如果你不处理,在不同的浏览器下会存在必要的风险,或者更有戏剧性的性发生。 你可能会用Normalize来代替你的重置样式文件。它没有重置所有的样式风格,但仅提供了一套合理的默认样式值。既能让众多浏览器达到一致和合理,但又不扰乱其他的东西(如粗体的标题)。 在这一方面,无法做每一个复位重置。它也确实有些超过一个重置,它处理了你永远都不用考虑的怪癖,像HTML的audio元素不一致或line-height不一致。

    14.Sass、LESS是什么?大家为什么要使用他们? 
       他们是CSS预处理器。他是CSS上的一种抽象层。他们是一种特殊的语法/语言编译成CSS。 例如Less是一种动态样式语言. 将CSS赋予了动态语言的特性,如变量,继承,运算, 函数. LESS 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可一在服务端运行 (借助 Node.js)。 为什么要使用它们? 结构清晰,便于扩展。 可以方便地屏蔽浏览器私有语法差异。这个不用多说,封装对浏览器语法差异的重复处理,减少无意义的机械劳动。 可以轻松实现多重继承。 完全兼容 CSS 代码,可以方便地应用到老项目中。LESS 只是在 CSS 语法上做了扩展,所以老的 CSS 代码也可以与 LESS 代码一同编译。

    15.display:none与visibility:hidden的区别是什么? 
       display : 隐藏对应的元素但不挤占该元素原来的空间。 visibility: 隐藏对应的元素并且挤占该元素原来的空间。 即是,使用CSS display:none属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”;而使用visibility:hidden属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在。

    CSS Hack

    整理关于IE6、IE7、IE8、Firefox兼容性CSS HACK问题

    1.区别IE和非IE浏览器CSS HACK代码 
    #divcss5{ background:blue; /*非IE 背景藍色*/ background:red 9; /*IE6、IE7、IE8背景紅色*/ }

    2.区别IE6,IE7,IE8,FF CSS HACK 
    【区别符号】:「9」、「*」、「_」 【示例】: #divcss5{ background:blue; /*Firefox 背景变蓝色*/ background:red 9; /*IE8 背景变红色*/ *background:black; /*IE7 背景变黑色*/ _background:orange; /*IE6 背景变橘色*/ } 【说明】:因为IE系列浏览器可读「9」,而IE6和IE7可读「*」(米字号),另外IE6可辨识「_」(底线),因此可以依照顺序写下来,就会让浏览器正确的读取到自己看得懂得CSS语法,所以就可以有效区分IE各版本和非IE浏览器(像是Firefox、Opera、Google Chrome、Safari等)。

    3.区别IE6、IE7、Firefox (EXP 1) 
    【区别符号】:「*」、「_」 
    【示例】: #divcss5{ background:blue; /*Firefox背景变蓝色*/ *background:black; /*IE7 背景变黑色*/ _background:orange; /*IE6 背景变橘色*/ } 
    【说明】:IE7和IE6可读「*」(米字号),IE6又可以读「_」(底线),但是IE7却无法读取「_」,至于Firefox(非IE浏览器)则完全无法辨识「*」和「_」,因此就可以透过这样的差异性来区分IE6、IE7、Firefox

    4.区别IE6、IE7、Firefox (EXP 2) 
    【区别符号】:「*」、「!important」 
    【示例】: #divcss5{ background:blue; /*Firefox 背景变蓝色*/ *background:green !important; /*IE7 背景变绿色*/ *background:orange; /*IE6 背景变橘色*/ } 
    【说明】:IE7可以辨识「*」和「!important」,但是IE6只可以辨识「*」,却无法辨识「!important」,至于Firefox可以读取「!important」但不能辨识「*」因此可以透过这样的差异来有效区隔IE6、IE7、Firefox。

    5.区别IE7、Firefox 
    【区别符号】:「*」、「!important」 
    【示例】: #divcss5{ background:blue; /*Firefox 背景变蓝色*/ *background:green !important; /*IE7 背景变绿色*/ } 
    【说明】:因为Firefox可以辨识「!important」但却无法辨识「*」,而IE7则可以同时看懂「*」、「!important」,因此可以两个辨识符号来区隔IE7和Firefox。

    6.区别IE6、IE7 (EXP 1) 
    【区别符号】:「*」、「_」 
    【示例】: #tip { *background:black; /*IE7 背景变黑色*/ _background:orange; /*IE6 背景变橘色*/ } 
    【说明】:IE7和IE6都可以辨识「*」(米字号),但IE6可以辨识「_」(底线),IE7却无法辨识,透过IE7无法读取「_」的特性就能轻鬆区隔IE6和IE7之间的差异。

    7.区别IE6、IE7 (EXP 2) 
    【区别符号】:「!important」 
    【示例】: #divcss5{ background:black !important; /*IE7 背景变黑色*/ background:orange; /*IE6 背景变橘色*/ } 
    【说明】:因为IE7可读取「!important;」但IE6却不行,而CSS的读取步骤是从上到下,因此IE6读取时因无法辨识「!important」而直接跳到下一行读取CSS,所以背景色会呈现橘色。

    8.区别IE6、Firefox 
    【区别符号】:「_」 
    【示例】: #divcss5{ background:black; /*Firefox 背景变黑色*/ _background:orange; /*IE6 背景变橘色*/ } 
    【说明】:因为IE6可以辨识「_」(底线),但是Firefox却不行,因此可以透过这样的差异来区隔Firefox和IE6,有效达成CSS hack。

    以上包括了IE6IE8IE7火狐浏览器兼容问题及解决方法。

    JavaScript

    暂无

  • 相关阅读:
    bash 大致学习后的小案例,导出数据进行打包
    android 处理图片工具
    js屏蔽文本选中产生的蓝色背景色
    修正IE6不支持position:fixed的bug
    TreeView ShowCheckBox [文摘]
    存储过程分页程序
    GridView 72般绝技 很棒的东西 收藏..
    GridView 自带排序分页
    字符串补位
    sql2005 定义临时表
  • 原文地址:https://www.cnblogs.com/fanfan-nancy/p/5257563.html
Copyright © 2011-2022 走看看