开始使用< !DOCTYPE HTML >吧

作者:pakey 发布时间:March 29, 2012 分类:WebDesign

不管是刚接触前端,还是你已经“精通”web前端开发的内容,你应该知道在你写html的时候需要定义文档类型;你知道如果没有它,浏览器在渲染页面的时候会使用怪异模式;你知道各个浏览器在怪异模式下对各个元素渲染是有差异的。所以你会写像这样的doctype:


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

好在现在的各种web开发工具都足够强大,支持插入模板代码,因此你并不需要把这又长又臭的doctype一个个字母的敲出来。但是如果你受够了它,你也许可以尝试下面这个写法:

CSS浏览器兼容问题集 相当的全

作者:pakey 发布时间:March 12, 2012 分类:WebDesign

CSS对浏览器的兼容性有时让人很头疼,或许当你了解当中的技巧跟原理,就会觉得也不是难事,从网上收集了IE7,6与Fireofx的兼容性处理方法并整理了一下.对于web2.0的过度,请尽量用xhtml格式写代码,而且DOCTYPE 影响 CSS 处理,作为W3C的标准,一定要加 DOCTYPE声名. 

CSS技巧 

1.div的垂直居中问题 vertical-align:middle; 将行距增加到和整个DIV一样高 line-height:200px; 然后插入文字,就垂直居中了。缺点是要控制内容不要换行 

2. margin加倍的问题 设置为float的div在ie下设置的margin会加倍。这是一个ie6都存在的bug。解决方案是在这个div里面加上 display:inline; 例如: <#div id=”imfloat”> 相应的css为 #IamFloat{ float:left; margin:5px;/*IE下理解为10px*/ display:inline;/*IE下再理解为5px*/} 

3.浮动ie产生的双倍距离 #box{ float:left; width:100px; margin:0 0 0 100px; //这种情况之下IE会产生200px的距离 display:inline; //使浮动忽略} 这里细说一下block与inline两个元素:block元素的特点是,总是在新行上开始,高度,宽度,行高,边距都可以控制(块元素);Inline 元素的特点是,和其他元素在同一行上,不可控制(内嵌元素); #box{ display:block; //可以为内嵌元素模拟为块元素 display:inline; //实现同一行排列的效果 diplay:table; 

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

javascript的屏蔽功能

作者: 发布时间:December 13, 2010 分类:WebDesign

1.1 屏蔽键盘所有键

<script language="javascript">
<!--
function document.onkeydown(){

event.keyCode = 0;

event.returnvalue = false;
}
-->
</script>

教你怎么快速保存CSS中的图片

作者: 发布时间:August 17, 2010 分类:WebDesign,Tool

什么叫“CSS中的图片”? 简单的说就是镶在CSS样式表中的图片。当我们用浏览器的“另存为”功能保存网页时,由于很多写在CSS样式表里面的图片都下载不到,所以会导致下载的网页打开的时候就面目全非了;或者,我们可以更通俗的认为这也是网页图片的一种加密形式吧。那么,对于这样的图片保存,就没有好办法来解决了吗?NO!看看如下推荐的几种保存方法吧。

innerHTML-引发“未知的运行时错误”

作者: 发布时间:July 15, 2010 分类:WebDesign

今天碰到这个极度郁闷的报错,搞了大半下午,才发现是ie的问题,忍不住大骂。例子是这样的:页面中有多处能出发菜单,并且菜单出现在触发点的旁边,为保证页面上不能同时显示两个以上的菜单,我的做法是隐藏一个div,用作菜单容器。每个触发点根据实际情况在菜单容器里innerHTML各种html代码,再用appechChild方法把菜单续加到(其实就是剪切)到触发点的旁边。代码如下:

<script type="text/javascript">
function product(obj){
var menu = document.getElementById("abc");
menu.style.display = "";
menu.innerHTML = "产品的菜单";
obj.parentNode.appendChild(menu);
}
function news(obj){
var menu = document.getElementById("abc");
menu.style.display = "";
menu.innerHTML = "新闻的菜单";
obj.parentNode.appendChild(menu);
}
</script>
<div id="abc" style="border:1px solid #000; background:#eee; position:absolute; display:none; height:200px; font-size:12px; padding:1em"></div>
<p><input type="button" value="产品" onclick="product(this)"></p>
<p style="margin-left:130px"><input type="button" value="新闻" onclick="news(this)"></p>

上面两个函数仅仅2个中文字符不同,但触发其中任一个函数,再触发第二个,就会报“未知的运行时错误”,相当诡异。左看右看,都没看出什么破绽,RPWT?No way!即刻询问谷歌,答曰“innerHTML 对下面的对象只读: COL,COLGROUP,FRAMESET,HTML,STYLE,TABLE,TBODY,TFOOT,THEAD,TITLE,TR”,谷歌似乎也不太清楚,真晕,这个让人费神的破IE。谷歌虽然没有爽快地告诉我答案,却也才知道原来ie下还有innerHTML属性为只读的元素,瀑布汗~~~,根据这一启发,修改了几次页面的标签,有了一个惊人的发现,只要把触发点父节点p元素改用div元素,程序立马正常!hoho~~~,原来divp除了语义不同,其作为文档对象(xml节点)的属性也不同。无语~

解决ie6-window.resize-事件无效

作者: 发布时间:June 6, 2010 分类:WebDesign

在做2.5的后台的时候,采用了框架页的时候发现window.resize在ie6下居然只有在放大的时候才会生效,缩小的时候并不会生效!

<html xmlns=”http://www.w3.org/1999/xhtml”>
<head>
 <title> New Document </title>
 <script language="JavaScript">
 <!--
 function a(){
       document.getElementById("bodyheight").innerText = document.body.clientHeight;
       document.getElementById("documentheight").innerText = document.documentElement.clientHeight;
   }
 //-->
 </script>
</head>

<body>
   <p>
       <a href="javascript:a()">click here</a>
       <br/>
           document.body.clientHeight = <span id="bodyheight"></span> px
       <br/>
           document.documentElement.clientHeight = <span id="documentheight"></span> px
   </p>
</body>
</html>

最后发现:
去掉头部html dtd声明即可!

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

 


但是这样不符合W3C标准规范了

后来研究一下

取得bodyHeight 高度的语句是 var bodyHeight = document.documentElement.clientHeight;

于是在网上查找相关的资料,结合美工页面和程序的页面对比。

document.body.clientWidth ==> BODY对象宽度
document.body.clientHeight ==> BODY对象高度
document.documentElement.clientWidth ==> 可见区域宽度
document.documentElement.clientHeight ==> 可见区域高度

用一下代码测试

XML/HTML 代码复制内容到剪贴板



测试结果:

当页面上有DOCTYPE的时候,值为

document.body.clientHeight = 54px
document.documentElement.clientHeight = 729px

当没有DOCTYPE时

document.body.clientHeight = 729px
document.documentElement.clientHeight = 0px

可以看出,document.body.clientHeight 和 document.documentElement.clientHeight 的区别。

就是因为少了DOCTYPE 所以 document.documentElement.clientHeight 的值为0。而换成 document.body.clientHeight就好了。

为什么少了DOCTYPE,document.documentElement.clientHeight会为0呢?

这是W3C标准的支持。

恩ps 一个小技巧 resize的

window.onload=function()
{
   yourfunction();
}
window.onresize=function()
{
    yourfunction();
}

js弹窗代码-可以指定弹出间隔

作者: 发布时间:February 27, 2010 分类:WebDesign

今天,一个小mm让我帮他写一个弹窗代码,要求可以设定间隔多长时间弹出,很明显,这需要用到js的cookies。

不过js语言基本上只能看懂,无法做到自己写,只能靠百度大叔了,百度一下,果然一大堆代码,从中挑了一个得到,经过修改,成功达到预期要求!

代码如下:

一个CSS在线格式化、压缩工具

作者: 发布时间:February 23, 2010 分类:WebDesign

html代码的在线格式化工具很多,但是css确几乎没有,找了半天找到了这个东西,不敢独享,分享给大家


 

 

以下是源代码