分享
是一种美德

web前端框架推荐

mrnaas阅读(89)

 目前web前端开发非常火爆,导致了前端的一系列框架,层出不穷,很多学员都会问道传智播客的老师,关于web前端开发那么多的框架,不知道从哪里下手,也不知道该如何使用,这里传智播客的老师收集了目前互联网最具有代表性web 前端开发工具和框架,希望对大家有所帮助。
  1.Bootstrap

  Bootstrap是最受欢迎的 HTML、CSS 和 JS 框架,用于开发响应式布局、移动设备优先的 WEB 项目。
  2.NEC : 更好的CSS样式解决方案
  NEC包括了规范、框架、代码库、插件等内容,致力于为前端开发人员提供高效率高质量的前端页面开发解决方案,提高多人协作效率,也为非专业人员提供快速制作网页的解决方案。

  3.NEJ-Nice Easy Javascript
  简洁,美观,真正的跨平台web前端开发框架

  4.Foundation
  迄今为止最好的响应式前端框架,更快、更轻、更多功能、更灵活、更强大!

  5.Amaze UI
  是一个轻量级的前端框架, 基于开源社区流行前端框架编写,中国首个开源 HTML5 跨屏前端框架
  6.jquery weui
  是专为微信公众账号开发而设计的一个简洁而强大的UI库,包含全部WeUI官方的CSS组件,并且额外提供了大量的拓展组件,丰富的组件库可以极大减少前端开发时间。
  7. Layui – 经典模块化前端框架
  8.jQuery插件库-收集最全最新最好的jQuery插件
  写的更少,做的更多
  9.FrozenUI – 专注于移动web的UI框架
  简单易用,轻量快捷,为移动端服务的前端框架
  10.SUI Mobile
  轻量,小巧且精美的UI库,方便迅速搭建手机H5应用
  以上是在长期工作中总结出来的移动WEB UI框架资源,大家可以根据自己的业务需求去选择合适的WEB UI框架。

Mako 模版

mrnaas阅读(183)

Mako 模板是从文本流中进行解析的,流中可以包含任意内容: XML, HTML, email 文本,等等。模板中可以包含 Mako 特定的指令(directives),可用于表示变量或表达式替换,控制结构(如条件和循环),服务器端注释,整段的 Python 代码,以及各种用于提供附加功能的标签(tags)。所有这些将被编译为真实的 Python 代码。这意味着你可以在 Mako 模板中利用 Python 几乎所有的强大特性。使用例子:
<%inherit file="base.html"/>
<%
rows = [[v for v in range(0,10)] for row in range(0,10)]
%>
<table>
% for row in rows:
${makerow(row)}
% endfor
</table>

<%def name="makerow(row)">
<tr>
% for name in row:
<td>${name}</td>
% endfor
</tr>
</%def>

Mako官方文档

检测网站在全国各地能否打开的检测工具

mrnaas阅读(91)

由于日常工作遇到了,需要检测不同网络访问公司网站的正常所以查询了 资料,找到这些网址,分享一下!1、阿里旗下的 http://alibench.com/(好像打不开了)

2、http://www.17ce.com/

3、ping.chinaz.com

4、用Ping命令简单测网站速度的方法

Ping结果属于表示,bytes表示发送多少字节,time是时间,时间越小速度越快,TTL可以判断对方操作系统,TTL=119是XP系统,但TTL一般不准,服务器可以修改注册表更改TTL类型,更详细测速的办法,请多多搜索。

新手只需看最下面一行即可,最短时间、最长时间和平均时间(时间越短越好),这样你就能大致判断出网站的速度了。

5、用tracert命令简单测网站速度的方法

6、全方位的免费网站速度测试工具 — GTmetrix

常用的正则表达式

mrnaas阅读(67)

[^\x00-\xff]  //双字节字符(包括汉字在内)

[\u4e00-\u9fa5]  //中文字符

\n\s*\r  //空白行

^\s*|\s*$   //首尾空白字符

^[a-zA-Z][a-zA-Z0-9_]{4,15}$   //帐号: 字母开头,5-16字节,字母数字可加下划线

\d{3}-\d{8}|\d{4}-\d{7} //电话号码

 [1-9][0-9]{4,}  //QQ

 [1-9]\d{5}(?!\d)   //邮编

\d{15}|\d{18}   //身份证

\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*  //Email地址

<(\S*?)[^>]*>.*?</\1>|<.*? />   //HTML标记

\d+\.\d+\.\d+\.\d+   //IP地址

[a-zA-z]+://[^\s]*   //网址URL

特定字符串的匹配:

^[A-Za-z]+$  //匹配由26个英文字母组成的字符串

^[A-Z]+$  //匹配由26个英文字母的大写组成的字符串

^[a-z]+$  //匹配由26个英文字母的小写组成的字符串

^[A-Za-z0-9]+$  //匹配由数字和26个英文字母组成的字符串

^\w+$  //匹配由数字、26个英文字母或者下划线组成的字符串

特定数字:

^[1-9]\d*$    //正整数

^-[1-9]\d*$   //负整数

^-?[1-9]\d*$   //整数

^[1-9]\d*|0$  //非负整数

^-[1-9]\d*|0$   //非正整数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*$   //正浮点数

^-([1-9]\d*\.\d*|0\.\d*[1-9]\d*)$  //负浮点数

^-?([1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0)$  //浮点数

^[1-9]\d*\.\d*|0\.\d*[1-9]\d*|0?\.0+|0$   //非负浮点数

^(-([1-9]\d*\.\d*|0\.\d*[1-9]\d*))|0?\.0+|0$  //非正浮点数

Redis命令总结

mrnaas阅读(80)

Redis提供了丰富的命令(command)对数据库和各种数据类型进行操作,这些command可以在Linux终端使用。在编程时,比如使用Redis 的Java语言包,这些命令都有对应的方法,比如上面例子中使用的sadd方法,就是对集合操作中的SADD命令。下面将Redis提供的命令做一总结。

连接操作相关的命令
Ÿ  quit:关闭连接(connection)

Ÿ   auth:简单密码认证

对value操作的命令
Ÿ  exists(key):确认一个key是否存在

Ÿ   del(key):删除一个key

Ÿ   type(key):返回值的类型

Ÿ  keys(pattern):返回满足给定pattern的所有key

Ÿ  randomkey:随机返回key空间的一个key

Ÿ   rename(oldname, newname):将key由oldname重命名为newname,若newname存在则删除newname表示的key

Ÿ  dbsize:返回当前数据库中key的数目

Ÿ  expire:设定一个key的活动时间(s)

Ÿ   ttl:获得一个key的活动时间

Ÿ   select(index):按索引查询

Ÿ   move(key, dbindex):将当前数据库中的key转移到有dbindex索引的数据库

Ÿ  flushdb:删除当前选择数据库中的所有key

Ÿ  flushall:删除所有数据库中的所有key

对String操作的命令
Ÿ   set(key, value):给数据库中名称为key的string赋予值value

Ÿ  get(key):返回数据库中名称为key的string的value

Ÿ   getset(key, value):给名称为key的string赋予上一次的value

Ÿ   mget(key1, key2,…, key N):返回库中多个string(它们的名称为key1,key2…)的value

Ÿ   setnx(key, value):如果不存在名称为key的string,则向库中添加string,名称为key,值为value

Ÿ   setex(key, time, value):向库中添加string(名称为key,值为value)同时,设定过期时间time

Ÿ   mset(key1, value1, key2, value2,…key N, value N):同时给多个string赋值,名称为key i的string赋值value i

Ÿ   msetnx(key1, value1, key2, value2,…key N, value N):如果所有名称为key i的string都不存在,则向库中添加string,名称key i赋值为value i

Ÿ  incr(key):名称为key的string增1操作

Ÿ   incrby(key, integer):名称为key的string增加integer

Ÿ  decr(key):名称为key的string减1操作

Ÿ   decrby(key, integer):名称为key的string减少integer

Ÿ   append(key, value):名称为key的string的值附加value

Ÿ   substr(key, start, end):返回名称为key的string的value的子串

对List操作的命令
Ÿ   rpush(key, value):在名称为key的list尾添加一个值为value的元素

Ÿ   lpush(key, value):在名称为key的list头添加一个值为value的 元素

Ÿ  llen(key):返回名称为key的list的长度

Ÿ   lrange(key, start, end):返回名称为key的list中start至end之间的元素(下标从0开始,下同)

Ÿ   ltrim(key, start, end):截取名称为key的list,保留start至end之间的元素

Ÿ   lindex(key, index):返回名称为key的list中index位置的元素

Ÿ   lset(key, index, value):给名称为key的list中index位置的元素赋值为value

Ÿ   lrem(key, count, value):删除count个名称为key的list中值为value的元素。count为0,删除所有值为value的元素,count>0从头至尾删除count个值为value的元素,count<0从尾到头删除|count|个值为value的元素。

Ÿ  lpop(key):返回并删除名称为key的list中的首元素

Ÿ  rpop(key):返回并删除名称为key的list中的尾元素

Ÿ   blpop(key1, key2,… key N, timeout):lpop命令的block版本。即当timeout为0时,若遇到名称为key i的list不存在或该list为空,则命令结束。如果timeout>0,则遇到上述情况时,等待timeout秒,如果问题没有解决,则对key i+1开始的list执行pop操作。

Ÿ   brpop(key1, key2,… key N, timeout):rpop的block版本。参考上一命令。

Ÿ   rpoplpush(srckey, dstkey):返回并删除名称为srckey的list的尾元素,并将该元素添加到名称为dstkey的list的头部

对Set操作的命令
Ÿ   sadd(key, member):向名称为key的set中添加元素member

Ÿ   srem(key, member) :删除名称为key的set中的元素member

Ÿ   spop(key) :随机返回并删除名称为key的set中一个元素

Ÿ   smove(srckey, dstkey, member) :将member元素从名称为srckey的集合移到名称为dstkey的集合

Ÿ   scard(key) :返回名称为key的set的基数

Ÿ   sismember(key, member) :测试member是否是名称为key的set的元素

Ÿ   sinter(key1, key2,…key N) :求交集

Ÿ   sinterstore(dstkey, key1, key2,…key N) :求交集并将交集保存到dstkey的集合

Ÿ   sunion(key1, key2,…key N) :求并集

Ÿ   sunionstore(dstkey, key1, key2,…key N) :求并集并将并集保存到dstkey的集合

Ÿ   sdiff(key1, key2,…key N) :求差集

Ÿ   sdiffstore(dstkey, key1, key2,…key N) :求差集并将差集保存到dstkey的集合

Ÿ   smembers(key) :返回名称为key的set的所有元素

Ÿ   srandmember(key) :随机返回名称为key的set的一个元素

对zset(sorted set)操作的命令
Ÿ   zadd(key, score, member):向名称为key的zset中添加元素member,score用于排序。如果该元素已经存在,则根据score更新该元素的顺序。

Ÿ   zrem(key, member) :删除名称为key的zset中的元素member

Ÿ   zincrby(key, increment, member) :如果在名称为key的zset中已经存在元素member,则该元素的score增加increment;否则向集合中添加该元素,其score的值为increment

Ÿ   zrank(key, member) :返回名称为key的zset(元素已按score从小到大排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

Ÿ   zrevrank(key, member) :返回名称为key的zset(元素已按score从大到小排序)中member元素的rank(即index,从0开始),若没有member元素,返回“nil”

Ÿ   zrange(key, start, end):返回名称为key的zset(元素已按score从小到大排序)中的index从start到end的所有元素

Ÿ   zrevrange(key, start, end):返回名称为key的zset(元素已按score从大到小排序)中的index从start到end的所有元素

Ÿ   zrangebyscore(key, min, max):返回名称为key的zset中score >= min且score <= max的所有元素

Ÿ  zcard(key):返回名称为key的zset的基数

Ÿ   zscore(key, element):返回名称为key的zset中元素element的score

Ÿ   zremrangebyrank(key, min, max):删除名称为key的zset中rank >= min且rank <= max的所有元素

Ÿ   zremrangebyscore(key, min, max) :删除名称为key的zset中score >= min且score <= max的所有元素

Ÿ   zunionstore / zinterstore(dstkeyN, key1,…,keyN, WEIGHTS w1,…wN, AGGREGATE SUM|MIN|MAX):对N个zset求并集和交集,并将最后的集合保存在dstkeyN中。对于集合中每一个元素的score,在进行AGGREGATE运算前,都要乘以对于的WEIGHT参数。如果没有提供WEIGHT,默认为1。默认的AGGREGATE是SUM,即结果集合中元素的score是所有集合对应元素进行SUM运算的值,而MIN和MAX是指,结果集合中元素的score是所有集合对应元素中最小值和最大值。

对Hash操作的命令
Ÿ   hset(key, field, value):向名称为key的hash中添加元素field<—>value

Ÿ   hget(key, field):返回名称为key的hash中field对应的value

Ÿ   hmget(key, field1, …,field N):返回名称为key的hash中field i对应的value

Ÿ   hmset(key, field1, value1,…,field N, value N):向名称为key的hash中添加元素field i<—>value i

Ÿ   hincrby(key, field, integer):将名称为key的hash中field的value增加integer

Ÿ   hexists(key, field):名称为key的hash中是否存在键为field的域

Ÿ   hdel(key, field):删除名称为key的hash中键为field的域

Ÿ  hlen(key):返回名称为key的hash中元素个数

Ÿ  hkeys(key):返回名称为key的hash中所有键

Ÿ  hvals(key):返回名称为key的hash中所有键对应的value

Ÿ  hgetall(key):返回名称为key的hash中所有的键(field)及其对应的value

持久化
Ÿ   save:将数据同步保存到磁盘

Ÿ   bgsave:将数据异步保存到磁盘

Ÿ  lastsave:返回上次成功将数据保存到磁盘的Unix时戳

Ÿ  shundown:将数据同步保存到磁盘,然后关闭服务

远程服务控制
Ÿ   info:提供服务器的信息和统计

Ÿ   monitor:实时转储收到的请求

Ÿ   slaveof:改变复制策略设置

Ÿ  config:在运行时配置Redis服务器

一般动态创建元素可以通过两种方式

mrnaas阅读(83)

1、Dom HTml

 var select = document_createElement_x_x_x("select");
     select.options[0] = new Option("加载项1", "value1");
     select.options[1] = new Option("加载项2", "value2");
     select.size = "2";
     testDiv.a(select);
     });

通过document的createElement_x_x_x方法创建,然后通过a方法添加到指定的对象中即可

2、JQuery函数创建

 $("动态创建的div")


    通过append,appendto,prepend,prependto等方法添加到指定的对象中,具体可以查看

3、页面加载的时候最好在页面加载完后执行创建

   可以使用window.onload,但是在添加新的元素, 但是不幸的是浏览器执行window.onload函数不仅仅是在构建完DOM树之后, 也是在所有图像和其他外部资源完整的加载并且在浏览器窗口显示完毕之后. 所以如果某个图片或者其他资源加载很长时间, 访问者就会看到一个不完整的页面, 甚至在图片加载之前就执行了需要依赖动态添加的元素的脚本而导致脚本错误.

解决办法就是等DOM被解析后, 在图像和外部资源加载之前执行我们的函数.在jQuery中让这一实现变得可行

$(document).ready(
        function() { testDiv.innerHTML = "

使用动态创建的$(document).ready(function)方法
"; }
);

或者使用简便语法:

//jQuery 使用$(function)方法
$(
        function() { testDiv.innerHTML += "
使用$(function)方法
"; } );

使用$()将我们的函数包装起来即可. 而且可以在一个页面绑定多个函数, 如果使用传统的window.onload则只能调用一个函数.

所以请大家将修改DOM的函数使用此方法调用. 另外还要注意document_createElement_x_x_x和innerHTML的区别. 如果可以请尽量使用document_createElement_x_x_x和$(“”)的形式创建对象.

JS闭包学习

mrnaas阅读(75)

闭包

  能够访问另一个函数作用域的变量的函数。清晰的讲:闭包就是一个函数,这个函数能够访问其他函数的作用域中的变量。

下面inner 就是一个闭包函数,因为他能够访问到outer函数的作用域

function outer() {
      var  a = '变量1'
      var  inner = function () {
             console.info(a)
      }
     return inner;
 }

闭包是站在作用域的角度上来定义的,因为inner访问到outer作用域的变量,所以inner就是一个闭包函数。虽然定义很简单,但是有很多坑点,比如this指向、变量的作用域,稍微不注意可能就造成内存泄露。

坑点一,引用的变量可能发生变化

 function outer() {
       var result = [];
       for (var i = 0; i<10; i++){
         result.[i] = function () {
             console.info(i)
         }
      }
      return result
 }

看样子result每个闭包函数对打印对应数字,1,2,3,4,…,10, 实际不是,因为每个闭包函数访问变量i是outer执行环境下的变量i,随着循环的结束,i已经变成10了,所以执行每个闭包函数,结果打印10, 10, …, 10。这时,可以使用闭包保存临时数据:

 function outer() {
       var result = [];
       for (var i = 0; i<10; i++){
         result.[i] = function (num) {
              return function() {
                    console.info(num);    
              }
         }(i)
      }
      return result
 }

此时访问的num,是上层函数执行环境的num,数组有10个函数对象,每个对象的执行环境下的number都不一样。

坑点二,this指向问题

 var object = {
      name: ''object",
      getName: function() {
         return function() {
              console.info(this.name)
         }
     }
 }
 object.getName()()    // underfined

因为里面的闭包函数是在window作用域下执行的,也就是说,this指向windows

坑点三,内存泄露问题

 function  showId() {
     var el = document.getElementById("app")
     el.onclick = function(){
       aler(el.id) 
     }
 }

这样会导致闭包引用外层的el,当执行完showId后,el无法释放,因此需要手动置空

 function  showId() {
     var el = document.getElementById("app")
     var id  = el.id
     el.onclick = function(){
       aler(id)
     }
     el = null  // 主动释放el
 }

技巧1,用闭包解决递归调用问题

function  factorial(num) {
   if(num<= 1) {
       return 1;
   } else {
      return num * factorial(num-1)
   }
}
var anotherFactorial = factorial
factorial = null
anotherFactorial(4)

报错 ,因为最好是return num* arguments.callee(num-1),arguments.callee指向当前执行函数,但是在严格模式下不能使用该属性也会报错,所以借助闭包来实现。

 function newFactorial = (function f(num){
     if(num<1) {return 1}
     else {
        return num* f(num-1)
     }
 })

这样就没有问题了,实际上起作用的是闭包函数f,而不是外面的函数newFactorial。

技巧2,用闭包模仿块级作用域

es6没出来之前,用var定义变量存在变量提升问题,当然现在大多用es6的let 和const 定义。

 for(var i=0; i<10; i++){
     console.info(i)
 }
 alert(i)  // 变量提升,弹出10
 
 //为了避免i的提升可以这样做
 (function () {
     for(var i=0; i<10; i++){
          console.info(i)
     }
 })()
 alert(i)  // underfined   因为i随着闭包函数的退出,执行环境销毁,变量回收

红绿灯下

CN、古哥阅读(139)

在城市,当你走到十字街头时,往往会与红绿灯相遇。

  说来好笑,我最初来到城市时,最怕的就是过街。在西安和北京求学期间,只要是有天桥和地下通道,我绝不走十字街。我对红绿灯不信任,它们闪来闪去的,像是两只鬼眼,变幻太快,常常是绿灯一亮,我起步走,却遭逢侧向驶来的一串汽车,它们占据了半边路,阻断你。等它们过去后,你再前行,绿灯的心房就颤动了,红灯随之亮起,你被隔在马路中央,身前身后是川流不息的车辆,有被钢铁夹击的感觉。此时我总会联想起卓别林的《摩登时代》中,那个被卡在机器中的工人,觉得自己是工业化时代的一个可怜虫。

  我喜欢回到故乡,其中的一个缘由是,在乡间路上,我不会为红绿灯左右。能够阻断我脚步的,有时是一群黄昏中归家的羊,有时是几只正午时通过堤坝,要下河戏耍的鸭子。

  据说在交通事故中,死于红绿灯下的行人占了很大比例。闯红灯,是肇事的元凶。有时是汽车闯红灯殃及行人,有时是行人闯红灯自蹈黄泉,这样的行人无疑就是举着阎王爷掷来的招魂牌在过街。不管责任在哪一方,倒霉的总归是人。所以家长送孩子上学的路上,在过十字街时,如临虎口,总要拉起孩子的手。在幼儿教育中,学会通过红绿灯下的街口,也成了必修课。走到红绿灯下,人的心就会紧张起来,你要眼观六路,耳听八方,稍有不慎,就会酿下惨祸。在我眼中,十字街就像匍匐在大地的十字架,它主宰着人的生死。

  我在哈尔滨生活以后,习惯了走红绿灯。前些年,每当过十字街时,看见绿灯闪烁了,我会一路飞奔,分秒必争,抢在红灯敲响警钟时到达街对面。由于年轻,体力充沛,我与绿灯的赛跑很少有输的时候。当街口的行人集体闯红灯时,我也尾随其后,大摇大摆地招摇过市。汽车像一支支飞来的箭,刷刷地在我们身旁呼啸而过,可是大家对它们毫无惧色,我也心底泰然。

  二○○二年初春,爱人离开哈尔滨时,带我去花店买花。我们到了海城街的鲜花批发市场,我选了一束红色康乃馨,几枝黄玫瑰。当我把玫瑰拿在手中的时候,爱人说,别老买黄色的,换点鲜艳的颜色吧。于是,我挑了两枝娇艳的粉色玫瑰。他捧着康乃馨,我拿着玫瑰,散步回家。经由红军街桥下的十字路口时,恰好赶上绿灯眨眼了,我说等下一个绿灯再过吧。爱人说,你跟着我,能抢过去的!他个子高,步伐大,很快就跑到街对面了。我呢,一见红灯亮了,腿立刻就软了,向回撤。这样,我站在街这头,他站在对面,我们中间,是一台连着一台的疾驰的车辆。车辆就像汪洋大海,把我们分开了。三天后,爱人在回故乡的山间的公路上出了车祸。故乡的路没有红绿灯,可是他为了早点回到工作的地方,急于赶路,还是出了事故。他的心中,看来一直亮着一盏颤动的绿灯啊。他是一个疯狂的旅人,只知道一刻不停地向前赶,赶,赶。这种“赶”,这种热情的“奔命”,使我们一个在此岸,一个在彼岸,永隔着万水千山。他像流星,以为自己生命的光华还很漫长,却不知道当他飞速掠过天际的时候,迎接他的却是永恒的寂静。

  爱人离去后,我身边没了陪伴的人,可是路还是要走下去的。我曾在十字街头为他焚烧纸钱,都说那是灵魂聚集的地方。再经过那样的路口时,我感觉有无数的灵魂在幽幽地歌唱。远远地看到绿灯要变幻了,我便会放慢脚步,在路边静心等待;人们蜂拥着闯红灯时,我也会原地不动,气定神凝地候着。红绿灯下那些步履匆匆、神色慌张的路人,在我眼里是那么的可怜可笑。

  我想,人生是可以慢半拍,再慢半拍的。生命的钟表,不能一味地往前拨,要习惯自己是生活的迟到者。人是弱的,累了,就要休息;高兴了,就要开怀大笑。郁闷的时候,何苦要掩饰自己,对着青山绿水呼喊吧。我们可以与友人畅饮,一醉方休;也可以对那些邪恶的人当面示以唾弃。我们可以在月夜下多几分缠绵,也可以在旅途中因着美好的风景而多几日的停留。随遇而安,随缘而行。随风而舞,随雨而歌!

  是的,我们要给自己多亮几盏红灯,让生命有所停顿,有所沉吟。这样的红灯,就是我们生命中不息的火焰!只有这样,弱的生命才会变成强的生命,暗淡的生命才会变成有光华的生命!当生命的时针有张有弛、疾徐有致地行走的时候,我们的日子,才会随着日升月落,发出流水一样清脆的足音。

来源:https://www.lz13.cn/meiwen/183890.html

CSS样式规范

wangtong阅读(120)

页面制作思想原则
始终保证HTML、CSS的轻量化,把复杂的事情简单化,把简单的事情模块化,用尽可能简洁的代码实现所需的页面。

页面制作布局规范
1.页面title格式
以下划线()分割,格式:内容标题栏目标题

2.页面分为Layout和Block两大类
Layout部分负责限定总体尺寸及构建页面基本轮廓。
Block部份依实际内容分别定制最外层以div标签包裹,尺寸一般不做限定,模块尽量设置overflow样式以控制出错成本。

3.关于重用
当页面中相似模块较多时,可考虑将其结构制作成公用模块,以方便重用。
重用模块主要以结构重用为目的,对于模块中的文字、链接等细节等的处理,可以通过给其附加额外的class进行扩展。

样式命名及参数规范
1.一律采用px为数值单位
2.按钮以btn开头命名
3.图标以ico
开头命名
4.Layout模块的样式以la为前缀命名。
5.重用模块的命名以前缀re
开头以方便识别,重用样式建立修改必需慎重。
6.样式继承的起始为点为该标签所在的Block,继承层级尽量控制在4个以内。
7.样式套用顺序:重用样式 预置样式 私有样式。
8.样式名以前缀+Camel风格命名,例:la_showDemo
9.大型项目时可考虑给body设置class以提供额外的全局判断,利于细节扩展。

图片文件命名整合规范
1.临时文件以下划线开头(_)开头,应确保在任何情况下该文件被删除时都不会影响到网页的设计需求。例:photo.jpg
2.背景图片以bg
开头来命名
a.大图独立命名,体积以控制在70KB以内为宜。
b.有固定宽高之一的平铺图片根据轴向以bg_x.jpg或bgy.jpg命名整合在一起,以1px不同色块间隔,存储成质量为100的jpg。
(考虑到平铺图片的特性,若有尺寸上的修改,原则上以删除旧图,在图片末尾处添加新图为准,不要试图在原处修改,以免出现管理混乱。)
c.有延伸要求的平铺图片务必独立命名,不可贪图方便整合进其他图片。格式为:前缀
轴向_实例名。例:bg_xpage.jpg
3.网站常规的样式图片可根据需求选择jpg或gif格式,以img.jpg或img.gif命名。
4.gif动画文件需同类整合,以m
为前缀,注意控制图片体积。
5.现阶段尽量不用png。

常用hack
注意:良好的结构比任何hack都好,尽量少用。
width:1px;*width:1px;_width:1px; ff,ie7,ie6

附表
复制内容到剪贴板
代码:
样式命名规范表
类型 前缀 命名示例
网页结构 la_ lashowDemo
普通模块 无 showDemo
重用模块 re
 re showDemo
图标 ico
 ico showDemo
按钮 btn
 btn showDemo
复制内容到剪贴板
代码:
图片命名规范表
类型 规范 命名示例
普通图片 无 photo.jpg
整合图片 img+数字(可选) img.gif | img1.gif
gif动画 m
前缀 mico.gif
大尺寸背景图 bg
命名 bgtop.jpg
平铺图片(限定) bg
轴向 bgx.jpg
平铺图片(延伸) bg
轴向_命名 bg_xpage.jpg
临时图片 
_photo.jpg

火狐CSS hack -moz

mrnaas阅读(73)

-moz火狐CSS hack

Mozilla浏览器支持一些扩展的CSS是以-moz开头的。这些措施包括了一些功能,包括圆形边界,并能够指定不同的方块的宽度和高度的计算,在非标准方式下,这种css在Mozilla浏览器下执行计算更容易得到支持。

有些特性在后来被提议列入的CSS规范,但标准的属性与-moz属性还是有些不同。

其中一些非标准属性只适用于Mozilla浏览器。

At-rules

@-moz-document
Pseudo-elements and pseudo-classes

:-moz-list-bullet控制list-style的大小。
:-moz-first-node伪对象:第一个节点。
:-moz-last-node 伪对象:最后一个节点。
:-moz-only-whitespace伪对象:空白内容。
:-moz-bound-element
:-moz-any-link (matches :link and :visited)
:-moz-drag-over
:-moz-tree-row
:-moz-tree-row(hover) New in Firefox 3
:-moz-tree-cell
:-moz-tree-checkbox
:-moz-tree-column
:-moz-tree-cell-text
:-moz-tree-cell-text(hover) New in Firefox 3
:-moz-tree-twisty
:-moz-tree-indentation
:-moz-tree-line
:-moz-tree-image
:-moz-tree-separator
:-moz-tree-drop-feedback
:-moz-tree-progressmeter
:-moz-system-metric(windows-default-theme) New in Firefox 3
:-moz-system-metric(mac-graphite-theme) New in Firefox 3.1 bug 448767
:-moz-system-metric(images-in-menus) New in Firefox 3
:-moz-system-metric(scrollbar-start-backward) New in Firefox 3
:-moz-system-metric(scrollbar-start-forward) New in Firefox 3
:-moz-system-metric(scrollbar-end-backward) New in Firefox 3
:-moz-system-metric(scrollbar-end-forward) New in Firefox 3
:-moz-system-metric(scrollbar-thumb-proportional) New in Firefox 3
:-moz-alt-text New in Firefox 3
:-moz-placeholder New in Firefox 3
:-moz-broken New in Firefox 3
::-moz-svg-foreign-content
::-moz-scrolled-page-sequence
::-moz-scrolled-content
::-moz-anonymous-block
::-moz-cell-content
::-moz-anonymous-positioned-block
::-moz-pagecontent
::-moz-page
::-moz-page-sequence
::-moz-pagebreak
::-moz-viewport
::-moz-viewport-scroll
::-moz-canvas
::-moz-scrolled-canvas
::-moz-xul-anonymous-block
::-moz-table
::-moz-table-cell
::-moz-table-row-group
::-moz-table-column-group
::-moz-table-column
::-moz-table-row
::-moz-table-outer
::-moz-inline-table
Properties

-moz-appearance
-moz-binding
-moz-background-clip
-moz-background-inline-policy
-moz-background-origin
-moz-border-image New in Firefox 3.1 bug 378217
-moz-border-top-colors
-moz-border-right-colors
-moz-border-bottom-colors
-moz-border-left-colors
-moz-border-radius
-moz-border-radius-topleft
-moz-border-radius-topright
-moz-border-radius-bottomleft
-moz-border-radius-bottomright
-moz-box-align
-moz-box-direction
-moz-box-flex
-moz-box-ordinal-group
-moz-box-orient
-moz-box-pack
-moz-box-shadow New in Firefox 3.1 bug 212633
-moz-box-sizing
-moz-image-region
-moz-box-flexgroup
-moz-opacity Obsolete
-moz-outline Deprecated
-moz-outline-color Deprecated
-moz-outline-offset
-moz-outline-radius
-moz-outline-radius-topleft
-moz-outline-radius-topright
-moz-outline-radius-bottomleft
-moz-outline-radius-bottomright
-moz-outline-style Deprecated
-moz-outline-width Deprecated
-moz-user-focus
-moz-user-input
-moz-user-modify
-moz-user-select
-moz-window-shadow New in Firefox 3.1 bug 450939

CSS3 Box
o overflow-x
o overflow-y

CSS3 Columns
o -moz-column-count
o -moz-column-gap
o -moz-column-width
o -moz-column-rule New in Firefox 3.1 bug 271586
o -moz-column-rule-width New in Firefox 3.1 bug 271586
o -moz-column-rule-style New in Firefox 3.1 bug 271586
o -moz-column-rule-color New in Firefox 3.1 bug 271586

CSS transforms
o -moz-transform New in Firefox 3.1
o -moz-transform-origin New in Firefox 3.1

-moz-float-edge

-moz-border-end
-moz-border-end-color
-moz-border-end-style
-moz-border-end-width
-moz-border-start bug 74880
-moz-border-start-color
-moz-border-start-style
-moz-border-start-width
-moz-margin-end
-moz-margin-start
-moz-padding-start
-moz-padding-end
-moz-force-broken-image-icon
-moz-stack-sizing New in Firefox 3.1
Values

cursor
o -moz-alias
o -moz-cell
o -moz-context-menu
o -moz-copy
o -moz-grab
o -moz-grabbing
o -moz-spinning
o -moz-zoom-in
o -moz-zoom-out

display
o -moz-box
o -moz-inline-block
o -moz-inline-box
o -moz-inline-grid
o -moz-inline-stack
o -moz-inline-table
o -moz-grid
o -moz-grid-group
o -moz-grid-line
o -moz-groupbox
o -moz-deck
o -moz-popup
o -moz-stack
o -moz-run-in
o -moz-compact
o -moz-marker

overflow
o -moz-scrollbars-horizontal
o -moz-scrollbars-none
o -moz-scrollbars-vertical
o -moz-hidden-unscrollable

Note: All of these values should be considered deprecated. Use of the overflow-x and overflow-y is preferred, although it does not replace the last of these.

border-style and outline-style
o -moz-bg-inset - Makes the inset border to blend with then current background (scheduled for removal bug 84307 )
o -moz-bg-outset - Makes the outset border to blend with then current background (scheduled for removal bug 84307 )
o -moz-bg-solid - Makes the solid border to blend with then current background (scheduled for removal bug 84307 )

border-color
o -moz-use-text-color

For all properties accepting color keywords
o -moz-activehyperlinktext
o -moz-hyperlinktext
o -moz-visitedhyperlinktext
o -moz-buttondefault
o -moz-buttonhoverface
o -moz-buttonhovertext
o -moz-cellhighlight
o -moz-cellhighlighttext
o -moz-field
o -moz-fieldtext
o -moz-dialog
o -moz-dialogtext
o -moz-dragtargetzone
o -moz-mac-accentdarkestshadow
o -moz-mac-accentdarkshadow
o -moz-mac-accentface
o -moz-mac-accentlightesthighlight
o -moz-mac-accentlightshadow
o -moz-mac-accentregularhighlight
o -moz-mac-accentregularshadow
o -moz-mac-chrome-active New in Firefox 3.1 bug 449833
o -moz-mac-chrome-inactive New in Firefox 3.1 bug 449833
o -moz-mac-focusring
o -moz-mac-menuselect
o -moz-mac-menushadow
o -moz-mac-menutextselect
o -moz-menuhover
o -moz-menuhovertext
o -moz-win-communicationstext New in Firefox 3
o -moz-win-mediatext New in Firefox 3
o -moz-nativehyperlinktext New in Firefox 3.1 bug 426732

empty-cells
o -moz-show-background (default value in quirks mode)

font-family
o -moz-fixed

font
o -moz-button
o -moz-info
o -moz-desktop
o -moz-dialog (also a color)
o -moz-document
o -moz-workspace
o -moz-window
o -moz-list
o -moz-pull-down-menu
o -moz-field (also a color)

text-align
o -moz-center
o -moz-left
o -moz-right

text-decoration
o -moz-anchor-decoration

-moz-user-select
o -moz-all
o -moz-none

list-style-type
o -moz-arabic-indic
o -moz-bengali
o -moz-cjk-earthly-branch
o -moz-cjk-heavenly-stem
o -moz-devanagari
o -moz-ethiopic-halehame
o -moz-ethiopic-halehame-am
o -moz-ethiopic-halehame-ti-er
o -moz-ethiopic-halehame-ti-et
o -moz-ethiopic-numeric
o -moz-gujarati
o -moz-gurmukhi
o -moz-hangul
o -moz-hangul-consonant
o -moz-japanese-formal
o -moz-japanese-informal
o -moz-kannada
o -moz-khmer
o -moz-lao
o -moz-malayalam
o -moz-myanmar
o -moz-oriya
o -moz-persian
o -moz-simp-chinese-formal
o -moz-simp-chinese-informal
o -moz-tamil
o -moz-telugu
o -moz-thai
o -moz-trad-chinese-formal
o -moz-trad-chinese-informal
o -moz-urdu

width , min-width , max-width (see bug 311415 )
o -moz-min-content New in Firefox 3
o -moz-fit-content New in Firefox 3
o -moz-max-content New in Firefox 3
o -moz-available New in Firefox 3

-moz-appearance
o -moz-win-browsertabbar-toolbox New in Firefox 3
o -moz-win-communications-toolbox New in Firefox 3
o -moz-win-media-toolbox New in Firefox 3
o -moz-mac-unified-toolbar New in Firefox 3.1

Others

color ‘functions’
o -moz-hsla (hue, saturation, lightness, opacity)
o -moz-rgba

-moz-initial - The value -moz-initial is a partial implementation of css3’s initial used to apply the CSS specification’s initial value of a property to an element.

-moz-math-columnline

-moz-math-firstcolumn
-moz-math-firstrow
-moz-math-font-size
-moz-math-font-style
-moz-math-lastcolumn
-moz-math-lastrow
-moz-math-rowline
CSS Transforms

From CSS Transforms spec (Webkit)

-moz-transform CSS Transforms introduction New in Firefox 3.1 bug 435293
-moz-transform-origin New in Firefox 3.1 bug 435293