分享、学习、提高
2007/05/10 14:50
Tags: ,
看到了好几个视频和Flash站,头部代码有嵌了一个swfobject.js,好奇之于搜索了一下。

原来这是国外人开发的一个JS,用于兼容各浏览器对Flash播放的不同。目前最新的是v1.5,这里下载最新版的SWFObject:http://blog.deconcept.com/swfobject/swfobject_source.js
2007/01/23 21:11
Tags:
1.子选择器
IE6及更低版本不支持子选择器,这个例子就对IE5-6/Win隐藏透明的背景PNG图像。IE7支持子选择器,因此在IE7中也有效。
html>body{background-image:url(bg.png)}

2.属性选择器
现代浏览器(Safari,Firefox)均支持属性选择器,但IE6及更低版本不支持。以下示例使用属性选择器在符合标准的浏览器中将背景png应用于内容。
div[id="content"]{background-image:url(bg.png)}

IE的有条件注释
<!-- [if IE]
<style type="text/css">
@import ("ie.css")
</style>
-->
IE5和更高版本会接收样式 表ie.css,其它浏览器只会看到一些被注释掉的文本。
还可以使用有条件注释指定一种特定的浏览器,比如IE5.0:
<!-- [if IE 5]
<style type="text/css">
@import ("ie50.css")
</style>
-->
还可以指定一组浏览器,比如IE5.5和更高版本:
<!-- [if gte IE 5.5000]
<style type="text/css">
@import ("ie55up.css")
</style>
-->
或IE5和IE5.5:
<!-- [if lt IE 6]
<style type="text/css">
@import ("ie55up.css")
</style>
-->

这种方法需要要将注释放在HTML中。

带通过滤器
此方法是Tantek Celik基于浏览器解析错误创建的一系列过滤器(http://tantek.com/css/Examples/),允许使用@import规则将样式表提供给选择的浏览器。

将CSS传递给IE5和5.5
@media tty{
i{content:"\";/*" "*/}} @import 'ie5x.css'; /*";}
}/* */
符合标准的浏览器看到的是
@media tty{
i{content:"Blah, blah blah";}
}
实际上会忽略整个规则。

但是在IE 5.x不理解转义字符,最终应用@import规则,读取了ie5x.css。

另一种方法:

/*\*//*/
@import "ie5mac.css";
/**/

IE5下看到的是:
/* blah */
@import "ie5mac.css";
/**/

其它浏览器正确地忽略转义的元素,看到:
/* blah *//*
blah
*/


阅读《CSS Mastery:Advanced Web Standards Solutions》,中文名《精通CSS-高级Web标准解决方案》中,以上是阅读笔记,加以自己的理解和说明,只记录偶觉得重要、容易遗忘及原先不知道的知识。
2007/01/23 20:47
Tags:
1.星号HTML
HTML元素是网页上的根元素,但IE7以下的版本有一个匿名的根元素,因此需要用* html来指定。

a:hover{border:1px dotted black;}
* html a:hover{border-style:solid;}

2.IE/Mac注释反斜线
IE5错误地允许在注释内部进行转义,其它浏览器都会这个转义,并且应用后面的规则。但是,IE5/Mac会认为注释仍然没有结束,因些会把下一个结束注释字符串前的所有字符忽略。

/* Hiding from IE5/Mac \*/
#nav a{width:6em;}
/* End Hack */

3.结合了星号HTML和注释反斜线方法,称之为Holly(发明人:Holly Bergevin)。
通过这两个规则,就可以对IE6和更低版本应用规则:

/* Hiding from IE5/Mac \*/

* html{height:1px;}

/* End Hack */

可参考站:http://www.positioniseverything.net

4.!important和下划线方法

#nav{position: fixed !important;
position: static;
}
IE4-6会忽略第一个声明并且应用第二个,其它浏览器则应用第一个声明,因为它使用了!important关键字,这提高了此规则在层叠中的优先级。

下划线方法与!important相似,IE6及更低版本会忽略下划线,因此应用第二个声明。
#nav{position: fixed;
_position: static;
}



阅读《CSS Mastery:Advanced Web Standards Solutions》,中文名《精通CSS-高级Web标准解决方案》中,以上是阅读笔记,加以自己的理解和说明,只记录偶觉得重要、容易遗忘及原先不知道的知识。
2007/01/23 09:32
Tags: ,
最近做站用的是UTF-8编码,某htm登录页面,其中代码为
<title>管理员登录</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
每次打开,均是一片空白,查看右键-编码,显示是GB2312。要手功改为UTF-8后才能正常显示页面。在FF下是可以正常显示的。
而其它php页面,因为在头部指定了@header('Content-Type: text/html; charset=utf-8');倒是可以正常显示。只指定meta对IE6似乎无效?

和同事研究了一下,发现原来要这样:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>管理员登录</title>

也就是把meta编码放在title之前,这样在IE下才会先读取meta指定的编码。

引用


在<head></head>之前,把"Content-Type"放在最前面,便可以解決这样的问题了。

原因:

IE 解析网页编码时是 HTML 內的标识优先的,然后是 HTTP header ;而mozilla 系列的浏览器刚刚好相反。

一般情况在,很多人是把<title></title>排在最前面,并且在title中就出现了UTF-8中文,这样, IE在解析时,就先遇到UTF-8,不往下解析了,因此必须把如果把meta放在UTF-8出现之前,这样IE才能判断这个网页是以UTF-8编码的。

总之:
无论是 PHP、JSP、ASP 或其他动态网页的脚本语言,如果需要作编码设定,最好放在最前面。

来自:解决web服务器各种应用的乱码问题



参考Blog:UTF-8字符集网页在IE上会显示空白问题的解决方案
2007/01/18 15:45
Tags:
             <select name="classid" multiple>  
                 <option value="1">1</option>  
                 <option value="2">2</option>  
                 <option value="3">3</option>  
                 <option value="4">4</option>  
                 <option value="5">5</option>  
                 <option value="6">6</option>  
                 <option value="7">7</option>  
             </select>  
类似代码,选中几个后,提交,处理页只能接收到你选择的最后一个选项:(

我整理了两种方法。
第一种方法:js处理

<script type="text/javascript">  
function  checkform(oThis)  
{  
          var oData = oThis.classid.options;
          for(var  i=0;i<oData.length;i++){
             if(oData[i].selected) oThis.arrclass.value  +=  oData[i].value  +  ",";  
          }
          alert(oThis.arrclass.value);
          return  true;  
}  
</script>

<form action="?action=saveedit" method="post" onsubmit="checkform(this)">
             <select name="classid" multiple>  
                 <option value="1">1</option>  
                 <option value="2">2</option>  
                 <option value="3">3</option>  
                 <option value="4">4</option>  
                 <option value="5">5</option>  
                 <option value="6">6</option>  
                 <option value="7">7</option>  
             </select>  
             <input type="hidden" name="arrclass" value="">
</form>

加了一个隐藏的字段,用于接收多选的实现value值,然后提交。
比如选中3,5,6选项,点提交后,弹出3,5,6,表示提交过去的数据是正确的。

第二种方法:用数组
方法较简单,只是需要在接收页面做些处理。
把select那句改成:<select name="classid[]" multiple>即可。
选中3,5,6选项,此时接收页面
 print_r($_POST['classid']);
 echo implode(",",$_POST['arrclass']);
分别输出:
Array ( [0] => 3 [1] => 5 [2] => 6 )

3,5,6

呵呵,成功!
分页: 3/4 第一页 上页 1 2 3 4 下页 最后页 [ 显示模式: 摘要 | 列表 ]