2012年7月

<p>关于CSS对各个浏览器兼容已经是老生常谈的问题了, 网络上的教程遍地都是.以下内容没有太多新颖, 纯属个人总结, 希望能对初学者有一定的帮助.

一、CSS HACK
以下两种方法几乎能解决现今所有HACK.

1, !important

随着IE7对!important的支持, !important 方法现在只针对IE6的HACK.(注意写法.记得该声明位置需要提前.)
<style>
#wrapper
{
width: 100px!important; / IE7 FF /
width: 80px; / IE6 /
}
</style>

2, IE6/IE77对FireFox

 html 与 html 是IE特有的标签, firefox 暂不支持.而 html 又为 IE7特有标签.
<style>
#wrapper
{
#wrapper { width: 120px; } /
 FireFox /
html #wrapper { width: 80px;} / ie6 fixed /
 html #wrapper { width: 60px;} / ie7 fixed, 注意顺序 /
}
</style>

<span>注意:
 html 对IE7的HACK 必须保证HTML顶部有如下声明:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd";></span>

二、万能 float 闭合(非常重要!)

关于 clear float 的原理可参见 [How To Clear Floats Without Structural Markup]
将以下代码加入Global CSS 中,给需要闭合的div加上 class="clearfix" 即可,屡试不爽.
<style>
/ Clear Fix /

.clearfix:after 

content:"."; 
display:block; 
height:0; 
clear:both; 
visibility:hidden; 

.clearfix 
{
display:inline-block;
}
/ Hide from IE Mac 
.clearfix {display:block;} 
/ End hide from IE Mac 
/ end of clearfix /
</style>
三、其他兼容技巧(再次啰嗦)

1, FF下给 div 设置 padding 后会导致 width 和 height 增加, 但IE不会.(可用!important解决)
2, 居中问题.
1).垂直居中.将 line-height 设置为 当前 div 相同的高度, 再通过 vertical-align: middle.( 注意内容不要换行.)
2).水平居中. margin: 0 auto;(当然不是万能)
3, 若需给 a 标签内内容加上 样式, 需要设置 display: block;(常见于导航标签)
4, FF 和 IE 对 BOX 理解的差异导致相差 2px 的还有设为 float的div在ie下 margin加倍等问题.
5, ul 标签在 FF 下面默认有 list-style 和 padding . 最好事先声明, 以避免不必要的麻烦. (常见于导航标签和内容列表)
6, 作为外部 wrapper 的 div 不要定死高度, 最好还加上 overflow: hidden.以达到高度自适应.
7, 关于手形光标. cursor: pointer. 而hand 只适用于 IE.

P.S 至于IE5以及其他浏览器就没有必要兼顾了. 在这上面花时间不值得.网页:完美兼容IE6/IE7/FF的通用方法</p>

<p>Apache和IIS共用80端口,很多情况下为了实现某些目的,又或者局限于什么因素,需要一台服务器装多httpd软件,最常见的莫过于Apache和IIS了。本文的意图就是记录如何让Apache代理IIS,使外网可以共用一个端口访问。</p><p>需要的软件:ApacheIIS。无语……</p><p>假设你想外网使用Apache的服务并且使用80端口来访问网站,那么httpd.conf里就设置“Listren 80”;然后把需要代理的IIS站点,设置成任意(80等已用端口除外)端口,设置好后开始配置Apache的httpd.conf文件。以下是我实测,可能和网上其他的有一点点区别,但是我是可以实现了,下面列出几个关键部分。</p><p>Listren 80
<span>#</span>别人总是说要加IP在前面,我是没加
LoadModule proxy_module modules/mod_proxy.so
LoadModule proxy_http_module modules/mod_proxy_http.so
<span>#</span>这两句前的井号去掉,我只用到了http
<span>#</span>之后我设置了通过IP访问的处理方法www.ctusky.com
NameVirtualHost <span></span>:80
<span><</span>VirtualHost <span>
</span>:80<span>></span>
DocumentRoot <span>"x:/html/ipweb"</span>
ServerName localhost
ServerName <span></span>
<span><</span>/VirtualHost<span>></span>
<span>#</span>然后就是设置代理了,假设IIS里设置的被代理端口为81
<span><</span>VirtualHost <span>
</span>:80<span>></span>
ServerName a.com
ProxyPass / http:<;span>//b.com:81/</span>
ProxyPassReverse / http:<;span>//b.com:81/</span>
<span><</span>/VirtualHost<span>></span>
<span>#</span>记得换域名</p><p>通过上面的设置,当你访问a.com时,Apache就会把他交给由IIS工作的b.com的81端口了,前提是这个b.com:81能被访问到,如果你是通过内网端口映射,且不想那么麻烦,那么就定义一下自己的HOSTS表。好了,完稿。</p><p>来自:http://www.ctusky.com/12/1274/ ;</p>

<p>工作中遇到IIS与tomcat需共用80端口(单IP),按网上的帖子试了N遍未果。后咨询高人,用apache做代理实现了。</p><p> </p><p>1. 网站web1配置IIS使用端口81,启动IIS</p><p>注意:
记住设置完成后要停止服务后重启,并用浏览器测试用"http://网站服务器局域网IP:81"可以正常访问</p><p>2. 网站web2配置Tomcat下面的server.xml配置文件,使用端口8081并重启Tomcat使配置生效,类似于下面:</p><p><Connector port="8081" proxyPort="80"/></p><p>注意:
 记住设置完成后要停止服务后重启,并用浏览器测试用"http://网站服务器局域网IP:8081"可以正常访问</p><p>3. 配置DNS(即域名解析服务已完成)</p><p> 确保网站1的域名会解析成web服务器的公网ip地址
e.g: www.web1.com -> 202.x.x.194</p><p> 确保网站2的域名会解析成你们web服务器的公网ip地址
e.g: www.web2.com -> 202.x.x.194</p><p>4. 安装Apache2.x</p><p>5. 配置httpd.conf
 2.1 找到下面那几行,然后去掉前面的

  #LoadModule proxy_module modules/mod_proxy.so
  #LoadModule proxy_ajp_module modules/mod_proxy_ajp.so
  #LoadModule proxy_balancer_module modules/mod_proxy_balancer.so
  #LoadModule proxy_connect_module modules/mod_proxy_connect.so
  #LoadModule proxy_ftp_module modules/mod_proxy_ftp.so
  #LoadModule proxy_http_module modules/mod_proxy_http.so
 2.2 找到下面这行,去掉前面的*号
  Include conf/extra/httpd-vhosts.conf</p><p>6. 配置Apache目录下面的"conf/extra/httpd-vhosts.conf"
--------------------------------------
#
# Use name-based virtual hosting.
#
NameVirtualHost 网站服务器局域网IP:80</p><p>#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost 网站服务器局域网IP:80>
    ProxyPreserveHost On
    ServerAdmin 的域名(比如www.web1.com)
    ServerName web1的域名(比如www.web1.com)
    ProxyPass / http://网站服务器局域网IP:81/
    ProxyPassReverse / http://网站服务器局域网IP:81/
    ErrorLog "logs/web1的域名(比如www.web1.com)-error.log"
    CustomLog "logs/web1的域名(比如www.web1.com)-access.log" common
</VirtualHost></p><p><VirtualHost 网站服务器局域网IP:80>
    ProxyPreserveHost On
    ServerAdmin 的域名(比如www.web2.com)
    ServerName web2的域名(比如www.web2.com)
    ProxyPass / http://网站服务器局域网IP:8081/
    ProxyPassReverse / http://网站服务器局域网IP:8081/
    ErrorLog "logs/web2的域名(比如www.web2.com)-error.log"
    CustomLog "logs/web2的域名(比如www.web2.com)-access.log" common
</VirtualHost></p><p>下面是某人试验所用的例子:
--------------------------------------
#
# Use name-based virtual hosting.
#
NameVirtualHost 127.0.0.1:80</p><p>#
# VirtualHost example:
# Almost any Apache directive may go into a VirtualHost container.
# The first VirtualHost section is used for all requests that do not
# match a ServerName or ServerAlias in any <VirtualHost> block.
#
<VirtualHost 127.0.0.1:80>
    #ProxyPreserveHost On
    ServerAdmin 
    #DocumentRoot "C:/Inetpub/wwwroot"
    ServerName iis.test123.com
    ServerAlias iis.test123.com
    ProxyPass / http://localhost:81/
    ProxyPassReverse / http://localhost:81/
    ErrorLog "logs/iis.test123.com-error.log"
    CustomLog "logs/iis.com-access.log" common
</VirtualHost></p><p><VirtualHost 127.0.0.1:80>
    #ProxyPreserveHost On
    ServerAdmin 
    #DocumentRoot "D:apache-tomcat-6.0.24webappsexamples"
    ServerName tomcat.test123.com
    ProxyPass / http://localhost:8081/
    ProxyPassReverse / http://localhost:8081/
    ErrorLog "logs/tomcat.test123.com-error.log"
    CustomLog "logs/tomcat.test123.com-access.log" common
</VirtualHost></p><p>7. 启动Apache</p><p> </p><p>IIS与tomcat共用80端口的问题是解决了,3网站用域名访问都OK了。但是web2中jsp页面显示不完整。因为我用tomcat虚拟主机发布了两个网站,可能tomcat的server.xml文件还没配置好吧。未完待续。。</p><p>
</p>

<p><span>        随着越来越多的公司对软件质量的重视和对软件专业人才的需求,取得软件测试技能认证证书将有助于职业生涯的提升,也是进入国际软件公司从事软件测试工作的敲门砖。越来越多招聘公司都把拥有软件测试认证证书的候选人作为优先录取的对象。拥有测试认证证书,成为国际知名公司软件测试职业通行证。 </span></p><p><span>       根据</span><span>QAI</span><span>的统计,</span><span>85%</span><span>的测试认证证书获得者认为工作起来更加充满自信;</span><span>13%</span><span>的通过者从公司获得了最高</span><span>$2500</span><span>的一次性奖金;</span><span>12%</span><span>的通过者立即获得了平均</span><span>10%</span><span>的涨薪。</span><span>18</span><span>个月后,</span><span>27% </span><span>的证书拥有者获得平均</span><span>23%</span><span>的薪水涨幅,</span><span>23%</span><span>获得升职。 </span></p><p><span>       软件测试领域的认证证书种类繁多,既有国际技能认证,也有我国水平认证。各个证书要求掌握的知识不同,社会认可度不同,考试方法不同。为了帮助学员了解当前国内外比较有影响力的软件测试认证的类型和特点,笔者根据有关资料,选择了<span>“</span></span><span>ISTQB</span><span>”</span><span>,<span>“</span></span><span>QAI</span><span>”</span><span>和<span>“</span>软件评测师<span>”</span>三项认证进行对比分析。</span></p><p><span>        </span></p><p></p><p> </p><p><span>      说明:数据来自各项证书官方网站的介绍,数据是<span>2011</span>年<span>10</span>月。如果对数据存在不准确之处,欢迎各位指出。作者的邮箱是<span></span></span></p><p><span>      作者简介:崔启亮,北京大学软件与微电子学院硕士研究生导师,本地化世界网创始人。</span></p>(责任编辑:admin)

<p></p><p>#gzip在线压缩 </p><p> gzip             on;
 gzip_min_length  1000;
 gzip_proxied     expired no-cache no-store private auth;
 gzip_types       text/plain application/xml;</p><p>
    server {
        listen       80;
        server_name  localhost;
        charset utf-8;
  root         c:/app/h;</p><p>        location / {
            index   index.php index.html index.htm;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include        fastcgi_params;
   
        }</p><p>#重定向二级目录,自动加反斜杠
  if (-d $request_filename){&nbsp;rewrite&nbsp;^/(.*)([^/])$ 

  • 1
  • 2