zoukankan      html  css  js  c++  java
  • 面试题总结

    -------------------------------------------------------------css兼容性问题-------------------------------------------------------

    1:div居中问题
    Div居中问题 div设置 margin-left, margin-right 为 auto 时已经居中,
    IE 不行,IE需要设定body居中,首先在父级元素定义text-algin: center;
    这个的意思就是在父级元素内的内容居中。

    2:浮动后设计边距IE6产生的双边距问题 (解决方法:给浮动元素加上display:inline)

    3:元素设计最小宽度问题(min-width)
    IE 不认得min-这个定义,但实际上它把正常的width和height当作有min的情况来使
    这样问题就大了,如果只用宽度和高度,正常的浏览器里这两个值就不会变,
    如果只用min-width和min-height的话,IE下面根本等于没有设置宽度和高度。
    比如要设置背景图片,这个宽度是比较重要的。
    要解决这个问题,可以这样:
    #box{ 80px; height: 35px;}
    html>body #box{ auto; height: auto; min- 80px; min-height: 35px;}


    4:iE6下无法定义1px左右高度的容器
    IE6下这个问题是因为默认的行高造成的,解决的方法也有很多,
    例如
    div{100px;height:1px;verflow:hidden;zoom:0.08 ; line-height:1px}

    5:设计元素透明度问题 ff(opacity:0.5) iE(filter:alpha(opacity=50))


    6:超链接访问过后hover样式就不出现的问题
    被点击访问过的超链接样式不在具有hover和active了,
    解决方法是改变CSS属性的排列顺序: L-V-H-A
    Code: <style type="text/css"> <!-- a:link {} a:visited {} a:hover {} a:active {} --> </style>

    7: BOX模型解释不一致问题
    在FF和IE 中的BOX模型解释不一致导致相差2px解决方法:div{margin:30px!important;margin:28px;}
    注意这两个 margin的顺序一定不能写反, important这个属性IE不能识别,但别的浏览器可以识别。

    8:游标手指cursor问题 (cursor: pointer 可以同时在 IE FF 中显示游标手指状, hand 仅 IE 可以 )


    9:各大浏览器对元素的padding,margin初始值解析不一致问题(解决就是在页面初始化时*{padding:0px;margin:0px})


    ------------------------------------------js的兼容性问题-------------------------------------------------------------


    1:事件监听的兼容问题 ff支持addEvenListener(event,function,boolean) ie支持attachEvent(event,function)

    2:event.srcElement与event.target问题
    IE下,even对象有srcElement属性,但是没有target属性;Firefox下,even对象有target属性,但是没有srcElement属性。
    解决问题:var target=event.srcElement||event.target;


    3:事件对象event的兼容问题 (解决 var ev=event||window.event)


    4:event.x与event.y问题 (鼠标相对于页面左上角的位置)
    问题说明:IE下,even对象有x、y属性,但是没有pageX、pageY属性;Firefox下,even对象有pageX、pageY属性,但是没有x、y属性。

    解决方法:
    var ev=event||window.event
    var myX = ev.x ? ev.x : ev.pageX; var myY = ev.y ? ev.y:ev.pageY;


    5:获取浏览器可视区兼容问题(var H=document.body.clientWidth||document.documentElement.clientWidth||window.innerWidth)


    6:关于获取滚动条距离而出现的问题
    当我们获取滚动条滚动距离时:
    IE,Chrome: document.body.scrollTop
    FF: document.documentElement.scrollTop
    兼容处理:var scrollTop=document.documentElement.scrollTop||document.body.scrollTop

    7:获取子元素时的兼容性问题 obj.childNodes返回所有的子节点 (解决:obj.children())


    8:获取元素的firstChild,lastChild,nextSibling,previousSibling的兼容性问题
    解决:
    var first=firstChild||firstElementChild

    9:创建Ajax对象时的兼容性问题
    var xhr;

    if(window.XMLHttpRequest){
    xhr=new XMLHttpRequest();
    }else{
    xhr=new ActiveXObject("Microsoft.XMLHTTP");
    }


    10 :关于获取行外样式 obj.currentStyle[stylename] 和 window.getComputedStyle(obj,false)[stylename] 出现的兼容性问题
    funtion getStyle(obj,name){
    if(obj.currentStyle){
    //IE
    return obj.currentStyle[name];
    }else{
    //Chrom,FF
    return window.getComputedStyle(obj,false)[name];
    }
    }

    11:阻止事件传播兼容:
    //js阻止事件传播,这里使用click事件为例
    document.onclick=function(e){
    var e=e||window.event;
    if (e.stopPropagation) {
    e.stopPropagation();//W3C标准
    }else{
    e.cancelBubble=true;//IE....
    }
    }


    12: 阻止默认事件:
    document.onclick=function(e){
    var e=e||window.event;
    if (e.preventDefault) {
    e.preventDefault();//W3C标准
    }else{
    e.returnValue='false';//IE..
    }
    }

    13:鼠标滚轮事件的兼容性问题

    ------------------------------------------前端优化-----------------------------------------

    1: css文件/js文件进行压缩 (压缩工具 https://tool.lu/css/)

    2: 使用css背景sprites技术合并图片(即把很多小图标合并到一张图片上) 如果不同的图片跳转到不同的页面,可以使用jsc操作

      <div onclick="go('http://www.baidu.com')"></div>

       function go(url){

               window.location.href=url;

     }

    3: 合并js,合并css (可以减少http 的请求)



  • 相关阅读:
    eyou通用标签的调取
    eyou头部相关标签的调用
    自增标签循环+1的方法
    文章内容页相关的标签
    当前栏目有多少文章
    指定栏目最顶级栏目名称
    当前单页正文
    Python-pandas常用函数
    监控在线平台
    网页爬虫---音乐
  • 原文地址:https://www.cnblogs.com/huangshikun/p/7027973.html
Copyright © 2011-2022 走看看