显示列表

<style>
ul { width:500px; border:1px solid red; }
li { width:200px; float:left; }
</style>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
</ul>

这是在Firefox下
1.ul不指定高度
2.li指定了float属性
ul就会没有高度了,在IE和FF下会显示的不一样。

解决方法有三种
第一种:给ul属性 overflow:hidden;

第二种:给ul属性 float:left;

第三种
<style>
ul { width:500px; border:1px solid red; }
li { width:200px; float:left; }
</style>
<ul>
<li>1</li>
<li>2</li>
<li>3</li>
<li>4</li>
<div style=" clear:both; visibility:hidden;">
</ul>

查看全文 | 分类(网站编程) | 访问(735) | 编辑
 页面缓存问题2008-09-17

禁止浏览器从本地缓存中读取页面。
<meta http-equiv="pragram" content="no-cache">


<meta http-equiv="expires" content="0">
网页在缓存中的过期时间为0,一旦网页过期,必须从服务器上重新订阅。

查看全文 | 分类(网站编程) | 访问(75) | 编辑

用 align="absmiddle"
<img src="1.gif" align="absmiddle"/>

查看全文 | 分类(网站编程) | 访问(84) | 编辑

网站会员登陆机制

1.登录后,把用户信息写入在线用户表,并把 Username 和 Password 写入用户的 Cookie 中
2.访问页面时,读取 Cookie 中的 Username、Password,查询在线用户表,判断是否登录过
3.定时清理在线用户表中过期的用户

这样每次登陆用户访问页面时,只要查询在线用户表,不需要查询数据库中的用户表。
在线用户表是缓存表,不是一个数据表

C# 实现
InfoUser 类存放用户的信息
ArrayList 类中存放 InfoUser 类
当用户登录后,把用户的 InfoUser 类加入 ArrayList 类中,ArrayList 类是一个静态类
每次读取 Cookie 中的 Username、Password,再遍历 ArrayList 中的 InfoUser,如果配上,表示是登录用户。

查看全文 | 分类(网站编程) | 访问(120) | 编辑
 DIV自适应宽度2008-08-20

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DIV自适应宽度</title>
<style type="text/css">
<!--
.L { width:100px; background-color:blue; float:left;}
.R { width:100px; background-color:blue; float:right;}
.M { background-color:red; }
-->
</style>
</head>
<body>
<div style="width:500px;">
    <div class="L">left:100px</div>
    <div class="R">right:100px</div>
    <div class="M">自适应宽度</div>
</div>
</body>
</html>



1.自适应宽度的层不要指定宽度和float属性
2.自适应宽度的层物理的位置放在最下面
DIV自适应高度

标签:DIV 
查看全文 | 分类(网站编程) | 访问(1253) | 编辑
 DIV自适应高度2008-08-20

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>DIV自适应高度</title>
</head>
<style type="text/css">
.Panel { width: 500px; border:1px solid #222; overflow:hidden; }
.Panel .Left { width:200px; background-color:red; float:left; padding-bottom:30000px; margin-bottom:-30000px;}
.Panel .Right { width:300px; background-color:blue; float:right; padding-bottom:30000px; margin-bottom:-30000px; }
</style>
<body>
<div class="Panel">
    <div class="Left"></div>
    <div class="Right">1<br/>2<br/></div>
</div>
</body>
</html>



Left和Right是Panel下的两个子层,Right层高度不固定。实现Left和Right层的高度一样。
用padding-bottom:30000px; margin-bottom:-30000px;把子层拉高,再父层用overflow:hidden;遮蔽
DIV自适应宽度

标签:DIV CSS 
查看全文 | 分类(网站编程) | 访问(345) | 编辑

<style type="text/css">
div,table { margin:auto; }
li { list-style-position:outside; }
</style>

1.表格和层的居中

FF不指定是靠左面。IE是居中。

2.li
FF 默认列表项目标记放置在文本以外
IE 默认列表项目标记放置在文本以内

标签:CSS 
查看全文 | 分类(网站编程) | 访问(74) | 编辑

如有多个网站,它们页面的编码不一样,有些是 UTF-8 编码,有些是 GB2312 编码。
要发评论到一个共同的页面,这时如果双方的编码不一样,那么中文字就成乱码了。
可以先把数据转成URL编码格式,再发送。还要指定编码,这样接收时才能对应解码。

URL编码格式,如“汉”字:
GB2312编码:BABA URL格式:%BA%BA
UTF-8 编码:E6B189 URL格式:%E6%B1%89
就是在每个字节编码前加个百分号。数字、字母不变,空格用加号代替。


页面是GB2312编码,发表代码:

1) 传送UTF-8编码
<script language="JavaScript">
function OnSubmit()
{
    var obj = document.getElementById('Content');
    var obj2 = document.getElementById('Content2');

    obj.value = encodeURI(obj2.value); // 返回 UTF-8 编码 URI 的字符串

    return true;
}
</script>

<form method="post" action="http://www.utf8.com/post_save.aspx" onsubmit="return OnSubmit();">
<textarea name="Content2" rows="10" cols="60"></textarea>
<textarea name="Content" rows="10" cols="60" style="display:none"></textarea>
<input type="hidden" name="Charset" value="UTF-8">
<input type="submit" value="提交" />
</form>




2) 传送GB2312编码
<script language="JavaScript">
function OnSubmit()
{
    var obj = document.getElementById('Content');
    var obj2 = document.getElementById('Content2');

    obj.value = UrlEncode(obj2.value);

    return true;
}

function UrlEncode(str)
{
    var r = '';
    var strSpecial = '!"#$%&\'()*+,/:;<=>?[]^`{|}~%';

    for(var i = 0; i < str.length; i++)
    {
        var chr = str.charAt(i);
        var cHex = GetHexGB2312(chr); // 返回字符的 GB2312 编码的十六进制值。JavaScript 可以获取字符的 Unicode 编码;VBScript 可以获取字符的 GB2312 编码。
        
        // 开始转成编码的URL格式
        if(parseInt('0x' + cHex) > 0x7f) // 大于 126
        {
            r += '%' + cHex.slice(0, 2) + '%' + cHex.slice(-2);
        }
        else // ASCII 中的字符,如字母、数字、符号等。
        {
            if(chr == ' ')
                r += '+';
            else if(strSpecial.indexOf(chr) != -1)
                r += '%' + cHex;
            else
                r += chr;
        }
    }

    return r;
}
</script>
<script language="VBScript">
<!--
Function GetHexGB2312(s)
    GetHexGB2312 = hex(asc(s))
End Function
//-->
</script>
<form method="post" action="http://www.utf8.com/post_save.aspx" onsubmit="return OnSubmit();">
<textarea name="Content2" rows="10" cols="60"></textarea>
<textarea name="Content" rows="10" cols="60" style="display:none"></textarea>
<input type="hidden" name="Charset" value="GB2312">
<input type="submit" value="提交" />
</form>

接收页面是UTF-8编码,C#代码:

<%@ Page Language="C#" %>
<%@ Import Namespace="System" %>
<script language="C#" runat="server">
private System.Text.Encoding encodingUTF8 = System.Text.Encoding.GetEncoding("UTF-8");
private System.Text.Encoding encodingGB2312 = System.Text.Encoding.GetEncoding("GB2312");

public void Page_Load(object sender, System.EventArgs e)
{
    string content = Request.Form["Content"].ToString();
    string charset = Request.Form["Charset"].ToString(); // 内容的编码

    if (charset == "GB2312")
    {
        content = System.Web.HttpUtility.UrlDecode(content, encodingGB2312);
    }
    else
    {
        content = System.Web.HttpUtility.UrlDecode(content, encodingUTF8);
    }

    Response.Write(content);
}
</script>

标签:网页编码 
查看全文 | 分类(网站编程) | 访问(722) | 编辑

Unicode汉字编码表共 16544 个(4E00 - 952F)。
  U+  0   1  2  3  4  5  6  7  8  9  A  B  C  D  E  F
-----------------------------------------------------
4e00 一 丁 丂 七 丄 丅 丆 万 丈 三 上 下 丌 不 与 丏 
4e10 丐 丑 丒 专 且 丕 世 丗 丘 丙 业 丛 东 丝 丞 丟 
4e20 丠 両 丢 丣 两 严 並 丧 丨 丩 个 丫 丬 中 丮 丯 
4e30 丰 丱 串 丳 临 丵 丶 丷 丸 丹 为 主 丼 丽 举 丿 
4e40 乀 乁 乂 乃 乄 久 乆 乇 么 义 乊 之 乌 乍 乎 乏 
4e50 乐 乑 乒 乓 乔 乕 乖 乗 乘 乙 乚 乛 乜 九 乞 也 
......
字太多了不方便浏览,具体可查看JS版。JS打印Unicode中的汉字
......
9500 销 锁 锂 锃 锄 锅 锆 锇 锈 锉 锊 锋 锌 锍 锎 锏
9510 锐 锑 锒 锓 锔 锕 锖 锗 锘 错 锚 锛 锜 锝 锞 锟
9520 锠 锡 锢 锣 锤 锥 锦 锧 锨 锩 锪 锫 锬 锭 键 锯

查看全文 | 分类(网站编程) | 访问(739) | 编辑

一、ASCII
美国标准信息交换标准码 (American Standard Code for Information Interchange, ASCII)
在计算机中,所有的数据在存储和运算时都要使用二进制数表示,所以要有一个编码表来为每个字符指定一个二进制数。
ASCII 用一个字节表示一个字符(字母、数字、符号),可以表示256个字符。


二、Unicode
Unicode 是继 ASCII 之后的一种新字符编码。
Unicode 用两个字节表示一个字符,可以表示65,536个字符。
Unicode 目标是要涵盖所有的字符。

Unicode 编码系统可分为编码方式和实现方式两个层次。
编码方式可能指编码表,位每字符都指定一个二进制数。
实现方式可能指保存方式。

Unicode 实现方式:Unicode Little Endian、Unicode Big Endian、UTF-8
1) Unicode Big Endian 和 Unicode Little Endian
例如“汉”字的 Unicode 十六进制编码是 6C49。(由16位二进制转来,方便我们的识别)
Unicode Big Endian 编码会保存为 6C49,Unicode Little Endian 编码会保存为496C。就是二个字节顺序不同。
字节序的问题,牵涉到两大CPU派系,Motorola的PowerPC系列CPU和Intel的x86系列CPU。PowerPC系列采用Big Endian方式存储数据,而x86系列则采用Little Endian方式存储数据。
Windows下文本用 Unicode 编码就指 Unicode Little Endian 编码。

新建一个文本,用记事本打开,另存为,把编码改过 Unicode 或 Unicode Big Endian,保存后看其属性会发现占用2个字节。这里的 Unicode 就是 Unicode Little Endian,x86系列采用Little Endian方式存储数据。
这两个字节是用来区别 Big Endian 和 Little Endian。好象叫“ZERO WIDTH NO-BREAK SPACE”、“Windows使用BOM来标记文本文件的编码方式”。

记事本打开一个文件,前两个字节是 FEFF 就知道这个字节流是 Unicode Big Endian 编码;如果前两个字节是 FFFE,就知道是 Unicode Little Endian;如果前三个字节是 EFBBBF 就知道是 UTF-8 编码;要是没有就是 ANSI,ANSI是系统默认的编码方式,不同系统默认的编码不同,Windows简体中文版就是GB2312编码,繁体中文版就是Big5编码。

2) UTF-8
Unicode Big Endian 和 Unicode Little Endian 都是用两个字节表示一个字符,只是字节序不同。而 UTF-8 就不一样了,用 1 到 6 个字节表示一个字符,不是固定的字节数。


三、UTF-8
UTF-8 可以理解为是 Unicode 编码系统下,文件保存的一种方式。
UTF-8 是一种变长字节编码方式。
某一个字符只用一个字节表示其最高二进制位为 0。
某一个字符用多个字节表示其第一个字节最高二进制位为 1,并且连续 1 的个数表示它的字节数,其他字节都一 10 开头。
格式如下:
1字节 0xxxxxxx
2字节 110xxxxx 10xxxxxx
3字节 1110xxxx 10xxxxxx 10xxxxxx
4字节 11110xxx 10xxxxxx 10xxxxxx 10xxxxxx
5字节 111110xx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx
6字节 1111110x 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx 10xxxxxx

“汉”的 Unicode 编码是 01101100 01001001 (十六进制是 6C49)
转 UTF-8 编码,使用 1110xxxx 10xxxxxx 10xxxxxx 格式,占3字节。
用 0110 110001 001001 这个比特流依次代替模板中的x,得到:11100110 10110001 10001001,即E6 B1 89。
可见3字节长刚好容下 Unicode 16位的全部编码。

记事本读 UTF-8 编码文件时,可能根据 BOM 来知道这是个 UTF-8 编码文件,再按8位为一个单位分,如果第一位是0就表示这是一个完整的字符了,如果前两位是10就表示这是一个字符的一个字节,如果前3位是110就知道这是一个字符的开头,和后面的一个字节组成一个字符,依次类推。得到一个字符的所有字节后,就根据格式抽出字符编码,对应 Unicode 编码表,就知道要显示的字符了。


Unicode 中汉字编码范围:4E00 - 9FA5

查看全文 | 分类(网站编程) | 访问(746) | 编辑
 总数:48   页次:1/5   首 页   上一页   下一页   尾 页