Hot For Coding

IE6除a标签外其它标签伪类解决!

做前端样式都知道IE6伪类的问题,虽然这个问题到现在也不具有时效性,并且使用IE6的人也渐渐减少,但解决IE6伪类的方法还是值得借鉴。

IE6似乎只对A标签伪类有效,但如今的页面架构以不同以往的简单。div、p、span、li等标签的伪类样式更是经常使用。目前解决IE6伪类的方法只能通过JavaScript去实现,比如hover伪类就相对于JavaScript的移入移出事件。

自己写JavaScript

比如要给DIV一个hover伪类,触发时背景颜色改变为红色。

div { width:300px; height:300px; background:blue;}
div:hover { background:red; }

...

READ ALL

IE6不能加载样式,原来是编码导致!

我向来是鄙视IE浏览器的,它总是不合群,特别是IE6。痛苦的是虽然微软已经开始IE6倒计时,国外使用IE6者几乎绝灭,而国内IE6用户依然众多。公司不肯放弃这些特殊用户,只得累生死调IE6兼容。

今天这个IE6出现的错误比较独特,页面打开后跟其它页面效果差别非常大,等于说是IE6下完全没有样式的HTML页面。首先得确定问题方向,因为样式文件是外链的,所以我在样式文件里给body来个背景颜色,结果发现除IE6以外其它浏览器背景都能正常变色。于是我在html页面直接加上body样式,这下IE6才生效。

html页面加写样式对于IE6有效,CSS文件写样式对于IE6无效只能说明IE6下无法加载样式文件。

...

READ ALL

按代码量算钱,伤不起啊!

早闻不少公司按代码量计费,如今我怀疑公司也这么干了。

我不知道按代码量算钱在财务部那里是怎么算的?不过百分九十九几乎都是把代码放到一个工具里计算行数或者字数来确定你的工作量,然后按字母/按行算钱。难怪有些人被逼无奈把一行代码完成的事拆成N行来写,注释也更多了一些,空白也更多了一些,代码越臃肿工钱越多。

每个人都有自己的代码风格,包括我。我历来追求精简,提高代码运行效率,因此我的代码拿到了财务部那里经过工具一算就是少得可怜的工钱。想想有点亏,我应该尽量把代码写的多一些。甚至可以这样

function(){
  $a=1;
  $b=$a;
  $c=$b
  ...
  return $c;
}

...

READ ALL

文件名编码后浏览器访问提示找不到文件解决方法

昨天做一个项目,其中有一个需求是每一张图片对应一小段文字对图片的说明,普通的做法是新建一个表然后把图片名与说明文字都记录到数据库内。仔细考虑后感觉这个应用不要数据库也能完成,我实现的方案是把说明文字url encode后当做文件名,这样当我读取文件的时候再把文件名url decode就可以后驱图片的文字说明了。

可是通过浏览器访问图片时却提示找不到文件,如有一张图片的说明文字为琼台博客,url encode后生成的文件名如下

%E7%90%BC%E5%8F%B0%E5%8D%9A%E5%AE%A2.jpg

于是我通过浏览器访问图片,提示找不到

...

READ ALL

Python除法不能求小数位数解决方法

求一个算式

a = 1
b = 2
c = 3
 
print c * (a / b)

运行结果总是0,反复检查拆开以后,发现在Python里,整数初整数,只能得出整数

也就是ab这个结果永远是0,只要把a或者b其中一个数改成浮点数即可。

a = 1
b = 2
c = 3
 
print c * (a / float(b))
print c * (float(a) / b)

这样才能准确算出ab的正确结果,当然,如果ab大,并且不需要小数位数部分可以不用float。

如:

a = 1
b = 2
c = 3
 
print c / a # 3
print c / b # 1
print c / float(b) # 1.5

...

READ ALL

web.py获取上传文件名一个需要注意的细节

直接切入主题,从HTML页面上传文件,Python接收处理。但其中发现有些小问题,把它写出来,算是积累吧!

HTML页面代码:

<form action="/admin/addgoodsaction/" method="post" enctype="multipart/form-data">
  <input type="file" name="image" />
</form>

Python处理部分代码:

i = web.input()

return i.image.filename

执行结果切提示:

<type 'exceptions.AttributeError'> at /admin/addgoodsaction/
'str' object has no attribute 'filename'

...

READ ALL

Python version 2.7 required, which was not found in the registry

安装PIL库的时候,直接提示

Python version 2.7 required, which was not found in the registry

如图:

full

大意是说找不到注册表,网上搜索解决方案。

新建一个register.py文件写入代码:

import sys
  
from _winreg import *
  
# tweak as necessary
version = sys.version[:3]
installpath = sys.prefix
  
regpath = "SOFTWARE\\Python\\Pythoncore\\%s\\" % (version)
installkey = "InstallPath"
pythonkey = "PythonPath"
pythonpath = "%s;%s\\Lib\\;%s\\DLLs\\" % (
    installpath, installpath, installpath
)
  
def RegisterPy():
  try:
    reg = OpenKey(HKEY_CURRENT_USER, regpath)

  except EnvironmentError as e:
    try:
      reg = CreateKey(HKEY_CURRENT_USER, regpath)
      SetValue(reg, installkey, REG_SZ, installpath)
      SetValue(reg, pythonkey, REG_SZ, pythonpath)
      CloseKey(reg)
    except:
      print "*** Unable to register!"
      return
    print "--- Python", version, "is now registered!"
    return

  if (QueryValue(reg, installkey) == installpath and
    QueryValue(reg, pythonkey) == pythonpath):
    CloseKey(reg)
    print "=== Python", version, "is already registered!"
    return

  CloseKey(reg)

  print "*** Unable to register!"
  print "*** You probably have another Python installation!"

...

READ ALL

web.py模板如何使用目录层级

web.py的模板使用非常容易,但有时候我们需要做目录层级以便管理。那么如何使用目录层级的模板呢?

通常我们使用模板的时候先声明模板文件夹

render = web.template.render('templates')

使用templates文件夹下index.html模板

return render.index()

使用templates文件夹下list.html模板

return render.list()

以上所有的html模板文件只放在tempates目录下,如果要在templates下建目录并使用目录下的模板文件只需加目录名称即可。

...

READ ALL

Linux awk命令

Linux有一个非常好用的命令awk,很多场景下都需要它,比如我要看看我的Nginx有没有运行,如果运行的话我就要杀掉它

获取NginxPID的命令如下:

[root@test01 ~]# ps -le | grep nginx
5 S     0 12601     1  0  80   0 - 31048 sigsus ?        00:00:00 nginx
5 S     0 30122 12601  0  80   0 - 31164 ep_pol ?        00:00:00 nginx
5 S     0 30123 12601  0  80   0 - 31164 ep_pol ?        00:00:00 nginx

...

READ ALL

利用Google API生成二维码

二维码的诞生就犹如短网址一样,应该是当前IT产物的代表了。当初微博推出短网址后,各大平台纷纷效仿,甚至API都提供了。现在二维码也在逐渐的成为一种规范,几乎百分之八十的应用都生成了自己的二维码。

谷歌提供了一个生成二维码的接口,通过接口我们可以生成二维码,方便又快捷。

接口地址

http://chart.apis.google.com/chart?chs=宽高值x宽高值&cht=qr&chld=等级|边距&chl=内容

参数说明

  • 宽高值:生成二维码尺寸,单位是像素,目前生成的二维码都是正方形的,所以两个宽高值都设置为一样的值
  • 等级:四个等级,L-默认:可以识别已损失的7%的数据;M-可以识别已损失15%的数据;Q-可以识别已损失25%的数据;H-可以识别已损失30%的数据
  • 边距:生成的二维码离图片边框的距离
  • 内容:生成二维码的内容,但一定要URLENCODE

...

READ ALL