29

实现IE兼容效果引入CSS及文件方法

万恶的IE,但总算有个解决的方法。以前我也看别人的博客中说过,写CSS不一定非要兼容IE所有版本,最多也就是兼容它主流的一两种版本。我也是这个见解,再说了,也不是人人都用IE的,虽然它很牛,但这是中国。360浏览器、QQ浏览器等,虽然使用得也是IE的内核,但是在显示方面是与IE有所区别的,当然,在网站开发中,还是使用火狐为主开发浏览器的,最主要的是他的执行标准还是相对标准的;还有一点,是个人偏好问题,喜欢他自带的开发工具,已经是习惯了。

方法一:
<!--[if !IE]><!--> 除IE外都可识别 <!--<![endif]-->
<!--[if IE]> 所有的IE可识别 <![endif]-->
<!--[if IE 6]> 仅IE6可识别 <![endif]-->
<!--[if lt IE 6]> IE6以下(不包含IE6)版本可识别 <![endif]-->
<!--[if gte IE 6]> IE6以上(包含IE6)版本可识别 <![endif]-->
<!--[if IE 7]> 仅IE7可识别 <![endif]-->
<!--[if lt IE 7]> IE7以下(不包含IE7)版本可识别 <![endif]-->
<!--[if gte IE 7]> IE7以上(包含IE7)版本可识别 <![endif]-->
<!--[if IE 8]> 仅IE8可识别 <![endif]-->
<!--[if IE 9]> 仅IE9可识别 <![endif]-->

方法二:
<!DOCTYPE html>
<!--[if IE 6 ]> <html class="ie6 lte_ie6 lte_ie7 lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if lte IE 6 ]> <html class="lte_ie6 lte_ie7 lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if lte IE 7 ]> <html class="lte_ie7 lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if lte IE 8 ]> <html class="lte_ie8" lang="zh-CN"> <![endif]-->
<!--[if (gte IE 9)|!(IE)]><!--><html lang="zh-CN"><!--<![endif]-->

实例:IE6及以上版本引入ie.css,增加在head区。
<!--[if gte IE 6]><link href="css/ie.css" rel='stylesheet' type='text/css' /><![endif]-->

<!--[if gte IE 6]><style>.body{margin:0;padding:0}......</style><![endif]-->

<!--[if IE 6]> <html id="ie6" lang="zh-CN"> <![endif]-->

个人还是喜欢使用IE可识别标签引入CSS的方法,html页面不至于看着很乱,如果CSS代码不多,也可以直接写在html中,实例中的第三种方法是最不建议使用的,写出来只为了了解,它会造成大量的HTTP请求。

**************************************************************

CSS hack由于不同的浏览器,比如Internet Explorer 6,Internet Explorer 7,Mozilla firefox等,对CSS的解析认识不一样,因此会导致生成的页面效果不一样,得不到我们所需要的页面效果。 这个时候我们就需要针对不同的浏览器去写不同的CSS,让它能够同时兼容不同的浏览器,能在不同的浏览器中也能得到我们想要的页面效果。

这个针对不同的浏览器写不同的CSS code的过程,就叫CSS hack!

目前IE内核浏览器仍然是国内主流浏览器,占据着PC浏览器的大部分市场份额,版本从IE6到IE10,所有前段工作者都必须面对和解决多个ie浏览器对代码的兼容性问题。在很多情况下,我们需要专门针对IE写css样式,即针对IE的css hack,下面将详细介绍这些内容:

1、常见的特殊符号的应用:

IE6:

_selector{property:value;}

selector{property:value;property:value !important;} //IE6 不支持同一选择符中的 !important

IE7:

+selector{property:value;}

IE8:

selector{property:value\0;}

IE6 & IE7:

*selector{property:value;}

IE6 & IE7 & IE8:

selector{property:value\9;}

总结起来,如下:

其中,S表示Standards Mode即标准模式,Q表示Quirks Mode,即兼容模式。

(了解更多Quirks模式、Strict(Standars)模式?)

hack 示例 IE6(S) IE6(Q) IE7(S) IE7(Q) IE8(S) IE8(Q)
* *color Yes Yes Yes Yes No Yes
+ +color Yes Yes Yes Yes No Yes
- -color Yes Yes No No No No
_ _color Yes Yes No Yes No Yes
# #color Yes Yes Yes Yes No Yes
\0 color\0 No No No No Yes No
\9 color\9 Yes Yes Yes Yes Yes Yes
!important color:blue !important;
color:green;
No No Yes No Yes No

2、条件注释语句(<!–[if IE]> <![endif]–>)

所有的IE可识别

仅IE6可识别

IE6以及IE6以上版本可识别

IE7以下版本可识别

lt 表示less than 当前条件版本以下的版本,不包含当前版本。

gte 表示greeter than or equal 当前版本以上版本,并包含当前版本。

lte 表示less than or equal 当前版本以下版本,并包含当前版本。

3、meta声明

由于IE8 可能会将页面按照 IE7 模式进行渲染,针对 多版本IE的现状,通常会采用设置 X-UA-Compatible HTTP 头的方式将页面在IE中采用统一的渲染模式。

4、其他(/*\**/注释法)

网上也流传着这样一种ie hack方法

.color1{ color:#F00; color/*\**/:#00F /*\**/}/*IE6,IE7,IE8,FF,OP,SA识别*/
.color2{ color:#F00; color /*\**/:#00F /*\9**/}/*IE7,IE8,FF,OP,SA识别*/
.color3{ color:#F00; color/*\**/:#00F \9}/*IE6,IE7,IE8识别*/
.color4{ color:#F00; color /*\**/:#00F\9}/*IE7,IE8识别*//*“color”和“/*\**/”之间有个空格*/

分析下:
background-color:blue; 各个浏览器都认识,这里给firefox用;
background-color:red\9;\9所有的ie浏览器可识别;
background-color:yellow\0; \0 是留给ie8的,但笔者测试,发现最新版opera也认识,汗。。。不过且慢,后面自有hack写了给opera认的,所以,\0我们就认为是给ie8留的;
+background-color:pink; + ie7定了;
_background-color:orange; _专门留给神奇的ie6;
:root #test { background-color:purple\9; } :root是给ie9的,网上流传了个版本是 :root #test { background-color:purple\0;},呃。。。这个。。。,新版opera也认识,所以经笔者反复验证最终ie9特有的为:root 选择符 {属性\9;}
@media all and (min-width:0px){ #test {background-color:black\0;} } 这个是老是跟ie抢着认\0的神奇的opera,必须加个\0,不然firefox,chrome,safari也都认识。。。
@media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }最后这个是浏览器新贵chrome和safari的。

好了就这么多了,特别注意以上顺序是不可以改变的。css hack虽然可以解决个浏览器之间css显示的差异问题,但是毕竟不符合W3C规范,我们平时写css最好是按照标准来,这样对我们以后维护也是大有好处的,实在不行再用。

区别不同浏览器的CSS hack写法:

区别IE6与FF:
background:orange;*background:blue;

区别IE6与IE7:
background:green !important;background:blue;

区别IE7与FF:
background:orange; *background:green;

区别FF,IE7,IE6:
background:orange;*background:green !important;*background:blue;

注:IE都能识别*;标准浏览器(如FF)不能识别*;
IE6能识别*,但不能识别 !important,
IE7能识别*,也能识别!important;
FF不能识别*,但能识别!important;

IE6 IE7 FF
* ×
!important ×

——————————————————
另外再补充一个,下划线”_”,
IE6支持下划线,IE7和firefox均不支持下划线。

IE6 IE7 FF
* ×
!important ×
_ × ×

于是大家还可以这样来区分IE6,IE7,firefox
: background:orange;*background:green;_background:blue;

注:不管是什么方法,书写的顺序都是firefox的写在前面,IE7的写在中间,IE6的写在最后面。

28

改写响应式网站常用CSS属性及使用方法总结(未完)

其实这些属性即使平时也是常用的,只是在改写响应式网站时,个人认为是更为常用的。由于响应式网站要适应各种屏幕宽度,所以要求制作者在使用CSS时能更强的运用好CSS的各种属性,处理好网站中的文本、图片、背景图片等。改写响应式网站,尤其是现有的PC网站强改响应式网站,要达到尽量好的适应效果,必须灵活运用CSS的各种属性。
下面内容一些通俗易懂的语言做了解释,非那些大网站写得好像不是给我这种文化水平低的人看的内容似的,都是给专业人士看的似的,可还有几个专业人士去查看你那些大学没毕业就看不懂的语言。生气…

一、CSS文本类

text-overflow 属性

默认值:clip
继承性:no
版本: CSS3
JavaScript语法:object.style.textOverflow=”ellipsis”
语法:text-overflow: clip|ellipsis|string;
以下值的前提是行定了宽度和高度。
clip 多余部分剪切(或者叫隐藏)。
ellipsis 如有多余文本,在行最末处以省略号显示(占一字宽度)。
string 按上一个值去理解,也就是把上一个值显示省略的部分换成你自己设定的内容(没使用过,看解释感觉我个人感觉没什么太大的实际意义,没研究)。

在使用ellipsis值时,要使用white-space: nowrap;和overflow: hidden;联合使用才能达到效果。
而clip值我一般是在写响应式时强制解除ellipsis的时候使用,也可能是我对它的理解还不够没感觉还有别的什么用处。

CSS示例:
div.test
{
text-overflow:ellipsis;
white-space: nowrap; //文字不换行
overflow: hidden; //溢出隐藏
}

ellipsis效果:

织梦先生

transform 属性
默认值: none
继承性: no
版本: CSS3
JavaScript 语法: object.style.transform=”rotate(7deg)”

CSS示例:
div
{
transform:rotate(-45deg);
-ms-transform:rotate(-45deg); /* IE 9 */
-moz-transform:rotate(-45deg); /* Firefox */
-webkit-transform:rotate(-45deg); /* Safari 和 Chrome */
-o-transform:rotate(-45deg); /* Opera */
}

效果:

织梦先生

二、CSS背景图片类

background 属性

默认值: not specified
继承性: no
版本: CSS1 + CSS3
JavaScript 语法: object.style.background=”white url(paper.gif) repeat-y”
background-color 规定要使用的背景颜色。
background-position 规定背景图像的位置。
background-size 规定背景图片的尺寸。 (CSS3属性)
background-repeat 规定如何重复背景图像。
background-origin 规定背景图片的定位区域。 (CSS3属性)
background-clip 规定背景的绘制区域。 (CSS3属性)
background-attachment 规定背景图像是否固定或者随着页面的其余部分滚动。
background-image 规定要使用的背景图像。
inherit 规定应该从父元素继承 background 属性的设置。

CSS示例:
body
{
background: #00FF00 url(bgimage.gif) no-repeat fixed top;
}

background-position 属性

默认值: 0% 0%
继承性: no
版本: CSS1
JavaScript 语法: object.style.backgroundPosition=”center”
值:
top left
top center
top right
center left
center center
center right
bottom left
bottom center
bottom right
如果只规定了一个关键词,那么第二个值将是”center”。
第一个值是水平位置,第二个值是垂直位置。
左上角是 0% 0%。右下角是 100% 100%。
可以使用百分比(%),也可以使用像素(px)

CSS示例:
body
{
background-image:url(‘bgimage.gif’);
background-repeat:no-repeat;
background-attachment:fixed;
background-position:center;
}

提示:您需要把 background-attachment 属性设置为 “fixed”,才能保证该属性在 Firefox 和 Opera 中正常工作。

三、图片类

opacity属性

默认值: 1
继承性: no
版本: CSS3
JavaScript 语法: object.style.opacity=0.5
值:
value 规定不透明度。从 0.0 (完全透明)到 1.0(完全不透明)。
inherit 应该从父元素继承 opacity 属性的值。

CSS示例:
div{opacity:0.5;}

效果:

织梦先生
织梦先生
织梦先生
织梦先生
织梦先生
23

sdcms常用手册汇总

一、sdcms模板语法规则

1.变量表示(或常量)
{name}将被解析成<%=name%><%=name%><%=name%>,表示显示变量name的值,其中的“name”由英文字母、数字和下划线组成首字母必须是英文字母或者下划线。

2.条件判断
{if *}{elseif *}*{else}*{/if} 或{if *}{/if} 其中{if *}中的*就是此判断语句的条件表达式,符合Asp的表达式。

3.模板包含
格式:{sdcms:include(“路径+模板名称+后缀”)}
示范:{sdcms:include(“sdcms_head.asp”)}
说明:上述示范表示包含当前模板所在文件夹的“sdcms_head.asp”文件

4.定义变量
{dim a:a=1}将被解析为<%dim a:a=1%><%dim><%a=1%>

如果您不习惯这套语法,也可以直接在模板中书写Asp代码,例如:<%=now()%><%response.write><%=test%>
<%dim a:a=”1%”>,相当于定义了个变量a,且值为1
<%=name%>

二、sdcms全局标签

什么是全局标签?
全局标签意思是在SDCMS的任何模板页面均可正常调用的标签。
Continue reading

18

个人总结的织梦手册(实用一)

//作者:莪叆啰    整理:织梦先生    QQ:1234567

//织梦的网站查询手册

//红色为问题集  //橄榄色为注释  //紫色为拓展

 

1.网站标题(优化):
{dede:field.title/}_{dede:global.cfg_webname/}

 

2.当前名称:

{dede:field name='typename'/}

 

3.导航条(父类、子类):

 

4.面包屑:

生成的代码为 <a href=”#”>首页</a> > <a href=”#”>新闻动态</a>

函数的位置 include/typelink.class.php
Continue reading

13

发带有SQL语句的文章时被百度云加速拦截的解决方法

今天又碰到新问题了,从昨天就开始研究怎么禁用WordPress的自动保存和修订版本问题,在网上找了很多方法,也只是禁用了自动保存功能,禁用修订版本还是没有实现,在测试这两项功能时,由于发布修改的文章内容中带我SQL语句(当时的提示语:问题描述  mrdede.com开启了安全防护策略。您刚才的操作被安全防护策略禁止,可能的操作是:提交某个语句、SQL命令、异常数据提交等),点击“发布”或“更新”后,出现如下图跳转,也就是发布更新不成功,被拦截。

被百度云加速拦截

自已发带有SQL语句的文章时被百度云加速拦截的解决方法

我也看到了提示页下的百度云加速的提示,但是刚开始一直以为就是服务器上安装的安全狗的问题,之后在服务器上就是各种修改安全策略等等,还是不行,最后没招儿了,就研究一下百度云加速方面吧(现在想想,可能我真是有些脑钝啊!)。

在百度云加速中找来找去,发现一个添加IP白名单的位置(我的网站>>对应网站的“配置选项”>>安全>>Web应用防火墙(WAF防护)>>),如下图:

百度云加速安全策略白名单在此处添加自己的IP或IP段,一分钟后,测试发布更新带有SQL语句的文章,成功!!! Continue reading

12

忘记织梦管理员密码怎么修改

织梦CMS网站内容管理系统,是国内用户最多的网站程序,可再开发性强,深受广大站长朋友的喜爱。那么我们在初装的时候,由于某些问题或者是莫名的出错,造成织梦后台无法修改管理员密码,总是提示密码不正确。以前我也时不时的会碰到这种问题,现在把修改方法写出来,希望能帮助到个位和我一样喜爱织梦CMS的朋友。

分析:

织梦管理员密码存储表:dede_admin(“dede_”,这是默认表前缀)

织梦管理员密码加密方式:MD5

织梦管理员密码取位方法:MD5(32位小写)后,去掉前去5位,去掉后去7位,取中间20位

修改方法一:

MD5(32位小写)加密“admin”(不含引号)后,得21232f297a57a5a743894a0e4a801fc3,按上面的取位方法,得f297a57a5a743894a0e4

进入数据库,找到dede_admin表,浏览进入,编辑ID为1的条目,修改字段为pwd下的值为f297a57a5a743894a0e4

点击“执行”或“保存”,写成(现在管理员密码即为admin)。

修改方法二:

使用织梦cms后台的SQL语句功能修改管理员密码

织梦后台>>系统>>SQL命令行工具>>运行SQL命令行>>单行命令(支持简单查询)

在表单处输入

点击“确定”,完成(现在管理员密码即为admin)。

注:这只是两个基本的修改管理员密码的方法,具体你想怎么修改,扩展一下思维也是可以的。

12

禁用WordPress自动保存与修订历史功能

在新版本的WordPress博客程序中,避免数据丢失,添加了自动保存功能,默认开启了这一功能。用户在使用WordPress撰写博文时,每隔一段时间,WordPress都会将用户所添加的内容进行保存。

有利就有弊,与此对应的弊端是,一旦WordPress保存一次,WordPress的MySQL数据库中的wp_posts表里就会增加一行无用数据,一段时间后,此举会使得用户的数据库里含有大量的垃圾内容,使得数据库不停的增大,最后性能也会下降。

现在开始看看如何关闭wordpress的自动保存功能,具体步骤如下:

一、修改post-new.php文件

禁用自动保存 WordPress程序下wp-admin文件夹中找到post-new.php和post.php文件

在post-new.php文件中搜索以下代码:

在post.php文件中搜索以下代码:

搜索到结果,然后在其前面加上“//”(不含引号)注释掉即可;

切记:在post.php文件搜索结果上一行判断代码的末尾加一个英文分号,否则发布会出错。

或者把post.php文件搜索结果上一行的if ( 'attachment' !== $post_type )也注释掉。我不懂PHP,但是我用我的笨脑瓜去想:判断的结果都不要了,那还要那个判断有什么用。你说呢?

二、修改wp-config.php文件
Continue reading

10

出了点小错,由于站点ID/通信KEY等关键信息丢失导致Discuz!云平台服务出现异常

症状:

在使用Discuz3.2搭建论坛时,所有安装正确的完成后,在应用的插件中开启QQ互联后,出现了假开启现象。之后到 工具>>云平台诊断工具 中,查看到没有显示ID和KEY。

在百度上搜索了好一会,看到了各种解决办法,主要分为两种方法:1.在应用中关闭QQ互联,云平台诊断工具中删除ID和KEY并改为未注册,后重新开启QQ互联;2,使用SQL操作数据库。由于本人对数据库的SQL语句不是很了解,所以没有使用那种方法,开始研究第一种方法,可是在关闭QQ互联时,又出问题了,具体的提示内容忘记了,反正意思就是出错。

结果又搜索了好一会,无解。最后,通过我的另一种思路,修改成功。

修改思路:

现在是在后台无法关闭QQ互联,那么我可以通过直接进入数据库,修改对应数据表中记录的插件开关(1或0)。

修改方法:

进入本站对应的数据库,找到数据表pre_common_plugin(“pre_”这是默认的表前缀),点击“浏览”此表,进入后找到name字段值为“QQ互联”的内容,这时看他的available字段值,应该是“1”,点击“编辑”,把available的字段值修改为0,点击“保存”或“执行”。

回到论坛后台,应用>>插件,这时,看QQ互联就是未开启状态,点击开启,同意协议……之后按提示操作;

再到“云平台诊断工具”看一下,这时ID和KEY就出现了,应该是已经正常了。

注:此博客中多为我亲身经历的程序问题,所以修改方法也都是自己在实际中运用过的。如有疑问可联系本人(织梦先生),互相交流学习。

09

织梦网站搬家还原数据库后不能正常链接到模板或CSS文件

今天一个朋友由于原来的服务器公司的误操作,造成VPS上网站的数据大量丢失,一气之下找了服务商。

网站搬家后,在织梦后台还原数据,生成首页、栏目和文档,之后显示不正常,结果找我去帮忙。

我看了下源码,显示CSS的链接地址是/templets/default/style/***.css。

检查了一下,系统设置的模板文件夹是zs,是正确的;又看了下“生成”>>首页模板文件,也是正确的。使用动态查看首页,还是不正常。

弄了好一会,后来想起来织梦猫的模板详情页写过一句话,还原数据库后无论模板文件夹输入是否正确,都要重新点击一下确定(不是原话,但大体是这个意思)。

我就把在织梦的系统设置下改了下模板文件名,发现页面链接中显示了我新改的文件名,我又改回原来的zs,结果,正常显示了。

这是亲身经历,让我印象深刻。

在帮别人修改织梦模板或者是织梦后台程序的过程中,也是自己学习和进步的好机会。

总结:无论是在织梦网站搬家后还原数据库,还是新织梦网站还原下载来的带数据库的模板,在出现显示不正常的情况下,首先进入织梦后台,系统>>系统基本参数,查看“模板默认风格”是否正确,不正确的修改为正确的文件夹名,正确的也要点一下“确定”;其次,生成>>更新主页HTML,查看“选择主页模板”的文件夹名和首页模板名,是否正确,还是不正确的修改为正确的,正确的也要点一下“生成HTML”。

注:这种方法只是织梦网站显示不正常的方法之一,网站的不正常显示当然是有着很多的可能性的,这只是其中之一。

如果有相关问题的可以联系本人,一起研究、学习交流。

27

怎样自己制作网页,使用织梦程序搭建网站

随着网络时代的迅猛发展,人们已不只满足于浏览各个网站,除专业网站设计工作人员外,很多网民也已开始制作自己的行业网站与个人博客网站等。

个人制作网站,有的是因为感觉网页制作很神秘,好奇心驱使,为自己的业余生活增添一些满足感,与朋友聊天中,也有一些与众不同的炫耀;有的是接触淘宝客行业后转为网站推广,而接触网站制作,等等的多种原因使用我们玩起了网站。

不管是什么目的,我们已经走到了这里,不管是做为业余爱好还是作为自己的生财之道,那走就要走得踏踏实实。

本人也是自学网页制作等相关知识,没学过也不懂英语,经常写、经常看、经常说,那些html标签、CSS的用法等,自然就记下了。

以前曾在网上看到过一句话,多年来一直记忆犹新:人,可以身无分文,但不可以手无寸铁!

在这里,我们的“寸铁”就把制作网页的工具与HTML+CSS+SQL等知识。

那么,我们怎么自己制作网页?怎么使用织梦程序搭建自己的网站?如下:
1.工具
网页制作工具Adobe Dreamweaver,一般常叫DW。我就是边看视频教程,边用这个工具学起的。
制图工具,Photoshop、Fireworks(Dreamweaver、Fireworks、Flash这三个工具统称为网页三剑客),制图可以不用专门去学,碰到什么问题再到百度上去搜也是可以的。 Continue reading