显示标签为“技术”的博文。显示所有博文
显示标签为“技术”的博文。显示所有博文

2008年5月27日星期二

页面设计:层的水平、垂直居中

如果只需要层的水平居中相对来说很简单,如下CSS定义:

   1: body { text-align:center; }
   2: div { width:80%;margin-left:auto;margin-right:auto;text-align:left; }

而垂直居中时,如果不定义层的绝对高度,在IE浏览器下可以借助CSS的expression,非IE浏览器就只能使用javascript,这里不做讨论。代码如下:



   1: div { 
   2:     width:60%;
   3:     height:60%;
   4:     position:absolute;
   5:     top:50%;
   6:     left:50%;
   7:     margin-top:expression(parseInt(this.offsetHeight/2)-this.offsetHeight);
   8:     margin-left:expression(parseInt(this.offsetWidth/2)-this.offsetWidth);
   9: }

定义层的绝对高度将很简单,其实就是使用负外边距的技巧:



   1: div { 
   2:     width:600px;
   3:     height:400px;
   4:     position:absolute;
   5:     top:50%;
   6:     left:50%;
   7:     margin-left:-300px;
   8:     margin-top:-200px;
   9: }

2007年11月22日星期四

SqlServer2005,拆分一组按特定分隔符排列字符串函数(表值函数)

今天做项目时有需要用到SqlServer拆分字串的函数,懒得自己写就在网上找了一下,找到这个,后来测试时发现两个问题:最后一组值取不到,连续的两个分隔符返回空值或 0。很显然这个函数不能用。

其拆分的原理是:从第一个字符或分隔符的下一个字符开始,查找下一个分隔符,然后取出其中的值并插入到一个临时表,最后返回这个临时表。这时候有2个需要注意的地方:需拆分字串的最后一个字符并不一定是分隔符,所以需要判断;两个分隔符之间的值为空时需要跳过。

修改后的代码如下:

CREATE FUNCTION fn_Splitor (
    
@array nvarchar(4000),
    
@separator char=','
)
RETURNS @tbls TABLE (Item int)
as
BEGIN
    
if(@array is null or len(ltrim(rtrim(@array)))=0)
        
return;

    
DECLARE @item nvarchar(4000)
    
DECLARE @cur  int
    
DECLARE @pos int
    
DECLARE @len  int    --字符串的长度
    set @cur=1

    
SET @len=len(@array)
    
WHILE (@cur<=@len)
    
BEGIN
        
set @pos=CharIndex(@separator,@array,@cur)
        
-- 如果有连续两个分隔符@separator,则跳过此次循环
        if(@pos=@cur)
        
begin
            
set @cur=@cur+1
            
continue
        
end
        
if(@pos>0)
       
    begin
               
set @item=SUBSTRING(@array,@cur,@pos-@cur)
                set @cur=@pos+1
           
end
        
else
           
begin
               
-- 循环已到了@array的末尾,在末尾并不包含分隔符@separator。
                set @item=SUBSTRING(@array,@cur,@len-@cur+1)
               
set @cur=@len+1
           
end
        INSERT INTO @tbls VALUES(@item)
    
END
    
RETURN
end
GO

2007年1月27日星期六

网易的游戏规则

刚才在cnBeta上看到的这篇文章[网易相册停工惹怒众多网民],网易相册从去年底出现问题,直到现在还没解决。前年我也用过这个的相册,后来需用ActiveX插件上传图片,而我又最讨厌给浏览器装插件,并且Firefox也不支持,就放弃了。

作为国内最大的门户之一,网易完全有能力把这个产品做得很好,也许正是由于游戏的规则才导致这样的结果,也难怪客服论坛的版主公开表示“如果不想放弃您的网易相册,您只能遵循网易的游戏规则”。由于免费,不能带来利益,没有利益,如何投入?简单至极的规则。

即使不能提供稳定的服务,至少还得保证安全吧。是吗?请看下图:

能看出什么来吗?还记得工行的那个漏洞吗?嘘,请小声点。

2006年1月19日星期四

MSN 的一些技巧

  • 隐藏用户名:MSN Messenger中设置“我的显示名称”在正常情况下是不能为空的,即算留个空格也会用邮箱地址代替。其实只要一点点技巧就可以的,方法很简单:单击“工具→选项”,在“个人设置”选项卡中的“我的显示名称”框中删除当前字符串,然后按住“Alt”键,输入数字0160或者225。[update: msn8中,输入225会出现一个乱码,不是空格了。]
  • MSN的秘密图示:
    (xx) = xbox
    (tu) = 乌龟
    (h5) = 拍手
    (yn) = 手指交叉
    (brb) = 猫脸
    (st) = 下雨
    (ci) = 烟
    (au) = car
    (pl) = 金属圈
  • 用Mess Patch插件,可以去掉闪屏保护,移除广告,多重登陆......

  • 感觉msn像是一头喘着粗气地老牛,语音功能不行,视频更差。

    2006年1月18日星期三

    Google Ideas: Google使用不完全手册

    有时候要在 Google 中搜索某个东西,经常会遇到打不开的情况,很是烦躁,:->
    收集一些使用技巧,以备需要。

    1. 一些其他IP地址入口
      1. Google 备用入口:
      2. 64.233.161.104
      3. 64.233.167.104
      4. 64.233.189.104
      5. 66.102.7.104
      6. 66.249.81.99
      7. 216.239.39.99 [地址失效]
      8. 216.239.57.99
      9. 216.239.63.99
    2. 可利用的Google操作符: 空格;OR;-;双引号 以及通配符 *
      前三个操作符就是我们常见的“与”“或”“非”。如我们要搜索如下网页:要求必须含有“搜索引擎”和“历史”,但是没有“文化”,可以含有以下关键字中人任何一个或者多个:“Archive”、“蜘蛛”、“Yahoo”。
      搜索条件的写法:搜索引擎 历史 Archie OR 蜘蛛 OR yahoo-文化

      Google是基于单词搜索的,因此如果你想用一个短语做关键字,必须加双引号,否则其中的“空格”会被当作“与”操作符。

      Google目前可利用的通配符只有“*”,“*”可以为任何字符甚至短语。
    3. Google分词
      当我们搜索“www的历史”的时候,Google实际上把这个短语分成三部分,“www”、“的”和“历史”分别来检索。所以尽管我们输入了连续的“www的历史”,但搜索引擎还是把这个短语当成三个关键字分别检索。并且 Google 对一些网络上出现频率极高的英文单词,如“i”、“com”、“www”等会做忽略处理。

      如果要对忽略的关键字进行强制搜索,则需要在该关键字前加上英文的“+”号。

      如搜索条件更改为:+www +的历史 internet

      这样这两个关键字就起作用了。
    4. site语法
      如我们要搜索:在著名IT门户网站ZDNET和CNET网站上搜索一下关于搜索引擎技巧方面的资讯。

      搜索条件写法:"search engine" tips site:www.zdnet.com OR site:www.cnet.com

      注意:site后的冒号为英文字符,而且冒号后不能有空格,否则,“site:”将被作为一个搜索的关键字(这一点同样适合其他语法格式)。此外,网站域名不能有“http://”前缀,也不能有任何“/”的目录后缀;网站频道则只局限于“频道名.域名”方式,而不能是“域名/频道名”方式。
    5. 搜索特定的二进制文档
    6. 可以通过使用filetype语法来实现。
      目前Google支持的格式有:.xls;.ppt;.doc;.rtf;.pdf;.swf等
      如我们要搜索:资产负债表的Office文档
      搜索条件写法:资产负债表 filetype:doc OR filetype:xls OR filetype: ppt
    7. 指定URL链接中的关键字进行搜索
      可以通过使用inurl;allinurl语法来实现。
      inurl语法返回的网页链接中包含第一个关键字,后面的关键字则出现在链接中或者网页文档中。因为有很多网站把某一类具有相同属性的资源名称显示在目录名称或者网页名称中,比如“MP3”、 “GALLARY”等。于是我们就可以用inurl语法找到这些相关资源链接,然后用第二个关键词确定是否有某项具体资料,可以达到精确定位的作用。

      如我们要:查找midi格式的“沧海一声笑”
      搜索条件写法为:inurl:midi “沧海一声笑”

      allinurl语法返回的网页的链接中包含所有的关键字,这个查询的关键字只集中于网页的链接字符串。
      示例:查找可能具有PHF安全漏洞的公司网站。通常这些网站的CGI-BIN目录中含有PHF脚本程序,表现在链接中就是“域名/cgi-bin/phf”。
      搜索条件写法:allinurl:”cgi-bin” phf +com

      注意:inurl:后面不能有空格,Google也不对URL符号如“/”进行搜索。例如,Google会把“cgi-bin/phf”中的“/”当成空格处理。
    8. 指定网页标题中的关键字进行搜索

      可以通过使用intitle;allintitle语法来实现,用法类似于inurl和allinurl。只是后者是对URL进行查询,而前者是对网页的标题栏进行查询。网页设计的一个原则就是要把主页的关键内容用简洁的语言表示在网页标题中。因此,只查询标题栏,通常可以找到相当准确的专题页面。

      示例:查找刘翔的照片集。
      搜索条件写法:“intitle:刘翔 "照片集"
    9. Google翻译
      可以去 http://www.google.com/language_tools?hl=zh-CN ,直接输入文字或网页地址。或者是在搜索过程中看看是否有“[ 翻译此页 BETA ]”的按钮,再看结果,应该大致能看明白。目前Google只支持拉丁语、法语、西班牙语、德语和葡萄牙文的翻译。
    10. 使用cache
      cache 用来搜索Google服务器上某页面的缓存,通常用于查找某些已经被删除的死链接网页,相当于使用普通搜索结果页面中的“网页快照”功能。
      如我们想查看:web-knowledge.com/commonwealth3/bbs/cgi-bin/phf页面的“网页快照”
      搜索条件写法:cache:web-knowledge.com/commonwealth3/bbs/cgi-bin/phf