-
[转]解决IE6不支持PNG绝佳方案 - [茶^咖啡语茶]2011-02-22
我们知道IE6是不支持透明的PNG的,这无疑限制了网页设计的发挥空间.
然而整个互联网上解决这个IE6的透明PNG的方案也是多不胜数,从使用IE特有的滤镜或是expression,再到javascript+透明GIF替代.但是这些方法都有一个缺点,就是不支持CSS中backgrond-position与background-repeat.而我今天介绍DD_belatedPNG,只需要一个理由,就是它支持backgrond-position与background-repeat.这是其他js插件不具备的.同时DD_belatedPNG还支持a:hover属性,以及<img>.
原理
这个js插件使用了微软的VML语言进行绘制,而其他多数解决PNG问题的js插件用的是AlphaImageLoader滤镜.
使用方法
1.在这里下载DD_belatedPNG.js文件.
2.在网页中引用,如下:<!--[if IE 6]>
<script src="DD_belatedPNG.js" mce_src="DD_belatedPNG.js"></script>
<script type="text/javascript"><!
<!
/* EXAMPLE */
DD_belatedPNG.fix('.png_bg');
/* 将 .png_bg 改成你应用了透明PNG的CSS选择器,例如我例子中的'.trans'*/
// --> -
当div的属性同时出现浮动和外边距时,在ie6下就会产生双倍边距,导致页面变乱。
比如 #tab{float:left;margin-left:20px;...},在ie6下会出现外边距为40px。
此时添加内联语句 display:inline;,可以消除ie6下双倍边距效果。
其他浏览器下依旧正常。
-
如何去掉datagrid的边框 - [雨^随笔集录]2010-12-24
aspx页面,使用了datagrid控件,使用ie7浏览,如设计的那样一切正常。偶尔使用ie8和FF浏览,发现多了边框。
查看css,使用border-width=0,依然存在问题。修改多次,还是不能解决。
使用FF的Debug插件,发现其html编码多了一个属性:rule="all",意思是现实行和列之间的线条。然而datagrid里面却没有这个属性。查资料发现,对应的属性为GridLines,如不填写,默认为GridLines="both",即全现实。修改为GridLines="none",问题解决!
做页面设计,需要配合ie6 7 8 FF 和Chrome 几个浏览器测试,问题总是很多,要细心,善于发现,冷静思考!
-
ASP.NET程序ie6不加载CSS - [茶^咖啡语茶]2010-12-22
采用DIV+CSS设计的页面,经过测试IE6/7/8,FireFox,Chrome等浏览器显示正常,但作成aspx页面之后,发现IE6下面严重变形,怀疑是CSS没有加载上。使用插件查看之后,果然是CSS丢了。
经过排查终于发现,CSS文件中有中文注释出现乱码,导致后面CSS丢失。
换成英文之后,一切显示正常了。
总结:就是中文字体,也要换成相应的英文。比如“宋体”改为“simsun”。
-
[数据库函数]DateAdd函数 - [茶^咖啡语茶]2010-12-17
DateAdd函数 返回
返回包含一个日期的 Variant (Date),这一日期还加上了一段时间间隔。
语法
DateAdd(interval, number, date)
DateAdd 函数语法中有下列命名参数:
部分 描述
interval 必要。字符串表达式,是所要加上去的时间间隔。
number 必要。数值表达式,是要加上的时间间隔的数目。其数值可以为正数(得到未来的日期),也可以为负数(得到过去的日期)。
date 必要。Variant (Date) 或表示日期的文字,这一日期还加上了时间间隔。
可以计算当前系统日期的前后多少天。例如 DateAdd(d,-3,getdate())即为当前系统日期的前3天。
-
用css设计文章列表 - [茶^咖啡语茶]2010-12-09
页面代码
<li><span>2010.11.01</span><a href="#" target="_blank" title="">新闻列表文章测试标题新闻列表文章测试标题新闻列表文章测试标题</a></li>
css代码
li{ width: 460px; height: 23px; line-height:23px; margin:0; padding:0;}
li span{ float:right; width: 70px; height: 23px; margin: 0 10px 0 0; padding:0; text-indent:0; color:#666666;}
li a{ height: 23px; line-height:23px; margin: 0 0 10px 0; padding:0; color:#666666; text-decoration:none; /*标题长度截断*/ display:block; width:350px; overflow:hidden; white-space:nowrap; text-overflow:ellipsis; /*标题长度截断*/ }
li a:hover{ color:#86b427; text-decoration:underline;}总结:span属性在浮动之后变为块元素,会自动换行,因此需要放在前面,然后浮动到右边。标题长度截断代码可以用来使超过设定宽度的标题自动截取后省略号显示。里面的几行代码同时才能实现该效果(FF只截断不显示...)。
例如:新闻列表文章测试标题新闻列表文章测试标题新闻列表文...
-
用clear清除浮动方式 - [茶^咖啡语茶]2010-11-20
尝试用div+css实现网页布局,却有一部分没有实现设计的效果,查阅资料才知道需要用clear来清除浮动方式
.clear { clear: both; }
值 描述 left 在左侧不允许浮动元素。 right 在右侧不允许浮动元素。 both 在左右两侧均不允许浮动元素。 none 默认值。允许浮动元素出现在两侧。 inherit 规定应该从父元素继承 clear 属性的值。 -
浅淡!important对CSS的重要性 - [茶^咖啡语茶]2010-11-12
CSS中的!important是一个非常重要的属性,有时候发挥着非常大的作用,52CSS.com这方面的知识并不是非常多,我们看下面的文章,对它作比较感观的了解。
前几天写一些CSS代码的时候又难为我了,因为那个该死的IE6对CSS的支持是如此的差劲,以前我还没注意过,因为做的东西基本都是基于IE的,可是我这次为博客写的CSS要支持不止IE一个浏览器,可恨的是我装的Windows 7,这里面自带的是IE8浏览器,我自认为已经没有问题了,可是打开IE6,仍然出现错位,于是我决定看看IE6到底是什么情况。
我把所有的CSS块儿全部使用边框包起来,结果看到在IE中两个div之间的距离明显要宽于其他浏览器,比如你写一个div的margin属性为20px,那么在IE中就好像是40px一样,这也就是为什么本来精度计算的刚刚好,在IE下却偏偏错位的原因。
后来我看到了!important这个属性,这个属性其实也是css规范中的,结果IE6愣是不支持,也正因为它不支持,才让很多的CSSer们找到了解决的方法。一般来讲,在css中,如果在同一个css块中写下两个同样的属性,那么其实是按照最下面的来执行的,比如说:.home{
margin-left:20px;
margin-left:40px;
}那么在执行的时候其实是按照40px来执行的,!important的出现就是为了让用户自己设置被执行语句的优先级。如果把上面的语句改为:
.home{
margin-left:20px!important;
margin-left:40px;
}那么在火狐、google浏览器以及IE7以上版本下将会按照20px来执行,而在IE6下却仍然按照40px来执行,因为IE6并不支持!important规范,我们就可以按照这个规则来满足IE6的设计需要,什么时候发现IE6和其他浏览器显示效果不同,那么就设置两个,在上面的一个加入!important标记,而下面的一句则不需要添加,这样IE6就按照下面的来执行了。资深的CSSer说:如今的CSS处处!important。这可都是天杀的IE6惹的祸,大家说IE6就是一坨代谢产物一点也不为过。
-
[转]html中#include file的用法 - [茶^咖啡语茶]2010-11-07
有两个文件a.htm和b.htm,在同一目录下 a.htm内容如下
<!-- #include file="b.htm" -->
b.htm内容如下
今天:雨 31 ℃~26 ℃ <br />明天:雷阵雨 33 ℃~27 ℃
直接在浏览器中打开a,没有任何显示,后来知道,include是SSI(Server Side Include),在html中不支持include,之后把a.htm改成a.aspx,并且在将该页面发布在iis上,然后a.aspx就可以看到内容了。在html中想达到这样的效果,可以使用iframe标签,直接在网上找了个例子如下:
<iframe frameborder=0 border=0 width=300 height=300 src="b.htm" mce_src="b.htm"></iframe>
html中#include file的用法
参数
PathType将 FileName 的路径类型。路径可为以下某种类型:
路径类型 含义
文件 该文件名是带有 #include 命令的文档所在目录的相对路径。被包含文件可位于相同目录或子目录中;但它不能处于带有 #include 命令的页的上层目录中。
虚拟 文件名为 Web 站点上虚拟目录的完整虚拟路径。FileName
指定要包含的文件名。FileName 必须包含文件名扩展,而且必须将文件名用引号 (") 引起来。
注释
包含 #include 命令的文件必须使用映射到 SSI 解释器的文件扩展名;否则,Web 服务器将不处理该命令。默认情况下,扩展名 .stm、.shtm 和 .shtml 将映射到解释器 (Ssinc.dll)。如果安装了 Internet 服务管理器,则可以修改默认扩展映射并添加新的映射。请参阅设置应用程序映射。被包含的文件可具有任何文件扩展名,但建议赋予它们 .inc 扩展名。示例
<!--被包含文件与父文件存在于相同目录中。 -->
<!-- #include file = "myfile.inc" --><!--被包含文件位于脚本虚拟目录中。 -->
<!-- #include virtual = "/scripts/tools/global.inc" -->include file 与include virtual的区别
1.#include file 包含文件的相对路径,#include virtual包含文件的虚拟路径。
2. 在同一个虚拟目录内,<!--#include file="file.asp"-->和<!--#include virtual="file.asp"-->效果是相同的,但假设虚拟目录名为myweb,则<!--#include virtual="myweb/file.asp"-->也可以通过调试,但我们知道<!--#include file="myweb/file.asp"-->是绝对要报错的。
3.如果一个站点下有2个虚拟目录myweb1和 myweb2,myweb1下有文件file1.asp,myweb2下有文件file2.asp,如果file1.asp要调用file2.asp,那么在file1.asp中要这样写:<!--#include virtual="myweb2/file2.asp"-->,在这种情况下用#include file是无法实现的,用<!--#include file="myweb2/file2.asp"-->必然报错。相反,在myweb2的文件中包含myweb1中的文件也是一样。如果该被包含文件在某个文件夹下面,只要在虚拟路径中加上该文件夹即可。
4.不论用#include file 还是 #include virtual,在路径中用“/”还是“\”或者二者交叉使用都不会影响编译效果,程序会顺利执行。
5.以上情况不适用于2个站点文件的相互调用,而且在同一个站点内,<!--#include file="file.asp"-->和<!--#include virtual="file.asp"-->等效,但假设站点名为website,使用<!--#include virtual="website/file.asp"-->是错误的。
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/cs6051/archive/2010/08/03/5784138.aspx -
操作必须使用一个可更新的查询 - [茶^咖啡语茶]2010-11-01
原来一直没问题的AC数据库,在删除又重新复制过来后,出现错误提示“操作必须使用一个可更新的查询”。
查询没有问题,只是在添加和修改数据的时候出现该提示。
从网上查资料,大部分认为是sql语句或者字段类型有错误。经我仔细排查,排除了该可能。
最后突然意识到,是否是文件权限的问题。给everyone加入了写权限后,问题解决。
-
[转]FCKeditor在.net中详细配置 - [茶^咖啡语茶]2010-10-31
FCKeditor在.net中详细配置
一、获取文件
1.将FCKeditor.Net_2.6.3.zip解压缩。我们需要一个DLL文件。在\bin\Release\文件夹下有两个版本。对应.netframework的版本,拷贝FredCK.FCKeditorV2.dll至你的项目的bin目录。然后在.net的工具箱中添加此项。
2.将FCKeditor_2.6.5zip解压缩。将所得的fckeditor文件夹拷贝至项目根目录。
二、精简文件
1.FCKeditor是支持多种WEB语言的,我们可以针对自己使用的语言来进行简化,将不使用的文件删掉,进入到 FCKeditor文件夹下,先把以“_”为开头的文件夹统统删除,这些文件夹里放的是范例或是一些其它工具。其实也就是只保留editor文件夹、fckconfig.js、fckeditor.js、fckstyles.xml、fcktemplates.xml 就可以了,最外层的精简化完毕。
2.进入到editor文件夹内,先把“_source”文件夹删除,这里是一些源文件,对于使用来说没什么用处。再进入lang文件夹内,这里是编辑器语言外包文件,只保留 zh-cn.js、en.js、zh.js这几个文件,这几个文件的含义我想大家都是知道的。当然如果需要其它语言也可以留下来。3.再进入skin文件夹,这是编辑器的皮肤,如果你想使用fckeditor默认的这种奶黄色,如果想用别的,那就自己考虑了。office2003的皮肤比较漂亮,听说加载时速度比较慢,也可以选那择silver,也比较好配色,速度也快。
4.精简的最后一步,退出skin文件夹,再进入filemanager,进入到 connectors目录下,保留aspx目录,其它全部删除。
精简工作完成,现在看起来就赏心悦目了!三、对编辑器进行配置
1.第一个配置文件是fckconfig.js,位于FCKeditor根目录下。修改项包括:
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/silver/' ;(皮肤)
FCKConfig.AutoDetectLanguage = true ;(自动检测语言)
FCKConfig.DefaultLanguage = 'zh-cn' ;(默认为简体中文)
FCKConfig.FontNames = '宋体;黑体;隶书;楷体_GB2312' ; (添加中文常用字体)
FCKConfig.FontSizes = '12px;14px;16px;18px;24px;26px;28px;32px' ; (添加常用字体大小)FCKConfig.TabSpaces = 1 ; //在编辑器中是否可以是否TAB键 0 不可用 1 为可用
var _FileBrowserLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py (用来浏览上传文件)
var _QuickUploadLanguage = 'aspx' ; // asp | aspx | cfm | lasso | perl | php | py (用来上传文件)
2.如果想设置编辑器的浏览功能,如浏览图片、Flash,设置上传功能,如图片、Flash上传,可以设置为启用与禁用,true为启用false禁用。
FCKConfig.LinkBrowser = true;
FCKConfig.ImageBrowser = true ;
FCKConfig.FlashBrowser = true ;
FCKConfig.LinkUpload = true ;
FCKConfig.ImageUpload = true ;
FCKConfig.FlashUpload = true ;3.如果你的编辑器还用在网站前台的话,比如说用于留言本或是日记回复时,那就不得不考虑安全了,在前台千万不要使用Default的toolbar,要么自定义一下功能,要么就用系统已经定义好的Basic,禁用文件上传等其它比较危险的功能。当然也可以自定义,选择适合自己的功能。至于怎么选,可以对照fckconfig.js文件中FCKConfig.ToolbarSets["Default"]、FCKConfig.ToolbarSets ["Basic"]的配置
四、上传文件配置
1.在文件上传时,我们希望将文件上传到指定的目录中,而且必须是经过验证的用户才能上传文件,我们可以在filemanager\connectors\aspx目录中的config.ascx文件中进行设置,首先为了防止没经过验证的用户上传木马文件,我们可以在CheckAuthentication()方法中加上对当前用户认证,成功后返回true即可;在SetConfig()方法中,可以设置UserFilesPath来指定保存上传文件的路径。上传文件可以按目录自动保存到对应的目录中,如: File, Image, Flash, Media ,设置后结构如下UserFilesPath = "/UpLoadFiles/";,WEB根目录下的Upload目录中。
/UpLoadFiles/
|-File
|-Image
|-Flash
|-Media五、web.config配置
1.在你的项目的配置文件:web.config里找到将它替换为:
<appSettings>
<add key="FCKeditor:BasePath" value="~/FCKeditor/"/>
<add key="FCKeditor:UserFilesPath" value="~/UpLoadFiles/"/>
</appSettings>
六、使用方法:
可以直接在ASP.NET设计视图中使用此控件,就像你使用textbox一样简单,直接从工具箱拖到页面上即可。获取FCKeditor的编辑框中的值,可以用FCKeditor的value属性获取编辑框内的值,此数据为html代码。至此,整个安装、使用过程结束
ASP.NET下的FCK上传文件重命名:
首先你需要下载FCK在.NET里面需要的应用程序包:FCKeditor.Net_2.6.3
找到根目录下面的FileBrowser 文件夹里面的 FileWorkerBase.cs 文件。
找到这两段代码:
sFileName = System.IO.Path.GetFileName( oFile.FileName );
sFileName = this.SanitizeFileName( sFileName ); 将这两段代码注释掉
然后在这段代码:sExtension = sExtension.TrimStart( '.' );下面添加一行新的代码:sFileName = CreateNewFileName() + "." + sExtension;
其中:CreateNewFileName() 的具体代码如下:此方法代码写在FileWorkerBase.cs里面,如下:
//ReName
public string CreateNewFileName()
{
int number;
char code;
string CommCode = String.Empty;
string CommCodeAfter = String.Empty;
string CommCodeHead = System.DateTime.Now.ToString("yyyyMMdd", System.Globalization.DateTimeFormatInfo.InvariantInfo);System.Random random = new Random();
for (int i = 0; i < 10; i++)
{
number = random.Next();if (number % 2 == 0)
{
code = (char)('0' + (char)(number % 10));
}
else
{
code = (char)('A' + (char)(number % 26));
}CommCodeAfter += code.ToString();
CommCode = CommCodeHead.ToString() + CommCodeAfter.ToString();
}
return CommCode;
}然后重新编译一下项目文件,将dll文件复制到你的项目里面,然后添加引用就是了,到此,FCK在.NET下面的重命名功能就完成了!
有关FCK在.NET下面的配置请参看:
http://hi.baidu.com/allenwdj/blog/item/b4b802ee415d1a232cf5345d.htmlPS;本人根据上述资料整理出来一个适合1.1的文件包,FCKeditor_2.6.5_编辑版.zip。对此感兴趣的可以留下您的邮箱。
如果图片在测试上传中,滚动条没有反应,久久上传不成功,那可能是上传目录没有写权限。添加写入权限后,即可上传成功!
另附:
配置文件(fckconfig.js)中主要配置项目如下,根据自己看情况配置:
CODE:
FCKConfig.CustomConfigurationsPath = '' ; // 自定义配置文件路径和名称
FCKConfig.EditorAreaCSS = FCKConfig.BasePath + 'css/fck_editorarea.css'; // 编辑区的样式表文件
FCKConfig.BaseHref = ''; // 相对链接的基地址
FCKConfig.Debug = true/false; // 是否开启调试功能,当调用FCKDebug.Output()时,会在调试窗中输出内容
FCKConfig.SkinPath = FCKConfig.BasePath + 'skins/default/'; // 设置皮肤
FCKConfig.AutoDetectLanguage = true/false ; // 是否自动检测语言
FCKConfig.DefaultLanguage = 'zh-cn' ; // 设置默认语言
FCKConfig.ContentLangDirection = 'ltr/rtr'; // 默认文字方向,ltr左,rtr右
FCKConfig.FillEmptyBlocks = true/false ; // 使用这个功能,可以将空的块级元素用空格来替代
FCKConfig.FormatSource = true/false; // 切换到代码视图时,是否自动格式化代码
FCKConfig.FormatOutput = true/false; // 当输出内容时是否自动格式化代码
FCKConfig.FormatIndentator = ""; // 当在“源码格式”下缩进代码使用的字符
FCKConfig.GeckoUseSPAN = true/false; // 是否允许SPAN标记代替B,I,U标记
FCKConfig.StartupFocus = true/false; // 开启时是否FOCUS到编辑器
FCKConfig.ForcePasteAsPlainText = true/false;// 强制粘贴为纯文本
FCKConfig.ForceSimpleAmpersand = true/false; // 是否不把&符号转换为XML实体
FCKConfig.TabSpaces = 0/1; // TAB是否有效
FCKConfig.TabSpaces = 4; // TAB键产生的空格字符数
FCKConfig.ShowBorders = true/false; // 是否合并边框
FCKConfig.ToolbarStartExpanded = true/false; // 页面载入时,工具栏是否展开,点“展开工具栏”时才出现
FCKConfig.ToolBarCanCollapse = true/false; // 是否允许展开折叠工具栏
FCKConfig.ToolbarSets = object ; // 编辑器的工具栏,可以自行定义,删减,可参考已存在工具栏
FCKConfig.EnterMode = 'p'; // 编辑器中直接回车,在代码中生成,可选为p | div | br
FCKConfig.ShiftEnterMode = 'br'; // 编辑器中Shift+回车,在代码中生成,可选为p | div | br
FCKConfig.ContextMenu = 字符串数组; // 右键菜单的内容
FCKConfig.FontColors = ""; // 文字颜色列表
FCKConfig.FontNames = ""; // 字体列表
FCKConfig.FontSizes = ""; // 字号列表
FCKConfig.FontFormats = ""; // 文字格式列表
FCKConfig.StylesXmlPath = ""; // CSS样式列表的XML文件的位置
FCKConfig.TemplatesXmlPath = ""; // 模版的XML文件位置
FCKConfig.SpellChecker = "ieSpell/Spellerpages"; // 拼写检查器
FCKConfig.IeSpellDownloadUrl = ""; // 下载拼写检查器的网址
FCKConfig.SmileyPath = FCKConfig.BasePath + 'images/smiley/msn/'; // 表情文件存放路径
FCKConfig.SmileyImages = ''; // 表情文件名称列表,具体参考默认设置
FCKConfig.SmileyColumns = 8; // 表情窗口显示表情列数
FCKConfig.SmileyWindowWidth = 320; // 表情窗口显示宽度,此窗口会因为表情文件的改变而作调整
FCKConfig.SmileyWindowHeight = 240; // 表情窗口显示高度,此窗口会因为表情文件的改变而作调整
FCKConfig.FullPage = true/false; // 是否允许编辑整个HTML文件,还是仅允许编辑BODY间的内容
-
[转]如何在HTML文档中显示空格 - [茶^咖啡语茶]2010-10-23
一、使用全角空格
全角空格被解释为汉字,所以不会被被解释为HTML分隔符,可以按照实际的空格数显示。
二、使用空格的替代符号
替代符号就是在需要显示空格的地方加入替代符号,这些符号会被浏览器解释为空格显示。
空格的替代符号有以下几种:
名称 编号 描述   不断行的空白(1个字符宽度)     半个空白(1个字符宽度)     一个空白(2个字符宽度)     窄空白(小于1个字符宽度) 可以用名称或编号作为空格的替代符号,名称必须小写,末尾的“;”不能省略。
如:
欢 迎 光 临!显示效果为:欢 迎 光 临!
三、使用CSS的 white-space 属性
CSS的white-space属性用于设置文本中空格的处理方式,当white-space属性取值为pre时,浏览器会保留文本中的空格和换行,这样你就可以直接在文本中使用空格和回车了。
这种方法特别适合于在网页中显示程序代码。比如:显示一段C程序代码。
<div style="white-space:pre"> int sub(int x,int y) { int z; if( x>y ) z = x-y; else z = y-x; return z; } </div>显示效果为:
int sub(int x,int y) { int z; if( x>y ) z = x-y; else z = y-x; return z; }使用HTML的<pre>标签也可以达到类似的效果,但<pre>标签有一些不太好的特性,不如使用CSS的white-space属性更方便。
四、使用CSS的 letter-spacing 属性
CSS的letter-spacing属性用于设置文本中字符之间的间隔,它的取值可以是一个带单位的长度值,浏览器会在字和字之间设置指定长度的空白。比如:
<div style="letter-spacing:30px">欢迎光临!</div>显示效果为:
欢迎光临!注意,如果文本中有英文单词,则空白会加在字母之间,而不是单词之间。
五、使用CSS的 word-spacing 属性
CSS的word-spacing属性用于设置文本中单词之间的间隔,它的取值可以是一个带单位的长度值,浏览器会在单词和单词之间设置指定长度的空白。比如:
<div style="word-spacing:30px">Happy new year!</div>显示效果为:
Happy new year!注意,HTML是以空格来区分单词的,它会把单词间的空白按指定长度显示。
六、使用CSS的 text-indent 属性
CSS的text-indent属性用于设置首行缩进,它的取值可以是一个带单位的长度值,浏览器会在段落的首行开始处设置指定长度的空白。比如:
<div style="text-indent:2em">欢迎光临!</div>显示效果为:
欢迎光临!说明:em 是一个相对长度单位,2em 表示要缩进两个字的距离。
-
指定Access中的“自动编号”从几开始 - [茶^咖啡语茶]2010-10-22
在Access里新建一个查询,把视图改为sql视图。在里面输入如下语句:
ALTER TABLE 表名 ALTER COLUMN [自动编号字段名] COUNTER (你要的初始值, 自动增长值)
例如: ALTER TABLE [user] ALTER COLUMN [id] COUNTER (1001, 1)
user表中的id字段从1001开始,自动增加1。
此法也可以用于“自动编号”从1开始,只需将初始值设为1就可以了。
-
[转]解读百度《搜索引擎优化指南》 - [茶^咖啡语茶]2010-10-10
近日,百度发布了《百度搜索引擎优化指南》来为SEO提供了一个优化的标准。在前言中,百度肯定了SEO的正面作用,并邀请广大的SEOer与百度共同改善搜索引擎的算法。走出了这一步,也可以说是百度的进步,因为在以往百度总是站在SEO的对立面。
笔者在《百度搜索引擎优化指南》里面发现了最重要的一点就是,百度将关键词区分为了“商业性推广结果”和“非商业性推广结果”,这就意味着只要我们不花钱,那么那些价值最高的“商业性推广词汇”将无法获得好的排名。而这也意味着,跟谷歌相比,百度只提供给我们广大SEOer运作资讯类网站的可能性。因为类似于网上商店、医药等这些“商业性推广结果”,其排名只决定与你花钱的多少。而这也决定了,百度目前只是出让了流量最大的那些“非商业性推广结果”给我们,而其自身然后控制着利润最大、价值最高的“商业性推广结果”。
竟然无法利用技术来获得良好的“商业性推广结果”的排名,那么我们也还有这些拥有巨大流量的“非商业性推广结果”。比如小说这些关键词,都能带来巨大的流量,而网站流量的提升也就意味着我们可以从网络广告中获取利益。下面,我将从百度《搜索引擎优化指南》中的四个目录来一一解说百度是如何判断一个网站的好坏的。
一、网站的前期准备
1、百度肯定了短域名的优势,并且。com、。net和。cn拥有的初始权重将会高于其他域名后缀。
2、网站的访问速度以及服务器的稳定性也是网站好坏的一个重要评判标准,而且独立服务器运营的网站将会获得百度更多的青睐。
二、良好的面向搜索引擎的网站建设
1、网站的建设仍然需要以文字建设为主,辅之与一些FLASH、图片等来点缀网站。而一些重要的内容仍然必须使用文字描述,因为百度的搜索引擎目前仍然无法识别Flash、图片、Javascript中的内容。
●使用文字而不是flash、图片、Javascript等来显示重要的内容或链接
● 如果必须使用Flash制作网页,建议同时制作一个供搜索引擎收录的文字版,并在首页使用文本链接指向文字版
● Ajax等搜索引擎不能识别的技术,只用在需要用户交互的地方,不把希望搜索引擎“看”到的导航及正文内容放到Ajax中
● 不使用frame和iframe框架结构,通过iframe显示的内容可能会被百度丢弃
● 使用文字而不是flash、图片、Javascript等来显示重要的内容或链接,如果必须使用Flash制作网页,建议同时制作一个供搜索引擎收录的文字版,并在首页使用文本链接指向文字版,Ajax等搜索引擎不能识别的技术,只用在需要用户交互的地方,不把希望搜索引擎“看”到的导航及正文内容放到Ajax中,不使用frame和iframe框架结构,通过iframe显示的内容可能会被百度丢弃
2、网站结构的选择中,树桩结构要好于扁平型结构。但是如果你能结合树桩结构和扁平型结构,那么百度会更喜欢。
3、网站导航对于百度蜘蛛来说非常重要,百度强调了为每个页面都加上导航栏的重要性。因为这不单有利于百度蜘蛛的抓取,而且对于用户体验的提高也非常有效。
4、网站频道应该使用子域名还是子目录将取决与内容,内容的丰富程度以及关联性将决定你是使用子域名还是子目录的方式。比如内容丰富和关联度低的频道就应该使用子域名,反之亦然。5、URL应该尽可能的简单和规范,让用户能从url判断出网页内容以及网站结构信息,并可以预测将要看到的内容的url将被视为最佳。其中静态页面比动态页面更有效,所以大家应该尽量将网站静态化,利用HTML、HTM等格式。
5、SITEMAP将会越来越重要,而百度也将在近期内开放基于百度标准的SITEMAP平台。
6、尽可能不要更换域名或改版(如果实在需要改版,那么应该是逐步更换网站的版面,而不是一次性全部更换)
● 如非必要,不要做整站内容的完全更换
● 网站改版或者网站内重要页面链接发生变动时,应该将改版前的页面301永久重定向到改版后的对应的页面
● 网站更换域名,应该将旧域名的所有页面301永久重定向到新域名上对应的页面
7、title标签对网站的排名有非常大的作用,而description则只对网站在搜索结果中显示的摘要起作用。经常性的更改title将会对排名起到不利的影响。
建议的title描述方式是:
●首页:网站名称或者网站名称_提供服务介绍or产品介绍
●频道页:频道名称_网站名称
●文章页:文章title_频道名称_网站名称
需要注意的事项:
● 每个网页应该有一个独一无二的标题,切忌所有的页面都使用默认标题
● 标题要主题明确,包含这个网页中最重要的内容
● 简明精练,不罗列与网页内容不相关的信息
● 用户浏览通常是从左到右的,重要的内容应该放到title的靠前的位置
● 使用用户所熟知的语言描述。如果你有中、英文两种网站名称,尽量使用用户熟知的那一种做为标题描述
Description的使用方法:
●网站首页、频道页、产品参数页等没有大段文字可以用做摘要的网页最适合使用description
● 准确的描述网页,不要堆砌关键词
● 为每个网页创建不同的description,避免所有网页都使用同样的描述
● 长度合理,不过长不过短
8、投票、转贴等插件对于网站的排名也非常有效,网站应该建立起这种WEB2.0类型的投票、转贴系统。一些获得用户推荐数量很多的网页,将会获得非常好的排名。
三、网站运营方面
1、百度统计将对网站的排名起到较大的作用。跳出率、退出率和用户停留时间这三个指标将被用来衡量你网站对于用户是否具有吸引性。
2、网站的评论和页面模板也对排名有一定作用。用户评论较多的将会获得较高的权重,但是页面模板的美观程度我也不知道百度是如何判断的。
3、强调了“品牌”这一运行理念。
● 最低层次,让用户知道他所获取的内容来自你的网站
● 进阶,让用户下次再想找这个信息时,能想到你的网站
● 最终,能让用户在找同类内容时,能第一时间想到你的网站
四、关于作弊与惩罚
带有木马、假冒知名公司、群发、发布知名公司的客服电话以及关键词堆砌这些都将受到严厉惩罚。现实中,最容易发生的就是群发和关键词堆砌这两个。尤其是群发,由于目前国内盗贴非常严重,经常会导致自己的原创内容由于被过多的盗贴而被认为是群发或者被认为“非原创”而导致了搜索引擎的惩罚。关于如何解决这一点,百度还没有给出明确的说法,所以目前来说,盗贴这一问题仍然没有得到较好的解决办法。
总的来说,百度此次发布的《搜索引擎优化指南》并没有什么突出性的内容概念。其中很多的内容都是我们大家说平常熟知的,而关于如何区分盗贴等的现象仍然没有得到明确的说明。不过此次的《搜索引擎优化指南》带有“版本号:V1.0”可能就暗示着百度将会逐渐推出后续版本的搜索引擎指南,或许我们心中仍然存在的许多问题会在往后的版本中得到解决。而从这次指南的发布,也可以看出百度已经逐渐从SEOer的对立面到拉拢站长的改变,这也意味着搜索引擎的未来将会是共同发展的一个趋势,而不是对抗。
来源:彼岸投稿,原文链接。
-
文字图片无缝循环滚动代码(上下左右) - [茶^咖啡语茶]2010-09-04
向上:程序代码
<div id=demo style="overflow:hidden; width:128px; height:300px;">
<div id=demo1>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
</div>
<div id=demo2></div>
</div>
<script language="javascript">
var speed=30
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if(demo2.offsetTop-demo.scrollTop<=0)
demo.scrollTop-=demo1.offsetHeight
else{
demo.scrollTop++
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>向下:程序代码
<div id=demo style="overflow:hidden; width:128px; height:300px;">
<div id=demo1>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
<img src="gfjs.gif"><br><img src="bxtt.gif"><br><img src="bzjd.gif"><br>
</div>
<div id=demo2></div>
</div>
<script language="javascript">
var speed=30
demo2.innerHTML=demo1.innerHTML
demo.scrollTop=demo.scrollHeight
function Marquee(){
if(demo1.offsetTop-demo.scrollTop>=0)
demo.scrollTop+=demo2.offsetHeight
else{
demo.scrollTop--
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>向左:程序代码
<div id=demo style="overflow:hidden;height:100px;width:300px;"><table align=left
cellpadding=0 cellspace=0 border=0><tr><td id=demo1 valign=top><img src="gfjs.gif"><img
src="bxtt.gif"><img src="bzjd.gif"><img src="gfjs.gif"><img src="bxtt.gif"><img
src="bzjd.gif"></td><td id=demo2 valign=top></td></tr></table></div>
<script>
var speed=30
demo2.innerHTML=demo1.innerHTML
function Marquee(){
if(demo2.offsetWidth-demo.scrollLeft<=0)
demo.scrollLeft-=demo1.offsetWidth
else{
demo.scrollLeft++
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>
向右:程序代码
<div id=demo style="overflow:hidden;height:100px;width:300px;"><table align=left
cellpadding=0 cellspace=0 border=0><tr><td id=demo1 valign=top><img src="gfjs.gif"><img
src="bxtt.gif"><img src="bzjd.gif"><img src="gfjs.gif"><img src="bxtt.gif"><img
src="bzjd.gif"></td><td id=demo2 valign=top></td></tr></table></div>
<script>
var speed=30
demo2.innerHTML=demo1.innerHTML
demo.scrollLeft=demo.scrollWidth
function Marquee(){
if(demo.scrollLeft<=0)
demo.scrollLeft+=demo2.offsetWidth
else{
demo.scrollLeft--
}
}
var MyMar=setInterval(Marquee,speed)
demo.onmouseover=function() {clearInterval(MyMar)}
demo.onmouseout=function() {MyMar=setInterval(Marquee,speed)}
</script>说明:如果不滚动,或者不循环滚动,则有可能是宽度或者高度设置的不够,适当调节其值就可以达到滚动的效果







