开始使用< !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~~~,原来div与p除了语义不同,其作为文档对象(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 ==> 可见区域高度
用一下代码测试
测试结果:
当页面上有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确几乎没有,找了半天找到了这个东西,不敢独享,分享给大家
以下是源代码