当前位置:  首页  >  前端开发  >  HTML

BAT各大互联网公司html+css前端面试题总结

本篇文章给大家带来的内容是关于BAT各大互联网公司html+css前端面试题总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。​
本篇文章给大家带来的内容是关于BAT各大互联网公司html+css前端面试题总结,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

很多面试题是我自己面试BAT亲身经历碰到的。整理分享出来希望更多的前端er共同进步吧,不仅适用于求职者,对于巩固复习前端基础更是大有裨益。

而更多的题目是我一路以来收集的,也有往年的,答案不确保一定正确,如有错误或有更好的解法,还请斧正。

前面几题是会很基础,越下越有深度。

Html篇:

1.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?

  • IE: trident内核

  • Firefox:gecko内核

  • Safari:webkit内核

  • Opera:以前是presto内核,Opera现已改用Google Chrome的Blink内核

  • Chrome:Blink(基于webkit,Google与Opera Software共同开发)

2.每个HTML文件里开头都有个很重要的东西,Doctype,知道这是干什么的吗?

答案: 声明位于文档中的最前面的位置,处于 标签之前。此标签可告知浏览器文档使用哪种 HTML 或 XHTML 规范。(重点:告诉浏览器按照何种规范解析页面)

3.Quirks模式是什么?它和Standards模式有什么区别

答案:

从IE6开始,引入了Standards模式,标准模式中,浏览器尝试给符合标准的文档在规范上的正确处理达到在指定浏览器中的程度。

在IE6之前CSS还不够成熟,所以IE5等之前的浏览器对CSS的支持很差, IE6将对CSS提供更好的支持,然而这时的问题就来了,因为有很多页面是基于旧的布局方式写的,而如果IE6 支持CSS则将令这些页面显示不正常,如何在即保证不破坏现有页面,又提供新的渲染机制呢?

在写程序时我们也会经常遇到这样的问题,如何保证原来的接口不变,又提供更强大的功能,尤其是新功能不兼容旧功能时。遇到这种问题时的一个常见做法是增加参数和分支,即当某个参数为真时,我们就使用新功能,而如果这个参数 不为真时,就使用旧功能,这样就能不破坏原有的程序,又提供新功能。IE6也是类似这样做的,它将DTD当成了这个“参数”,因为以前的页面大家都不会去写DTD,所以IE6就假定 如果写了DTD,就意味着这个页面将采用对CSS支持更好的布局,而如果没有,则采用兼容之前的布局方式。这就是Quirks模式(怪癖模式,诡异模式,怪异模式)。

区别:

总体会有布局、样式解析和脚本执行三个方面的区别。

  盒模型:在W3C标准中,如果设置一个元素的宽度和高度,指的是元素内容的宽度和高度,而在Quirks 模式下,IE的宽度和高度还包含了padding和border。

  Css篇:

  1.有哪项方式可以对一个DOM设置它的CSS样式?  

  • 外部样式表,引入一个外部css文件

  • 内部样式表,将css代码放在 标签内部

  • 内联样式,将css样式直接定义在 HTML 元素内部

  2.CSS都有哪些选择器?

  • 派生选择器(用HTML标签申明)

  • id选择器(用DOM的ID申明)

  • 类选择器(用一个样式类名申明)

  • 属性选择器(用DOM的属性申明,属于CSS2,IE6不支持,不常用,不知道就算了)

  除了前3种基本选择器,还有一些扩展选择器,包括

  • 后代选择器(利用空格间隔,比如p .a{ })

  • 群组选择器(利用逗号间隔,比如p,p,#a{ }) 

  那么问题来了,CSS选择器的优先级是怎么样定义的?

  基本原则:

  一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。

  复杂的计算方法:

  • 用1表示派生选择器的优先级

  • 用10表示类选择器的优先级

  • 用100标示ID选择器的优先级

    • div.test1 .span var 优先级 1+10 +10 +1

    • span#xxx .songs li 优先级1+100 + 10 + 1

    • #xxx li 优先级 100 +1

  那么问题来了,看下列代码,

标签内的文字是什么颜色的?。



123

  答案:red。与样式定义在文件中的先后顺序有关,即是后面的覆盖前面的,与在

中的先后关系无关。

  3.CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内?  

  最基本的:

  设置display属性为none,或者设置visibility属性为hidden

  技巧性:

  设置宽高为0,设置透明度为0,设置z-index位置在-1000

  4.超链接访问过后hover样式就不出现的问题是什么?如何解决?

  答案:被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序: L-V-H-A(link,visited,hover,active)

  5.什么是Css Hack?ie6,7,8的hack分别是什么?

  答案:针对不同的浏览器写不同的CSS code的过程,就是CSS hack。

  示例如下:

#test       {   
        width:300px;   
        height:300px;   
          
        background-color:blue;      /*firefox*/
        background-color:red\9;      /*all ie*/
        background-color:yellow\0;    /*ie8*/
        +background-color:pink;        /*ie7*/
        _background-color:orange;       /*ie6*/    }  
        :root #test { background-color:purple\9; }  /*ie9*/
    @media all and (min-width:0px){ #test {background-color:black\0;} }  /*opera*/
    @media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }       /*chrome and safari*/

  6.请用Css写一个简单的幻灯片效果页面

  答案:知道是要用css3。使用animation动画实现一个简单的幻灯片效果。

/**HTML**/
        div.ani

        /**css**/
        .ani{
          width:480px;
          height:320px;
          margin:50px auto;
          overflow: hidden;
          box-shadow:0 0 5px rgba(0,0,0,1);
          background-size: cover;
          background-position: center;
          -webkit-animation-name: "loops";
          -webkit-animation-duration: 20s;
          -webkit-animation-iteration-count: infinite;
        }
        @-webkit-keyframes "loops" {
            0% {
                background:url(http://d.hiphotos.baidu.com/image/w%3D400/sign=c01e6adca964034f0fcdc3069fc27980/e824b899a9014c08e5e38ca4087b02087af4f4d3.jpg) no-repeat;             
            }
            25% {
                background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=edee1572e9f81a4c2632edc9e72b6029/30adcbef76094b364d72bceba1cc7cd98c109dd0.jpg) no-repeat;
            }
            50% {
                background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=937dace2552c11dfded1be2353266255/d8f9d72a6059252d258e7605369b033b5bb5b912.jpg) no-repeat;
            }
            75% {
                background:url(http://g.hiphotos.baidu.com/image/w%3D400/sign=7d37500b8544ebf86d71653fe9f9d736/0df431adcbef76095d61f0972cdda3cc7cd99e4b.jpg) no-repeat;
            }
            100% {
                background:url(http://c.hiphotos.baidu.com/image/w%3D400/sign=cfb239ceb0fb43161a1f7b7a10a54642/3b87e950352ac65ce2e73f76f9f2b21192138ad1.jpg) no-repeat;
            }
        }

  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元素(拥有内在尺寸,可设置高宽,但不会自动换行),有哪些

  答案:

扫码关注 PHP1 官方微信号
Tools Online | 在线开发工具
RankList | 热门文章
Recommend | 推荐阅读
PHP1.CN | 中国最专业的PHP中文社区 | json解析格式化 | PNG素材下载 | PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved PHP1.CN 第一PHP社区 版权所有 京ICP备19059560号-4