淘宝店铺导航栏CSS代码之分步详解

  1. /* 第一部分、静态背景颜色 */
  2. /* 1、首页/店铺动态/其它导航类目的背景色,这里设为红色 */
  3. .skin-box-bd .menu-list .link{background:red;}
  4. /* 2、所有分类的背景色(最左边的),一样设为红色 */
  5. .all-cats .link{background:red;}
  6. /* 到这里,发觉右边的颜色还没有变呢,好的,接着下一步 */
  7. /* 3、导航条整个分类段背景色,还是要设为红色,整体布局好看些 */
  8. .skin-box-bd .menu-list{background:red;}
  9. /* 注意观察,最右边还有一丝地方没有变 */
  10. /* 4、导航条背景色(是最底层了吧),修补导航右侧缺口,再设为红色 */
  11. .skin-box-bd{background:red;}
  12. /* 小结:有点成功感了!换换其它颜色试试看吧 */
  13. /* 背景色最好搭配页头背景图,才能整体大气美观 */
  14.  
  15. /* 第二部分、分隔线、静态文字的颜色 */
  16. /* 5、首页等分类的右边的分隔线颜色,设为白色 */
  17. .menu-list .menu{border-color:white;}
  18. /* 6、所有分类的右边的分隔线颜色,设为白色 */
  19. .all-cats .link{border-color:white;}
  20. /* 7、首页/店铺动态/其它导航类目的文字颜色 */
  21. .menu-list .menu .title{color:yellow;}
  22. /* 8、所有分类的文字颜色(最左边那个),*/
  23. .all-cats .link .title{color:yellow;}
  24. /* 小结:其实原来默认文字的颜色也挺好的 */
  25.  
  26. /* 第三部分、分类下的颜色 */
  27. /* 9、二级分类的背景色,设为灰色 */
  28. .popup-content{background:gray;}
  29. /* 10、三级分类的背景色,我设为深灰色 */
  30. .popup-content .cats-tree .snd-pop-inner{background:#504f4f;}
  31. /* 11、二级分类的文字颜色,设为黄色 */
  32. .popup-content .cat-name{color:yellow;}
  33. /* 12、三级分类的文字颜色。(如果后面要鼠标滑过变色<21.22>,这句要写) */
  34. .popup-content .cats-tree .snd-pop-inner .cat-name{color:yellow;}
  35. /* 小结:上面这句不写,和二级分类颜色是一样的 */
  36.  
  37. /* 第四部分、鼠标滑过变背景色 */
  38. /* 13、鼠标滑过首页/店铺动态/其它导航类目变换背景色,这设为蓝色 */
  39. .menu-list .menu-hover .link{background:blue;}
  40. /* 14、鼠标滑过所有分类(最左边那个)变换背景色,这同样设为蓝色 */
  41. .all-cats-hover .link{background:blue;}
  42. /* 15、鼠标滑过所有分类下的二级分类变换背景色,这设为蓝色 */
  43. .popup-content .cats-tree .cat-hd-hover{background:blue;}
  44. /* 16、鼠标滑过所有分类下的三级分类变换背景色,这设为深蓝色 */
  45. .popup-content .cats-tree .snd-cat-hd-hover{background:#160595;}
  46. /* 17、鼠标滑过导航类目下的宝贝分类变换背景色,这设为蓝色 */
  47. .menu-popup-cats .sub-cat-hover{background:blue;}
  48. /* 小结:这个所有分类,与首页后面的,是要分开设计的 */
  49.  
  50. /* 第五部分、鼠标滑过变文字颜色 */
  51. /* 18、鼠标滑过首页/店铺动态/其它导航类目变换文字颜色,这设为红色 */
  52. .menu-list .menu-hover .title{color:red;}
  53. /* 19、鼠标滑过所有分类(最左边那个)变换文字颜色,这同样设为红色 */
  54. .all-cats-hover .link .title{color:red;}
  55. /* 20、鼠标滑过导航类目下的宝贝分类变换文字颜色,这设为红色 */
  56. .menu-popup-cats .sub-cat-hover .cat-name{color:red;}
  57. /* 21、鼠标滑过所有分类下的二级分类变换文字颜色,这设为红色 */
  58.  .popup-content .cat-hd-hover .cat-name{color:red;}
  59. /* 22、鼠标滑过所有分类下的三级分类变换文字颜色,这设为红色 */
  60.  .popup-content .cats-tree .snd-cat-hd-hover .cat-name{color:red;}
  61. /* 小结:这部分还是默认白色的好看 */
  62.  
  63. /* 第六部分、导航项目激活状态 */
  64. /* 23、激活项目的文字背景色(难看,所以none)、文字颜色(选白色) */
  65. .skin-box-bd .menu-list .menu-selected .link .title{background:none;color:white;}
  66. /* 24、激活项目的项目背景色(项目框),选紫色 */
  67. .skin-box-bd .menu-list .menu-selected .link{background:purple;}
  68. /* 小结:最多人忽视这部分,其实也是很多人想知道的 */
  69.  
  70. /* 总结:如果可以的话,搞个傻瓜式的编辑器,就不简单了吗 */

 

 

---------------------------------------------------------------------

1:颜色代码可以是英文单词,如white(白)、black(黑)、red(红),

     也可以是白色#ffffff、黑色#000000等等表示。

2:背景色也可用图片,如:{background:url(图片地址);}

如何安全的存储密码

  过去一段时间来,众多的网站遭遇用户密码数据库泄露事件,这甚至包括顶级的互联网企业–NASDQ上市的商务社交网络Linkedin,国内诸如CSDN一类的就更多了。

  层出不穷的类似事件对用户会造成巨大的影响,因为人们往往习惯在不同网站使用相同的密码,一家“暴库”,全部遭殃。

  那么在选择密码存储方案时,容易掉入哪些陷阱,以及如何避免这些陷阱?我们将在实践中的一些心得体会记录于此,与大家分享。

如何安全的存储密码-1

  菜鸟方案

  直接存储用户密码的明文或者将密码加密存储。

  曾经有一次我在某知名网站重置密码,结果邮件中居然直接包含以前设置过的密码。我和客服咨询为什么直接将密码发送给用户,客服答曰:“减少用户步骤,用户体验更好”;再问“管理员是否可以直接获知我的密码”, 客服振振有词:“我们用XXX算法加密过的,不会有问题的”。 殊不知,密码加密后一定能被解密获得原始密码,因此,该网站一旦数据库泄露,所有用户的密码本身就大白于天下。

  以后看到这类网站,大家最好都绕道而走,因为一家“暴库”,全部遭殃。

  入门方案

如何安全的存储密码-2

  将明文密码做单向哈希后存储。

  单向哈希算法有一个特性,无法通过哈希后的摘要(digest)恢复原始数据,这也是“单向”二字的来源,这一点和所有的加密算法都不同。常用的单向哈希算法包括SHA-256,SHA-1,MD5等。例如,对密码“passwordhunter”进行SHA-256哈希后的摘要(digest)如下:
bbed833d2c7805c4bf039b140bec7e7452125a04efa9e0b296395a9b95c2d44c

  可能是“单向”二字有误导性,也可能是上面那串数字唬人,不少人误以为这种方式很可靠, 其实不然。

  单向哈希有两个特性:

  1)从同一个密码进行单向哈希,得到的总是唯一确定的摘要

  2)计算速度快。随着技术进步,尤其是显卡在高性能计算中的普及,一秒钟能够完成数十亿次单向哈希计算

  结合上面两个特点,考虑到多数人所使用的密码为常见的组合,攻击者可以将所有密码的常见组合进行单向哈希,得到一个摘要组合,然后与数据库中的摘要进行比对即可获得对应的密码。这个摘要组合也被称为rainbow table。

  更糟糕的是,一个攻击者只要建立上述的rainbow table,可以匹配所有的密码数据库。仍然等同于一家“暴库”,全部遭殃。以后要是有某家厂商宣布“我们的密码都是哈希后存储的,绝对安全”,大家对这个行为要特别警惕并表示不屑。有兴趣的朋友可以搜索下,看看哪家厂商躺着中枪了。

  进阶方案

如何安全的存储密码-3

  将明文密码混入“随机因素”,然后进行单向哈希后存储,也就是所谓的“Salted Hash”。

  这个方式相比上面的方案,最大的好处是针对每一个数据库中的密码,都需要建立一个完整的rainbow table进行匹配。 因为两个同样使用“passwordhunter”作为密码的账户,在数据库中存储的摘要完全不同。

  10多年以前,因为计算和内存大小的限制,这个方案还是足够安全的,因为攻击者没有足够的资源建立这么多的rainbow table。 但是,在今日,因为显卡的恐怖的并行计算能力,这种攻击已经完全可行。

  专家方案

如何安全的存储密码-4

  故意增加密码计算所需耗费的资源和时间,使得任何人都不可获得足够的资源建立所需的rainbow table。

  这类方案有一个特点,算法中都有个因子,用于指明计算密码摘要所需要的资源和时间,也就是计算强度。计算强度越大,攻击者建立rainbow table越困难,以至于不可继续。

  这类方案的常用算法有三种:

  1)PBKDF2(Password-Based Key Derivation Function)

  PBKDF2简单而言就是将salted hash进行多次重复计算,这个次数是可选择的。如果计算一次所需要的时间是1微秒,那么计算1百万次就需要1秒钟。假如攻击一个密码所需的rainbow table有1千万条,建立所对应的rainbow table所需要的时间就是115天。这个代价足以让大部分的攻击者忘而生畏。

  美国政府机构已经将这个方法标准化,并且用于一些政府和军方的系统。 这个方案最大的优点是标准化,实现容易同时采用了久经考验的SHA算法。

  2) bcrypt

  bcrypt是专门为密码存储而设计的算法,基于Blowfish加密算法变形而来,由Niels Provos和David Mazières发表于1999年的USENIX。

  bcrypt最大的好处是有一个参数(work factor),可用于调整计算强度,而且work factor是包括在输出的摘要中的。随着攻击者计算能力的提高,使用者可以逐步增大work factor,而且不会影响已有用户的登陆。

  bcrypt经过了很多安全专家的仔细分析,使用在以安全著称的OpenBSD中,一般认为它比PBKDF2更能承受随着计算能力加强而带来的风险。bcrypt也有广泛的函数库支持,因此我们建议使用这种方式存储密码

  3) scrypt

  scrypt是由著名的FreeBSD黑客 Colin Percival为他的备份服务 Tarsnap开发的。

  和上述两种方案不同,scrypt不仅计算所需时间长,而且占用的内存也多,使得并行计算多个摘要异常困难,因此利用rainbow table进行暴力攻击更加困难。scrypt没有在生产环境中大规模应用,并且缺乏仔细的审察和广泛的函数库支持。但是,scrypt在算法层面只要没有破绽,它的安全性应该高于PBKDF2和bcrypt。