1.文章标题列表中日期居右显示的两种方法,方法 A 相对方法 B 省资源,但比方法 B 要多写两句代码,使用时请视情况而定: 方法 A(经典论坛 ariesjia 提供的思路.感谢~): view source print? 1 @Mr.Think 这是文章标题<SPAN>20xx-10-10</SPAN> 然后定义 p 和 span 的样式: view source print? 1 p{position:relative} 2 p span{position:absolute; right:0} 方法 B: view source print? 1 <SPAN>20xx-10-10</SPAN>@Mr.Think 这是文章标题 然后定义 span 右浮动: view source print? 1 p span{float:right} 其实这两种方法可以延伸到很多情况下,很实用的一种写法; 2.web 标准中,同一页面中只能有一个 h1 标签.很多人知道这个概念,但做到的却 很少; 3.空白外边距互相叠加的问题:一般通过添加透明边框或者 1px 的内边距避免. 详细解读:http://mrthink.net/css-margin-overlying-way/; 4.ie6 下 max/min-width/height 实 现,_width:expression(document.body.clientWidth > 600 ? “600px” : “auto”); _height: expression(this.scrollHeight >600 ? “600px” : “auto”);. 5.html/class/id,最好统一以小写书写,这样更严谨(符合 xhtml 标准); 6.不推荐用下面代码兼容 IE8: view source
print? 1 <META content=IE=7 http-equiv=X-UA-Compatible> 如果是非短期性页面,尽量避免使用,页面应尽可能保证向后兼容.更多兼容方法 请详细阅读: http://mrthink.net/cssandhtml-hack-mainbrower/ 7.空 div 在 IE(FF 中没有)是有默认高度的,可以用定义:div { witdh:100%; background:#9c0; font-size:0}的方式去掉默认高度; 8.在使用 table 标签时应该尽可能的利用它本身的属性, 最大限度的分离结构与 样式.详细解读:http://mrthink.net/csshtml-colgroup-col-style/; 9.充分利用表单中 label 标签提升用户体验; 这一点对于页面中那些小的选项 框,以及对残障人士阅读网站都有好处. 细节是用户体验的第一步;例如: view source print? 1 <LABEL for=sample>SAMPLE</LABEL> 2 <INPUT id=sample> 当鼠标点击 SAMPLE 时,光标将自动在文本域中获取焦点; 10.fieldset, legend 标签, 鲜为人知,却很实用的一组标签;它可以很明了的把 一组元素框起来,主要用于表单; 11.optgroup 标签,鲜为人知,它对提升选择表单用户体验很有帮助.作用? 就是 可以在有很多选项时,对这些选项分组: view source print? <SELECT id=selectId> <OPTGROUP label="GROUP ONE"> <OPTION selected value=1>one select</OPTION> <OPTION value=2>two select</OPTION> 1 </OPTGROUP> <OPTGROUP label="GROUP TWO"> <OPTION value=3>three select</OPTION> <OPTION value=4>four select</OPTION> </OPTGROUP></SELECT> 效果演示:
one select
12.表单都要加 name 值,name 值是一个标识,不同于 id,据我所发现,若是未定义 name 值,非 IE 浏览器下是无法通过 document.formid 获取到表单元素的.请看如 下代码及注释: view source
print? 01 <html> 02 <head> 03 <script> 04 window.onload=function(){ 05 alert(document.mrform.length); //所有浏览器均会弹出表单元素长度 06 alert(document.thinkform.length); //仅 IE 会弹出该表单元素长度 07 } 08 </script> 09 </head> 10 <body> 11 <form name="mrform" id="thinkform" action="#"> 12 ...... 13 </form> 14 </body> 15 </html> 13.同一行上文字与图片垂直居中对齐方法:为图片与文字的共同父元素所有的 后代元素定义*{vertical-align:middle}; 例如: view source print? 1 @Mr.Think<IMG src="i/image.gif"> 只需定义 p*{vertical-align:middle}即可使文字与图片同行垂直居中. 14.同一行上文字与表单对齐方法: 设置表单元素第一字体为 Tahoma(Verdana 系列也可),并设置 vertical-align:middle.建设大家把这个约定写入 CSS RESET 中,能减小很多麻烦: view source print? body,button,input,select,textarea{font:12px/1.5 1 tahoma,arial,sans-serif; vertical-align:middle} 15.获取 m 至 n 间随机数的公式: Math.random()*(n-m)+m; 16.针对 ie6 下 png 背景显示问题,CSS 中可以这样解 决:_background:none;_filter:progid:DXImageTransform.Microsoft.AlphaIm ageLoader(sizingMethod=crop,
src=’http://mat1.gtimg.com/www/mb/images/openShadow.png’); 17.优先加载页面中的 Sprite 图(请参见 Google 首页源码): view source print? 1 if(document.images)new Image().src='images/sprite.png' 18.CSS 及 JavaScript 中,非注释类中文(CSS 中指字体),在最后优化时须转换成 Unicode 码,以避免编码错误时的乱码显示. 19.ie6/ie7 下若 overflow 失效, 一般是由于元素中有 relative 定位元素,可为 为父级元素添加 position:relative 解决. 20.ie6 下 border-color:transparent 无效解决方法: view source print? _border-color:#ff0 #047 #047 #047;_filter:chroma(color=#047)/*#047 1 颜色值将被透明*/
第二篇:前端开发总结
----B-----
http://a.html:静态
http://a.jsp(java-outputStream->HTML+CSS+JS->IE):动态
http://HelloServlet(java-outputStream->HTML+CSS+JS->IE):动态
HTML
基础标签:div/p/table/hn/a…
<table>-<tr><td><th><caption>:cellpadding cellspacing border width=”300|40%”
标签语法:<div style=”|’……….”>…</div> : <br/>
描述页面元素:显示
Html功能:
显示:基础标签
收集:<form action=”a.jsp” method=”post”> <!--中文乱码-->
<input type=”text/password/file/button/radio/checkbox…” name=”” value=””/>
<textarea>
<select><option>
<button type=””/>
</form>
CSS
选择器:html 类 ID
ID>类>html
<a style>:内联CSS
内部:<head><style>3种选择器….</style></head>
外部:my.css {3种选择器}
JS
事件:<a onXXXXX=”alert(‘hello’)” />
dom:
document.getElementByID()
document.getElementsByName()
document.getElementsByTagName()
var:不严格区分类型
//var age
age=10;
window,history,location,screen
alert confirm
//表单提交方式
document.forms[0].submit()
…………..
Js验证表单数据
------------------------------IEàsubmit-----------------------------------------
Socket:java.net.*
ServerSocket:Socket
C(Browser:IE:FF) S(Tomcat)
Socket s = new Socket(“IP”,8080) ServerSocket ss = new ServerSocket(8080)
ss.accept();
in = s.getInputStream() in
out=.s.getOutputStream() out
HTTP:FTP:SMTP:POP3
HTTP:
Request
POST|GET /hello.jsp HTTP/1.1
HEADERS……..
HEADERS……..
BODY
Response
HTTP/1.1 200 OK
HEADERS……..
HEADERS……..
BODY
Tomcat:Request msgàHttpServletRequest
HttpServletRequest(out)àBrowser
判断URL—对照web.xml
if url ==Html----response(out)---write(a.html)---flush
if url ==jsp----jspc---a_jsp.java---javac---a_jsp.class---执行servlet流程
if url ==servlet---判断要执行servlet实例是否存在
if not exist {new Servlet()—init():1àThread【service():n】}
if exist {Thread【service():n】}
servlet—destory():1
doGet (request,response)
doPost(t,response){
//状态追踪
Cookis:Session
URL重写:客户端禁止cookie
Response.encodeURL()
<c:url>
request.getCharacterEncoding(“UTF-8”);
request.getParameter(”myage”);
…………..
new DAO().insert();//jdbc—sql—DB
new Logic().do();
Response.setCharacterEncoding(“UTF-8”)//中文
//回应
Response.getWriter().print(“”);
//资源访问
Request.getRequestDispatcher(“a.jsp”).forward(request,response);
Request.getRequestDispatcher(“a.jsp”).include(request,response);
Response.sendRedirect(“www.google.com”);
//scope
[page]/request/session.application
Jsp
标签用法:
表达式<%=%>/脚本<%%>/表明<%!%>
EL==<%=%>
JSTL==脚本<%%>
IE—servlet(准备数据:dao logic:scope)-forward--???.jsp---IE
(<c:out>能过滤非法字符)
doGet(){
new DAO(){
Class.forName(“”);
Connection conn;
stmt = conn.createStatement();
pstmt =conn.preparedStatement("select * from a where id=?");
int = stmt.executeUpdate(“insert/update/delete”);
rs = stmt.executeQuery(“select”)
while(rs.next()){re.getType(index|colName)};
//sql 注入
//ACID(意义)
Conn.setAutoCommit(false);
…..
Conn.commit();
Conn.rollback();//DCL:commit rollback
}}
ER===关系===NF===DDL(script)===DB
DML:select insert update delete
select:子查询、关联、连接
function-procedure:PL/SQL
imp exp