




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
WEB面试题及答案如果cookie被禁用了,而且我们又无法控制让用户启用,那么我们可以用 C# code HttpServletResponse response = . / 这个默认在JSP里面是有的,无需获得 response.encodeURL(); response.encodeRedirectURL(); 这样,你就会发现你的url后面多了一个小尾巴 /grid.jsp;JSESSIONID=fjsdklafjdsfsldkafjlsf?type=1 其中的分号和JSESSIONID就是自动加上去的东西了。cookie被禁用后为什么session不能用Session模型简介中,大家可以发现Session状态应该存储在两个地方,分别是客户端和服务器端。客户端只负责保存相应网站的SessionID,而其他的Session信息则保存在服务器端。在ASP中,客户端的SessionID实际是以Cookie的形式存储的。如果用户在浏览器的设置中选择了禁用Cookie,那末他也就无法享受Session的便利之处了,甚至造成不能访问某些网站。为了解决以上问题,在ASP.NET中客户端的Session信息存储方式分为:Cookie和Cookieless两种。 ASP.NET中,默认状态下,在客户端还是使用Cookie存储Session信息的。如果我们想在客户端使用Cookieless的方式存储Session信息的方法如下: 找到当前Web应用程序的根目录,打开Web.Config文件,找到如下段落: 这段话中的cookieless=false改为:cookieless=true,这样,客户端的Session信息就不再使用Cookie存储了,而是将其通过URL存储。1. request的作用有哪些?获取客户端传递的参数值 获取客户端请求头信息 获取会话 获取转发对象可作为容器使用, 利用setAttribute()和getAttribute()方法进行参数传递2. session有什么作用。 因为http协议是无状态的协议,但我们需要保存客户端在多次请求之间状态信息的时候,我们需要session来维护客户端的状态Session对象类似于一个容器,可以存放任何对象,以供不同页面间共享数据3. cookie被禁止后怎样使用session?URL重写,对所有页面涉及的连接都使用url重写方式。从而将JsessionID以参数的方式链接到URL后面。保证每次页面提交时服务器都能获得sessionID,从而维持和客户端的状态。4. 编写一个servlet的步骤。 1)新建一个类继承于HttpServlet 2) 重写其中的doGet和doPost方法3)完成servlet的注册。在web.xml中加入标记5. doGet和doPost方法各有什么作用?doGet完成Get方式的请求处理。doPost完成Post方式请求处理Get和Post两者区别在于:Get用于资源查找,Post主要用于数据传输;6. 为什么要为servlet配置URL映射? 配置URL的主要作用是客户端通过什么路径能去找到Servlet;7. 解释web.xml中怎样配置一个servlet?Servlet注册包括两部分,第一,容器如何找到Servlet,利用 Servlet名字 Servlet类的全路径完成。第二,客户端如何找到当前的Servlet。利用 Servlet名字 客户端请求路径完成。8. servlet的类架构是什么样的。Servlet是Sun公司提供的用户和WEB服务器通讯的接口,所有Servlet都必须实现这个接口。J2EE API中提供了一个类GenericServlet对Servlet接口作了简单的实现。同时,这个类还实现了ServletConfig接口。来对Servlet进行一些配置。GenericServlet有一个专门针对于Http协议进行实现的一个子类HttpServlet。9. 谈谈servlet的生命周期?1)容器装载并实例化Servlet 2) 调用init()方法完成Servlet初始化 3)当请求到达时,调用service()方法处理请求,产生响应 4)销毁阶段调用destroy()方法完成清理工作。10. 如何得到客户端的请求参数?request.getParameter()单个数据 request.getParameterValues()一组数据 request.getParameterMap()返回所有的键值对11. request.getParameter和request.getParameterValues的区别,它们的返回值是什么类型?request.getParameter获得单个表单的数据。返回值是String类型。而request.getParameterValues()是获得表单元素名相同的一组数据。返回值是String数组。12. response对象的作用?Response对象是对服务器的响应信息作出的一个封装对象。主要作用有:1)可以从response中获得输出流对象,从而可以向客户端输出信息2)可以实现重定向,response.sendRedirect();3) 可以设置响应头和状态码。4)可以实现URL重写13. request对象的作用范围是什么?一次请求响应完成后,就会销毁。14. session对象的作用范围是什么在一个用户会话期间有效。针对于一个用户的浏览器。同一个浏览器和它的子窗口都是同一个会话。15. ServletContext对象的作用范围是什么。存在于整个web应用。当WEB容器关闭时,才会销毁。16. session对象是什么时候产生的,什么时候销毁的?当用户访问web容器,而容器调用了request.getSession()方法后,产生Session对象。用以保存客户端在服务器上的信息。同时给这个Session分配一个唯一的标识ID。并产生一个set-cookies的响应头,以JsessionID作为键,标识ID作为值向客户端的cookie中写入内容,当客户端下次再发出请求时,就会将这个JsessionID以请求头的方式向服务器进行发送。而容器读取了JsessionID请求头后,就会根据这个ID找到相对应的Session对象,从而维持服务器和客户端的状态。17销毁session方法有三种 1)session超时 (当设置为负值是是永不过期)2)调用session对象的invalidate()方法 3)web容器关闭或崩溃程序能控制是前二种。18. session在什么时候使用? 需要保持和客户端状态时使用。如项目中,登陆时,使用session保持用户信息。购物车制作时,使用session保持用户的购物信息19. session和cookie有什么区别。1) session保存在服务器,客户端不知道它的信息;而cookie保存在客户端,服务器知道其中的信息。2) session中 保存的是对象,而cookie中保存的是字符串3) session是不能区分路径的,同一个客户在访问web服务器之间,在任何地方都能够访问得到session中保存的信息的。而cookie如果设置了路径参数,同一个网站下的不同路径的cookie互相是访问不到的。4) session是以cookie或URL重写为基础的,默认使用cookie来实现,系统会创造一个名为JSESSIONID的输出cookie,我们叫做session cookie,以区别persistent cookies,也就是我们通常所说的cookie,注意session cookie是存储于浏览器内存中的,并不是写到硬盘上的,这也就是我们刚才看到的JSESSIONID,我们通常情是看不到JSESSIONID的,但是当我们把浏览器的cookie禁止后,web服务器会采用URL重写的方式传递Sessionid,我们就可以在地址栏看到sessionid=KWJHUG6JJM65HS2K6之类的字符串。20. .Http协议是无状态的,服务器是用什么方式为一个客户端保存状态的?l Hidden表单域 cookie session URL重写21. servlet或jsp能同时响应多个客户端的请求吗?是通过什么方式做到的?能够。多线程22. 请求转发和重定向的区别。a) forward客户端请求服务器一次,redirect请求服务器两次,所以forward方式可以获得request作用域的信息,而redirect方式不能获得。b) forward由request对象发出,而redirect由response对象发起c) redirect()可以跨越不同的工程之间。而forward()只能在一个工程中使用d) 内部转发不会引起地址栏的变化,而重定向会导致地址栏变化23. 谈谈监听器的原理、配置及使用。用于监听请求,会话,上下文件对象相关事件,并在事件发生后作出处理。只要写一个类实现相应的监听器接口,就写了一个相应的监听处理类。在web.xml中使用24. 谈谈过滤器的原理,配置及使用。有多个过滤器时执行的顺序?过滤器允许你拦截请求,还可以允许你控制响应。还可以能够对请求头、响应头、消息体的数据进行更改。同时,还可以对返回的流信息进行压缩。项目中使用字符编码格式的处理使用了过滤器和包装器。过滤器需要在web.xml容器中进行注册,才能被web容器识别()如果有多个过滤器优先执行url-pattern,再执行servlet-name;如果有多个url-pattern按web.xml布署顺序执行。25. 请谈谈请求转发的原理?请求转发是针对同一工程下资源的转发。客户端在这个过程中,只请求服务器一次,请求转发由request.getRequestDispather(“”).forward(request,response).26. 请说明重定向的原理?重定向由response发起。当用户请求服务器时,由服务器向客户端发送一个302的状态码,并产生一个Location的响应头。当客户端接受到这样的状态码时,会马上读取Location响应头,并将地址栏改为Location里的内容。然后再向服务器发出请求。这个过程中客户端发出了两次请求。并可向不同的服务器发送请求。27. 你在项目中是如何处理乱码的?1) 使用过滤器和包装器设置统一的字符编码格式。2) 页面使用统一的编码格式28. web项目中,数据共享有哪些方式?如果实现的?Request,session,application(servletContext). 通过setAttribute和getAttribute实现29. servlet中,如何取得HTTP请求头信息?Request.getHeader(); Request.getHeaders();30. servlet中的service方法在什么时候调用?每一次客户端请求一个servlet资源的时候,由web容器调用。31. 文件上传的原理是什么? 浏览器会把文件内容连同 form的所有字段格式化后传递到服务器,以二进制方式读取流后,就不能以request.getParameter的方式读取表单中的参数信息了。通过request.getInputStream();32. 如何打包一个web项目?Jar cf xx.war WEB-INF *.html *.jsp *.jpg33. MIME的作用是什么?告诉客户端浏览器你返回的内容是哪一种类型的,让浏览器采取相应的策略来显示处理你返回的文档或者文件。34. HttpServletRequest和HttpServletResponse是在哪里创建的?当客户端请求到来的时候,由web容器创建。35. 如何在一个servlet中,把页面转到.页面中。Response.sendRedirect(“”);36. ServletRequest与HttpServletRequest有什么区别与联系?ServletRequest是HttpServletRequest的父接口,HttpServletRequest是特别针对Http协议而定义的接口,里面定义了得到http协议请求信息的方法。37. servlet中如何到得项目的绝对路径?Request.getContextPath();38. 在servlet中,如何得到web.xml中配置的初始化参数?ServletConfig.getInitParameter()39. 如何进行URL重写?要用到什么方法?当客户端禁用cookie后,服务器的sessionID就无法发送给客户端。从而无法维持和客户端的状态。解决方法是,对链接重新编码。在链接产生时,在链接后面加上一个JsessionID用以维持客户端和服务器的状态40. 让session失效的方法有哪些?过期的方法有三种:1、session超时 2、调用session的invalidate()方法强行中止session3、应用服务器崩溃。程序员能控制的是前二种setMaxInternalTime(); session.invalidate();.在web.xml中加入 3041. web容器的作用是什么?a) 通信支持: b) 生命周期管理。 c) 多线程支持: d) jsp支持 e) 安全性管理42. 在servlet中,怎么直接往客户端输出信息?out = response.getWriter(), out = response.getOutputStream().43. 发布项目时,把一html文件放到webroot下,与放在web-inf下,有什么区别?因为web-inf下,应用服务器把它指为禁访目录,即直接在浏览器里是不能访问到的. 但是可以让servlet进行访问,如web-inf下有a.jsp则可以用 request.getRequestDispatcher(/WEB-INF/a.jsp).forward(request,response);44. web.xml中welcome-file配置项的作用是什么?当我们在访问web应用时,如果没有指定访问的页面的时候,会自动定向到welcome-file所指定的页面45. servlet中的response.sendError的作用是什么?这是设置响应信息中状态码的方法。当我们使用response.sendError(404,”file not found”);之后就是发送了一个404的状态码,并作了状态码的描述。浏览器接受了状态码后,就可对不同的状态码作出相应的处理。46. 什么情况下会用到URL重写?47. 你见过JSessionID吗?有什么作用?48. 如何用过滤器实现用户登录认证?新建一个类实现Filter接口,拦截目标页面的请求。在doFilter()里进行登录有效性的验证。如果有效,通过过滤器,否则转发到错误页面。49. 对客户输入的数据,可以在哪些方面对数据格式的合法性进行验证?在服务器端写入方法对客户端的数据进行合性性验证。主要有长度判断,正规表达式等等。50. jsp有哪些内置对象?pagetContext request session application response out page config exception51. 谈谈页面间的参数传递有哪些方式 ?A、通过作用域对象session、request 的setAttribute()和getAttribute()方法进行参数传递。B、 C、request.gerRequestDispatcher(“1.jsp?name=XX”).forward(request,response);D、52、application有什么作用保存的一些全局性的对象信息。 可通过getInitParameter()读取web.xml中中初始化信息 可以将虚拟路径转化为物理路径55、分页是怎么实现的?Select top 5 * from 表名 where id not in(select top 10 id from 表名)56、项目开发经历了哪几个阶段?需求分析,设计(找用例,写用例文本,找实体,编写数据字典,画数据流图),编码,测试,部署;57、谈谈DAO模式的原理的作用。DAO是一种设计模式包括三个部分1)DAO接口2)DAO接口实现类,3)PO持久化对象,它和数据库相对应58、servlet和jsp有什么关系? Servlet和JSP都是服务器的组件。 Servlet是一个接口,也是SUN公司提出的一种用户和WEB容器之间通信的标准。由用户实现其中的service()方法供WEB容器进行调用,从而实现servlet和WEB容器之间的交互。所以当用户要和WEB容器通信时必须实现这种标准。而JSP规范规定,由容器翻译好的JAVA类必须实现HttpJspPage接口,而这个接口是servlet的子接口,从这个意义上说,JSP的本质还是servlet。 JSP重在表示,解决了servlet页面输出困难的问题。而servlet重在业务处理,避免在页面出现过多的业务处理带来的阅读性和维护性的困难。它们可以很好的结合。 Servlet编写后需要在WEB应用的web.xml进行注册,从而能让WEB容器识别用户编码的Servlet。但JSP由容器来管理,所以无需注册。59、jsp是如何被容器调用和执行的?1)由JSP引擎将JSP页面翻译成JAVA代码 2)将JAVA代码编译成class字节码文件3)加载到容器 4)由容器实例化成对象 5)初始化阶段相关的方法是jspInit()6)请求到达,调用服务阶段相关的方法是_jspService() 7)销毁阶段相关的方法是jspDestroy()60、servlet是线程安全的吗?为什么?不安全。因为Servlet对象在整个过程中,至始至终只有一个对象。以节约服务器资源的消耗,这就意味着很多个线程会同时访问一个Servlet对象。所以线程不安全。61、你是如何处理servlet线程安全问题的?解决Servlet线程安全问题方法有三种1)编写Servlet类的时候,实现SingleThreadModel接口,将Servlet变成单线程机制。2)涉及对共享资源访问的时候,使用synchronized同步加锁,实现共享资源的保护。3)尽量不在Servlet中定义成员变量,使用局部变量。在三种方法中,最好使用第三种,这样线程安全,并且性能最高。62、请简述servlet多线程的实现方式?每次客户端请求过来的时候,WEB容器会产生一个线程来处理这个请求,这样就实现了servlet多线程。63、在servlet中定义成员变量(全局变量),有线程安全问题吗?如何处理?有。避免使用实例变量是保证servlet线程安全的最佳选择。每个线程有自己私有的栈空间,方法中的临时变量是在栈上分配空间,他们不会影响线程的安全。64、JSP中动态包含和静态包含的区别。5) 静态包含在转换成为java文件的时候将要包含的文件包含进来,作为一个整体编译。动态包含是各个包含文件分别转换,分别编译。6) 静态包含在两个文件中不能有相同的变量,动态包含允许7) 静态包含只能包含文件,动态包含还可以包含servlet输出的结果8) 静态包含不能使用变量作为文件名,动态包含可以使用变量作为文件名9) 动态包含文件发生变化,包含文件会感知变化。65、谈谈MVC设计模式的概念,使用MVC的好处。M模型层:模型层专注于处理业务逻辑和业务数据,它可以为多个视图准备数据,提高了应用的可重用性。V视图层:用户看到的并与系统交互的界面,接收用户数据,向用户显示相关的数据。C控制层:是模型层和视图层联系的纽带;接收视图层提交的请求,调用模型层的业务逻辑,根据业务逻辑的调用结果,控制系统转发的页面。MVC模式的好处:实现了业务逻辑和界面显示处理的分离;J2EE架构实现了业务逻辑和数据存储的分离,界面显示和业务逻辑的分离。各层之间不受影响。66、模式1和模式2和区别。模式1:jsp+javabean模式2:jsp+servlet+javabean67、一个页面中有两个form,如何处理提交?可以使用提交按钮的名称来判断,也可以使用hidden隐藏表单进行值的区分。68、 servlet程序中,可以获得客户机的IP地址吗?如何得到?request.getRemoteAddr();获得客户端IP地址request.getRemoteHost(),获得客户端主机名,如果不解析主机名,返回IP地址request.getRemotePort(),获得客户端端口号request.getRemoteUser()返回作了请求的用户名,这个信息用来作HTTP用户论证。如果在请求中没有用户名信息,这个方法返回空值。69、 URL与URI的区别? url:统一资源定位符, url定位客户端连接到服务器所需要的信息uri:统一资源标志符: uri是url的一部分,没有域名和查询字符串,即域名之后查询字符串之前所有的信息,用于指定资源70、文件上传的原理是什么? 浏览器会把文件内容连同 form的所有字段格式化后传递到服务器,以二进制方式读取流后,就不能以request.getParameter的方式读取表单中的参数信息了71、 tomcat容器是如何创建servlet类实例?用到了什么原理?当容器启动时,会读取在webapps目录下所有的web应用中的web.xml文件,然后对xml文件进行解析,并读取servlet注册信息。然后,将每个应用中注册的servlet类都进行加载,并通过反射的方式实例化。(有时候也是在第一次请求时实例化)在servlet注册时加上1如果为正数,则在一开始就实例化,如果不写或为负数,则第一次请求实例化。72、 servlet构造函数中可以执行初始化代码,为什么还要init方法呢?如果在servlet构造函数中放置初始化代码,很容易导致servlet实例的创建失败。这样会导致Servlet无法响应客户端的请求HTML & CSS1. 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文档以混杂模式呈现。2. 行内元素有哪些?块级元素有哪些?CSS的盒模型?行内元素有:a b span I b em img input select strong块级元素有:div ul ol li dl dt dd h1 h2 h3 h4p盒模型:margin border padding width3. CSS引入的方式有哪些? link和import的区别是?1. 使用 LINK标签将样式规则写在.css的样式文件中,再以标签引入。2. 使用import引入跟link方法很像,但必须放在. 中3. 使用STYLE标签将样式规则写在.标签之中。4. 使用STYLE属性将STYLE属性直接加在个别的元件标签里,元件(标签) STYLE=性质(属性)1: 设定值1; 性质(属性)2: 设定值2; .5. 使用标记引入样式两者区别:加载顺序的差别。当一个页面被加载的时候,link引用的CSS会同时被加载,而import引用的CSS会等到页面全部被下载完再被加载。import可以在css中再次引入其他样式表,比如可以创建一个主样式表,在主样式表中再引入其他的样式表,如:main.css-import “sub1.css”;import “sub2.css”;这样做有一个缺点,会对网站服务器产生过多的HTTP请求,以前是一个文件,而现在却是两个或更多文件了,服务器的压力增大,浏览量大的网站还是谨慎使用。4. CSS选择符有哪些?哪些属性可以继承?优先级算法如何计算?内联和important哪个优先级高?l 通配选择符* sRules l 类型选择符E sRules td font-size:14px; width:120px; l 属性选择符E attr sRules E attr = value sRules E attr = value sRules E attr |= value sRules htitle color: blue; /* 所有具有title属性的h对象 */spanclass=demo color: red; divspeed=fastdorun=no color: red; arel=copyright color:black; l 包含选择符E1 E2 sRules table td font-size:14px; l 子对象选择符E1 E2 sRules div ulli p font-size:14px; l ID选择符 #ID sRules l 类选择符E.className sRules l 选择符分组E1 , E2 , E3 sRules l 伪类及伪对象选择符E : Pseudo-Classes sRules ( Pseudo-Classes ):link :hover :active :visited :focus :first-child :first :left :right :langE : Pseudo-Elements sRules ( Pseudo-Elements ):first-letter :first-line :before :after可以继承的有:font-size font-family color不可继承的一般有:border padding margin background-color width height等=关于CSS specificityCSS 的specificity 特性或称非凡性,它是衡量一个衡量CSS值优先级的一个标准,既然作为标准,就具有一套相关的判定规定及计算方式,specificity用一个四位的数 字串(CSS2是三位)来表示,更像四个级别,值从左到右,左面的最大,一级大于一级,数位之间没有进制,级别之间不可超越。在多个选择符应用于同一个元素上那么Specificity值高的最终获得优先级。选择符Specificity值列表:规则:1. 行内样式优先级Specificity值为1,0,0,0,高于外部定义。如:sjweb外部定义指经由或标签定义的规则;2.!important声明的Specificity值最高;3.Specificity值一样的情况下,按CSS代码中出现的顺序决定,后者CSS样式居上;4.由继续而得到的样式没有specificity的计算,它低于一切其他规则(比如全局选择符*定义的规则)。算法:当遇到多个选择符同时出现时候按选择符得到的Specificity值逐位相加,数位之间没有进制 比如说: 0,0,0,5 + 0,0,0,5 =0,0,0,10 而不是 0,0, 1, 0就得到最终计算得的specificity,然后在比较取舍时按照从左到右的顺序逐位比较。实例分析:1.div font-size:12px;分析:1个元素 div,Specificity值为0,0,0,12.body div pcolor: green;分析:3个元素 body div p ,Specificity值为0,0,0,33.div .sjweb font-size:12px;分析:1个元素 div ,Specificity值为0,0,0,11个类选择符.sjweb,Specificity值为0,0,1, 0最终:Specificity值为 0,0,1,14.Div # sjweb font-size:12px;分析:1个元素 div ,Specificity值为0,0,0,11个类选择符.sjweb,Specificity值为0,1,0, 0最终:Specificity值为 0,1,0,15.html body div id=”totals” ul li p color:red;分析:6个元素 html body div ul li p Specificity值为0,0,0,61个属性选择符 id=”totals” Specificity值为0,0,1,02个其他选择符 Specificity值为0,0,0,0最终:Specificity值为 0,0,1,6!important 的优先级最高使用!important可以改变优先级别为最高,其次是style对象,然后是id class tag ,另外在同级样式按照申明的顺序后出现的样式具有高优先级。5. 前端页面由哪三层构成,分别是什么?作用是什么?网页分成三个层次,即:结构层、表示层、行为层。网页的结构层(structural layer)由 HTML 或 XHTML 之类的标记语言负责创建。标签,也就是那些出现在尖括号里的单词,对网页内容的语义含义做出了描述,但这些标签不包含任何关于如何显示有关内容的信息。例如,P 标签表达了这样一种语义:“这是一个文本段。”网页的表示层(presentation layer) 由 CSS 负责创建。 CSS 对“如何显示有关内容”的问题做出了回答。网页的行为层(behavior layer)负责回答“内容应该如何对事件做出反应”这一问题。这是 Javascript 语言和 DOM 主宰的领域。6. css的基本语句构成是?选择器属性1:值1;属性2:值2;7. 你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?经常遇到的浏览器的兼容性有哪些?怎么会出现?解决方法是什么?IE内核浏览器:360,傲游,搜狗,世界之窗,腾讯TT非IE内核浏览器:firefox opera safari chrome1.就是ie6双倍边距的问题,在使用了float的情况下,不管是向左还是向右都会出现双倍,最简单的解决方法就是用display:inline;加到css里面去。2.文字本身的大小不兼容。同样是font-size:14px的宋体文字,在不同浏览器下占的空间是不一样的,ie下实际占高16px,下留白3px,ff下实际占高17px,上留白1px,下留白3px,opera下就更不一样了。解决方案:给文字设定 line-height 。确保所有文字都有默认的 line-height 值。这点很重要,在高度上我们不能容忍1px 的差异。3. ff下容器高度限定,即容器定义了height之后,容器边框的外形就确定了,不会被内容撑大,而ie下是会被内容撑大,高度限定失效。所以不要轻易给容器定义height。4. 还讨论内容撑破容器问题,横向上的。如果float 容器未定义宽度,ff下内容会尽可能撑开容器宽度,ie下则会优先考虑内容折行。故,内容可能撑破的浮动容器需要定义width。5. 浮动的清除,ff下不清除浮动是不行的。6. mirrormargin bug,当外层元素内有float元素时,外层元素如定义margin-top:14px,将自动生成margin-bottom:14px。padding也会出现类似问题,都是ie6下的特产,该类bug 出现的情况较为复杂,远不只这一种出现条件,还没系统整理。解决方案:外层元素设定border 或 设定float。7. 吞吃现象,限于篇幅,我就不展开了。还是ie6,上下两个div,上面的div设置背景,却发现下面没有设置背景的div 也有了背景,这就是吞吃现象。对应上面的背景吞吃现象,还有滚动下边框缺失的现象。解决方案:使用zoom:1。这个zoom好象是专门为解决ie6 bug而生的。8. 注释也能产生bug“多出来的一只猪。”这是前人总结这个bug使用的文案,ie6的这个bug 下,大家会在页面看到猪字出现两遍,重复的内容量因注释的多少而变。解决方案:用“ picRotate start ”方法写注释。9. 里加 float ,这是一个典型的,棘手的兼容问题,希望引起大家正视 ,给li 不同的属性会有不同的解释效果,ff下的解释稍可理解,ie6下的解释会让你摸不着头脑,由于问题的复杂性,将另起一文专门讨论该问题。在ul使用心得一文里有相关成果,却没给出问题解决的过程。10. img下的留白。解决方案:给img设定 display:block。11. 失去line-height。文字,很遗憾,在ie6下单行文字 line-height 效果消失了。,原因是这个inline-block元素和inline元素写在一起了。解决方案:让img 和文字都 float起来。12. 链接的hover状态。a:hover imgwidth:300px 我们想让鼠标hover时,链接里包含的图片宽度变化,可惜在ie6下无效,ie7、ff下有效。13. 非链接的hover状态。div:hover 这样的样式ie6是不认的,在ie7、ff下才有效果。14. ie下overflow:hidden对其下的绝对层position
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 车轮更换与维修合同
- 看房团合同范本
- 购买矿石加工合同范本
- 个人船转让合同范本
- 家具借租合同范本
- 胎心仪推广合同范本
- 装卸货劳务合同范本
- 购车合同范本复印
- 公司门头制作合同范本
- 商品店租赁合同范本
- 环境材料概论 完整全套课件第1-9章 绪论、吸附材料 -环境材料的绿色设计
- 金安桥水电站枢纽布置及主要技术问题
- 端子铆压标准规范
- csc服务分包考试
- 高级(三级)育婴师理论试题-附答案
- YY 0271.1-2016牙科学水基水门汀第1部分:粉/液酸碱水门汀
- GB/T 30146-2013公共安全业务连续性管理体系要求
- GB 1886.232-2016食品安全国家标准食品添加剂羧甲基纤维素钠
- 地理信息系统技术概述课件
- 美育PPT精选文档课件
- 医院介入手术病人护送交接流程
评论
0/150
提交评论