分类“Web技术”的存档

  • 28
  • 4月

刚刚发现在IE下侧栏“最近发表”中的文章题目如果过长会自动换行,明显影响显示效果,于是决定进行修补,目的是使文字过长时不自动换行,而是进行隐藏。

被修改的类是“#sidebar ul ul li, #sidebar ul ol li”,这个用来重定义侧栏li样式的类。

关键代码为以下3句:

overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;

前两句一看就明白了,也没什么问题,第3句是IE专有属性,ellipsis表示当对象内文本溢出时显示省略标记(…) 。

但这样只是解决了外观的问题,浏览者还是无法看到完整的标题。于是修改模板目录下的sidebar.php,在<a href=”<?php the_permalink() ?>” ><?php the_title() ?> </a>这一句上a的属性里加一个title,变为:<a href=”<?php the_permalink() ?>” title=”<?php the_title() ?>”><?php the_title() ?> </a>,这样只要将鼠标徘徊在链接上时,浏览器会显示一个浮动提示框,将完整的标题显示给浏览者。

  • 28
  • 4月

之前一直比较懒,再加上之前做《希望泉》时一段一段向段首敲空格敲烦了,写Blog时一直在使用英文语法——从来不在段首上加空格。今天升级Blog,想起之前看过的一篇文章《用CSS控制段首缩进》,于是找到主题style.css中表示正文样式的.narrowcolumn .entry类,在其中加了行“text-indent: 2em;”。

OK,现在每段都有两个汉字的缩进了——本Blog进一步汉化!

  • 11
  • 4月

昨天做《希望泉》时发出现了一个非常奇怪的问题,我在外连的css.css中将正文的字体设为“微软雅黑”、字号设为1.1em。在DreamWeaver中显示出了想要的效果。然而在FF和IE中却出现了奇怪的一幕:字号被成功修改,字体却完全不理会我的设置,全部字体都是系统默认的“宋体”…

仔细看了半天css.css这个文件,明明一切语法都是对的。并且与上期用法也都一样,为什么字体就不起作用呢?

最后突然灵机一动——是不是又是可恶的文字编码问题?一看,果然。前几天为了开发php,将机子上所有的Web编辑器的默认保存格式改成了utf-8,而《希望泉》的默认编码一直是gb2312。浏览器在解析外连的css和JavaScript时会默认使用调用它的网页的编码格式。于是用gb2312来解析utf-8的文件。在解释英文时不会有任何问题,中文则不会被正确识别,于是便出现了字号正常,字体无法正常显示的问题。

关于gb2312和utf-8这类文件编码的问题,参见我之前一篇相关的文章:
关于字符编码

  • 18
  • 3月

寒假里学PHP,照书上做了个简单的CMS:SuperFastOnlineNews,也没有书附的光盘,靠着书上几幅截图和部分代码,终于大概把它做了出来。但最后剩一个为文章添加Keywords的页面,突发奇想:拿它练练Ajax吧。
结果一练就练到了今天晚上……

中间又是JavaScript与PHP传输中文乱码、IE对标准DOM表格操作的不兼容,再加上没有一个好的JS开发、调试环境,完成这一页耗费的时间、精力绝对不比做出整个前面那些php少。

太期待有个JavaScript的IDE了……

  • 17
  • 3月

在网上搜索了半天得到的东东,还没实验过^_^

三句真言:

SET NAMES utf8;
SET CHARACTER SET utf8;
SET COLLATION_CONNECTION=’utf8_general_ci’;

建立conn时,query一下这三个语句,再进行别的操作。

解释:

有两个语句可以改变connection character set:
1. SET NAMES ‘charset_name’;
2. SET CHARACTER SET charset_name;

SET NAMES告诉服务器客户端将使用什么样的字符集来发送SQL命令,也同时指定服务器返回给客户端所使用的字符集。

SET NAMES ‘x’ 等效于:
SET character_set_client = x;
SET character_set_results = x;
SET character_set_connection = x;
(注: SET character_set_connection = x; 语句同时也自动指定了字符集x的默认collation为 collation_connection的值,但也可以用 SET NAMES ‘charset_name’ COLLATE ‘collation_name’来提定你想使用的collation。)

SET CHARACTER SET和SET NAMES作用相似,但它将连接的字符集和collation设置为默认数据库的字符集和collation。

SET CHARACTER SET x 等效于:
SET character_set_client = x;
SET character_set_results = x;
SET collation_connection = @@collation_database;
(注:SET collation_connection同时也会自动设置character_set_connection。)

如果不希望MySQL在返回结果时进行转换,可以使用SET character_set_results = NULL;语句

  • 17
  • 3月

PHP发送中文、Ajax接收
只需在php顶部加入一句:

header('Content-type: text/html;charset=GB2312');

xmlHttp会正确解析其中的中文。

Ajax发送中文、PHP接收
这个比较复杂:
Ajax中先用encodeURIComponent对要提交的中文进行编码
PHP中:

$GB2312string=iconv( 'UTF-8', 'gb2312//IGNORE' , $RequestAjaxString);

PHP写入MySQL数据库
建立conn时,query一下set names “gb2312”

  • 14
  • 2月

一般在一个有滚动条的网页上,由于窗口边框和滚动条占用了一部分,页面的实际可用宽度大约是屏幕水平分辨率-20左右的样子,例如在我的这台电脑,屏幕分辨率是1024×768,在不同浏览器默认界面下测得的网页可见区域大小为:
FireFox2:1007×606
IE6:1003×600
IE7(无菜单栏):1003×620
IE7(有菜单栏):1003×593
Opera9:1005×629

可见,做网页时,如果对宽度为1024的显示器,想不出现水平滚动条,1003还是个比较不错的宽度。对其他的分辨率,屏幕宽度-21应该是个合适的选择。

  • 08
  • 2月

前一阵子从网上看到了一个非常好的制作CSS菜单的工具:Infinite Menus。完全可视化界面,制作出来的菜单那叫精美……
下载地址:http://www.opencube.com/download.asp

但软件是收费的,而且说得也不是很明白:制作和在本地调试期间是看不到收费的迹象的,但一旦发布到网上,每次撕开网页都会弹出个对话框“Infinite Menus must be purchased for Internet use.”相当令人郁闷。

仔细研究了一下它生成的代码,发现虽然做了隐藏,但要求注册的代码也做的太不够健壮了,只要把它生成的那个ocscript.js最后的这一段代码删除:

ims1a="Add your unlock code here.";;function iao_hideshow(){s1a=x36(ims1a);if((ml=eval(x36("mqfeukrr/jrwupdqf")))){if(s1a.length>2){for(i in(sa=s1a.split(":")))if((s1a=='hidden')||(ml.toLowerCase().indexOf(sa[i])+1))return;} eval(x36("bnhvu*%Mohlrjvh$Ngqyt\"pytv#ff\"syseketgg$gqu$Jpwisphx!wvi/$,"));}};function x36(st){return st.replace(/./g,x37);};function x37(a,b){return String.fromCharCode(a.charCodeAt(0)-1-(b-(parseInt(b/4)*4)));}

OK,再也不会有提示了!
ps:其实分析这段代码是件相当有意思的工作,你也可以试一试!(提示:eval函数可以执行字符串变量中的代码)

  • 06
  • 2月

刚刚从Google上搜到的一个用来显式固定菜单的代码。用来在页面上显示固定位置的菜单的。上次自己做《希望泉》的时候只知道position的fixed不能被IE6支持,只好用条件注释:

<!--[if lte IE 6]>
<script language="javascript">
document.getElementById("menu").style.cssText="width:80px; z-index:999999; position:absolute; top: 100px; left: 20px;";
</script>
<![endif]-->

将IE6下的属性换成absolute。没想到这个代码这么简单就实现了固定菜单对浏览器的“通吃”,学习…

<html>
<head>
<title>永远固定不随页面滚动的菜单 www.div-css.com</title>
<meta http-equiv=content-type content="text/html; charset=gb2312">
</head>
<body>

<div style= "position:fixed !important; top/**/:0px;
position:absolute; top:expression(offsetParent.scrollTop);
width:100%;">
<div  style= "width:100%; overflow:hidden; background:red; font-size:13px; ">
menu位置:<a xhref="http://www.div-css.com" mce_href="http://www.div-css.com"> www.div-css.com dic+css技术教程资料下载</a>
</div>
</div>

<div style="margin-top:30px;">
IE Firefox下测试通过
1<br />2<br />3<br />4<br />5<br />6<br /><br />
1<br />2<br />3<br />4<br />5<br />6<br /><br />
1<br />2<br />3<br />4<br />5<br />6<br /><br />
1<br />2<br />3<br />4<br />5<br />6<br /><br />
1<br />2<br />3<br />4<br />5<br />6<br /><br />
1<br />2<br />3<br />4<br />5<br />6<br /><br />
</div>
</body>
</html>
所有标签:.net Ajax Java javascript Linux map MySQL RSS TD-SCDMA Ubuntu vim web Win7 乱码 基础知识 备份 奥运会 希望泉 性能 缓存 编程