1. The @media construct allows style sheet rules for various media in the same style sheet:

      @media print {
        body { font-size: 10pt }
      }
      @media screen {
        body { font-size: 13px }
      }
      @media screen, print {
        body { line-height: 1.2 }
      }
    

    Style rules outside of @media rules apply to all media types that the style sheet applies to. At-rules inside @media are invalid in CSS2.1.

     


  2. 发现>CSS>用background-color控制background-image的颜色

    好久没写原创文了【这个blog里有原创这种东西么..好吧.其实最初用tumblr就是当”技术微博“用的,(也就是发现技术相关的东西就转到这里,总在微博转技术贴会掉粉的吧..虽然没多少粉就是了).当然,正常微博上也就是转转有趣的东西,原创微博这种东西还真写的少.闲话到此.

    玩twitter皮肤的时候习惯性对纯色图标“右键>审查元素”,本来是想看看Sprites,没想到又发现了一个有趣的CSS写法.

    简单来说,这种写法实现了—— 用background-color控制background-image的颜色.

    真相 1:

    真相2:

    看似很奇妙,其实原理简单.巧妙利用了Sprites图片的透明(猜到了过程却没猜到结果..竟然是挖空图标部分 周围用白/黑背景色遮盖)

    真相3:

    (能够灰白网格看成透明色的童鞋应该很快就能恍然大悟过来吧)

    真相到此.

    可能也有很多童鞋和我一样想到了另外一种能不用多图替换实现图标颜色变换的CSS写法,对了就是@font-face.详细

    个人看来,比起@font-face这种”高深“(大雾)写法,利用png透明无疑是更”接地气“的做法.(想想要把UE设计的icon对应到不同字母做成字体,我还是去切图吧..如果你能说服UE去做这个,当我没说).

    当然相比@font-face,这一写法还是有它的缺陷的.对了,那就是只适用于白/纯色背景的情况(或者说是背景不会变化的情况).

    说到切图,试想了一下做这种挖空的图的方法(Fireworks【FW一生推..万恶的A社居然不更新了..没用PS切过图,原理类似.过程有点啰嗦,有信心可以把一下步骤交给UE的童鞋可以略过= =),大概就是——

    位图图标情况:

    1. 在透明背景上拼好纯色图标的Sprites

    2. 来一张白色/纯色背景图(拉个白色矩形,然后”平面化所选“(Ctrl+Alt+Shift+Z)【这不是在秀快捷键..)

    3. 方案A:选择“魔棒”工具,按住Shift逐个点击纯色图标(一定要在Sprites的图层上选,否则选不中的),对全部纯色图标创建选框

      方案B:按住Alt/Option(Mac OS),单击右边“图层”工具栏中图标Sprites图层的缩略图,对全部纯色图标创建选框【表达的好复杂..

    4. 在创建完选框的情况下,选取右边“图层”工具栏中背景图所在的图层,再敲一下Delete键,收工.

    5. 额..还有一步,请将原来的图标Sprites图层删除(选择图层,Delete键)

    矢量图标情况: 1. 在透明背景上拼好纯色图标的Sprites

    1. Ctrl+A选择全部图标,右键>组合路径>联合【好吧.这个没有快捷键..当然用得比较多你也可以自己设置一个 详细

    2. 拉个纯色矢量矩形作为背景,置于Sprites图层下方(Ctrl+Shift+Down)

    3. Ctrl+A选择全部图层,右键>组合路径>打孔,收工.

    试想一下应用场景——

    1.提供更换主题功能时的纯色图标(或者其他纯色背景图片)

    这样就可以在不用提供多色图片的情况下直接支持图标颜色自定义了(而且还支持完全的颜色选取).

    举个反栗子:

    就不会出现想要来个绿色主题保护下眼睛却整出个“红配绿”这种事情了.

    2.不规则形状图片遮罩层

    说到这个大家估计又会想到CSS3利用border-radius做圆形遮罩吧详细.

    利用这种图片处理方式目测就可以创造出各种形状的遮罩了.【就不举栗子了.又懒了不是..

    3.更多玩法待发现..

     


  3. 使用引号 只有当字体名中有一个或多个空格(比如 New York),或者如果字体名包括 # 或 $ 之类的符号,才需要在 font-family 声明中加引号。

    italic 和 oblique 的区别 font-style 非常简单:用于在 normal 文本、italic 文本和 oblique 文本之间选择。唯一有点复杂的是明确 italic 文本和 oblique 文本之间的差别。 斜体(italic)是一种简单的字体风格,对每个字母的结构有一些小改动,来反映变化的外观。与此不同,倾斜(oblique)文本则是正常竖直文本的一个倾斜版本。 通常情况下,italic 和 oblique 文本在 web 浏览器中看上去完全一样。

    字体加粗 font-weight 属性设置文本的粗细。 使用 bold 关键字可以将文本设置为粗体。 关键字 100 ~ 900 为字体指定了 9 级加粗度。如果一个字体内置了这些加粗级别,那么这些数字就直接映射到预定义的级别,100 对应最细的字体变形,900 对应最粗的字体变形。数字 400 等价于 normal,而 700 等价于 bold。

    使用 em 来设置字体大小 浏览器中默认的文本大小是 16 像素。因此 1em 的默认尺寸是 16 像素。

    结合使用百分比和 EM

    body {font-size:100%;}
    h1 {font-size:3.75em;}
    h2 {font-size:2.5em;}
    p {font-size:0.875em;}
    
     


  4. 打开proxy.ini 在forcehttps后面的 google.com.hk 后面加上 /search 就可以了
     


  5. tableLayout 属性用来显示表格单元格、行、列的算法规则。 该属性指定了完成表布局时所用的布局算法。固定布局算法比较快,但是不太灵活,而自动算法比较慢,不过更能反映传统的 HTML 表。

    设置表格布局算法:

    table
      {
      table-layout:fixed;
      }
    
     


  6. 当定位元素的 ‘z-index’ 未设置时(默认为 auto),在 IE6 IE7 IE8(Q) 下将会创建一个新的局部层叠上下文。而在其它浏览器下,则严格按照规范,不产生新的局部层叠上下文。
     


  7. 禁用(disabled):value 不会在 Form 提交时发送出去。这个对于按钮来说用处比较大,一般的 type=”text” 最好是隐藏,而不是禁用,因为它不需要发送数据。

    只读(readonly):value 会在 Form 提交时被发送出去。所以需要在外观上显示跟一般 input/textarea 一样,但不允许用户修改数据,可以用这个属性。

    隐藏(hidden):这个比较好理解,value 会被发送,并且用户看不到。

     


  8. activate Clean URLs to dissapearing “?q=” code.

     


  9. Use the path_to_theme function.

     


  10. 在线icon制作

     


  11. 堆栈顺序

    每一个在HTML文档中的元素既可以在其他元素的前面,也可以在其他元素的后面。这就是所谓的堆栈顺序。

    堆栈上下文

    一组具有共同双亲的元素,按照堆栈顺序一起向前或向后移动构成了所谓的堆栈上下文。

    1.现在,堆栈上下文有三种方法可以在一个元素上形成: 当一个元素是文档的根元素时(html元素)

    2.当一个元素有一个position值而不是static,有一个z-index值而不是auto

    3.当一个元素有一个opacity值小于1

    在同样的堆栈上下文里的堆栈顺序

    下面是几条基本的规则,来决定在一个单独的堆栈上下文里的堆栈顺序(从后向前):

    1.堆栈上下文的根元素

    2.定位元素(和他们的子元素)带着负数的z-index值(高的值被堆叠在低值的前面;相同值的元素按照在HTML中出现的顺序堆叠)

    3.非定位元素(按照在HTML中出现的顺序排序)

    4.定位元素(和他们的子元素)带着auto的z-index值(按照在HTML中出现的顺序排序)

    5.定位元素(和他们的子元素)带着正z-index值(高的值被堆叠在低值的前面;相同值的元素按照在HTML中出现的顺序堆叠)

    定位元素带有负的z-index值被在一个堆栈上下文中先排序,这意味着他们出现在所有其他元素的后面。正因如此,它使一个元素出现在自己父元素之后 成为可能,这以前通常是不可能的事。当然,这局限于它的父元素与它在同一个堆栈上下文,并且不是那个堆栈上下文的根元素。一个伟大的例子如Nicolas Gallagher的CSS不用图像降低阴影

     


  12. position:static 不会影响节点的遮盖关系.

    如果将 position 设为 relative (相对定位), absolute (绝对定位) 或者 fixed (固定定位), 这样的节点会覆盖没有设置 position 属性或者属性值为 static 的节点, 说明前者比后者的默认层级高.

    参与规则: 我们尝试不用 position 属性, 但为节点加上 z-index 属性. 发现 z-index 对节点没起作用. W3C 对 z-index 属性的描述中提到 在 z-index 属性仅在节点的 position 属性为 relative, absolute 或者 fixed 时生效.

    当 position 设为 relative, absolute 或者 fixed, 而没有设置 z-index 时, IE8 以上和 W3C 浏览器 (下文我们统称为 W3C 浏览器) 的 z-index 默认值是 auto, 但 IE6 和 IE7 是 0.

    参与规则 2: 如果所有节点都定义了 position:relative, 并且将 z-index 设为整数值, 根据从父规则, 父节点的层级决定了子节点所在层级.

    非情非得已, 切勿用 JavaScript 计算 z-index, 并将某个节点的 z-index 设置成所有节点中层级最高.

     


  13. _self 这个目标的值对所有没有指定目标的 <a> 标签是默认目标,它使得目标文档载入并显示在相同的框架或者窗口中作为源文档。这个目标是多余且不必要的,除非和文档标题 <base> 标签中的 target 属性一起使用。
     


  14. 对于不定长的页面元素div,若是一开始就读取长度的话,在chrome,safari是不准确的 原因是chrome初始时读取的高度和加载完成的高度不一致,需要延迟一段时间等页面元素
     


  15. 我们都知道在 JS 里,变量不定义就可以用。但一定要清楚,未定义的变量,仅仅是可写,但不可读。

    未定义变量意味着在 scriptObject 的变量表中找不到,JS 引擎会沿着 scriptObject 的 upvalue 往上寻找,如果都没找到,对于写操作 i = 1; 最后就会等价为 window.i = 1; 给 window 对象新增了一个属性。对于读操作,如果一直追溯到全局执行环境的 scriptObject 上都找不到,就会产生运行期错误。