总想写些什么,奈何很久很久没有动过写字的念头,已经没有写字的感觉了,以前的文思泉涌,现在思考十分钟也没有一句话可以动笔。然而总是要写的,不然人要憋坏的,或者关于生活,或者关于工作,但对于工作,又有什么好说的呢,上班,吃饭,睡觉,在上班,就这样往复,一日又一日。然而就是技术上的东西–或许接触电脑和互联网之后,看书太少缘故,对文字没有感觉了。也写不出字了–所以总归不能总写技术上的东西,喜欢技术,但生活中又不都是技术。
所以总要写些生活的东西,奈何生活也一塌糊涂,自认为一个人可以过得很好,然而,却在不经意的自认为之间,生活被过的惨不忍睹,想要一个人陪,然后总是一个人,想有家的感觉,奈何总是一个人。
当自己逐渐从那种状态回过神来的时候,一个人却孤独的可怕,就像朋友说的那样,或许想找的并不是爱的人,只是一个人太孤独,太寂寞所以自认为想找个人唉而已,或许说的都对吧。
但是发自骨子里的孤独又是几个人能懂得?或许不需要人懂?或孤独才会强大?或许…… 很多或许,其实都敌不过深夜转醒那一抹涌上心头的孤独感,就像“不想和你做朋友”里面唱的一样“夜深的时候 还希望有你温暖我胸口”,那是何等的温暖?然而却已不再有,只有记忆中。
之前会想,当你抽身离去,我一个人会生活的很好,会有新的恋情,会有新的生活,不会变化,甚至更好,然而,当这种一个人的生活来临的时候,却又无法招架,只能疲于应付,类似工作,类似生活,类似孤独,类似一个人生活。
然而,就像我每次都告诉别人的一样,总会过的去,不是吗?找到生活中对自己最重要的东西,其他一切都是浮云,其他一切都什么都不是了。
或许,等一年以后,等若干年以后,所有的东西都会过去,包括现在无话可说的工作,现在一塌糊涂的生活。现在孤单的我。
这里的效率不是说开发者写代码的效率,而是浏览器执行这个选择器的效率。
在看 CSS 的书或者教程的时候,是不是看过这句话:“浏览器是从右至左来处理选择器的”。当然了,如果你没有看到过这句话也无所谓,现在有同样意思的话,就放在这里,现在看也无妨。
那么再来说下浏览器工作的过程,这里是渲染的过程,得到数据之后,浏览器要先绘制一个 DOM 树,然后再有一个 “reflow” 的过程,这个过程就是在 CSS 文件下载之后,确定要渲染的元素在 DOM 中的位置,而 CSS 样式中,很多很多在应用的时候都要有一个 “reflow” 的,过程,所以,避免这个过程,后者减少这个过程,都会相当大的提升浏览器的效率。
还有一个就是 CSS 选择器的优先问题了,这个这里不多说了。
那么,我们不多废话,直接上例子和代码:
例如,我们通常的选择器会这么写
.content a {}
那么根据上面几条理论,浏览器的工作过程是绘制好 DOM 树之后,就会查找页面中所有 a 元素了。查找到所有的 a 元素之后,又开始查找出于 .content 类下面的 a 元素,此时,如果页面有好多好多 a 元素就会是一个非常耗费资源的事情。那么如果这里有更多个 .content 呢?
所以,我们可以这么写,给每一个 a 元素添加一个 class 就可以了。
然后变为
.content .xxx {} 或者 #xxx .xxx {} 这样呢,效率就会更高了。
那么,还有一种情况就是使用太多的层了,也就是限制太多了,例如;
#xxx ul li p a {}
同样的按上面的理论来说,先找所有的 a 然后找所有包含 a 的 p ,依此类推,那么效率肯定是很低喽。
改写后的 可以给 a 添加 class,那么就可以写作 #xxx .xxx {} 效率高了不是一点两点啊。或者给 ul class 嘛,那么就写作 .xxx p a {} 但是这样效率提升并不明显啊。
好了,完了,这只是基本的方法。前端效率的提升,需要慢慢理解,慢慢琢磨,慢慢来嘛。
项目中一直有需要,但是之前使用的是另外一种方式实现,现在这种方式使用IE的滤镜直接搞定,但是还是不建议使用滤镜虽然很简单,但是资源和效率确实不敢恭维,发过来只是为了记录而已。
<style type="text/css">
body{ background:#CCC;}
#d1{width:300px; margin:100px auto; padding:50px;background:rgba(99, 55, 11, 0.2)}
p{background-color:#fff; color:#000}
#d2{background-color:#fff; width:600px; margin:0 auto; padding:10px; line-height:30px}
</style>
<!--[if lt IE 9]>
<style>
#d1{filter: progid:DXImageTransform.Microsoft.gradient(startColorstr=#3363370b,endColorstr=#3363370b);}
</style>
<![endif]-->
<div id="d1">1、背景透明内容不透明<p>2、背景透明内容不透明</p></div>
<div id="d2">
background 的 rgba参数(red,green.,blue,alpha),alpha值0-1<br />
ie滤镜参数#3363370b,前两位为16进制透明度,<br />
比如说值是上面用到的0.2,那么就是0.2×255=51,再转换成16进制为33<br />
</div>
CF Image Host 作为一个非常好用的图床源码,不需要数据库支持,而且提供完备的外链功能,适合查看图片各种大小的缩略图,以及完整图片的真实链接地址,适合各种情况下使用,然而 CF 只提供了 Apache 的伪静态规则,所以,如果要安装在 nginx 服务器上,则如果需要静态化的话,则需要添加相应的伪静态规则,但是这个规则又不是每个都会写的,而且在网上找到对于目前最新版本的 1.4.2 来说,正常可以使用,但是相册页面的分页则会出错,所以稍微修改了下,使在相册页面的分页也可以正常使用了。那么,规则如下:
rewrite /pm-(.*)\.(jpg|png|gif|html)$ /index.php?pm=$1;
rewrite /pt-(.*)\.(jpg|png|gif|html)$ /index.php?pt=$1;
rewrite /dt-(.*)\.(jpg|png|gif)$ /index.php?dt=$1;
rewrite /dm-(.*)\.(jpg|png|gif)$ /index.php?dm=$1;
rewrite /di-(.*)\.(jpg|jpeg|png|gif|bmp)$ /index.php?di=$1;
rewrite /gallery/(.*)\/$ /gallery.php?p=$1;
其实,对于这么一个小小的图床来说,几乎可以不使用伪静态,而且伪静态之后,其连接地址也一点不好看。
还有,据站长说,目前正在开发第一版 Pro 版本的程序,增加了账户注册等功能,还是蛮期待的。
我的图床地址,大家可以免费使用,但是,请谨记,只可以上传 “好图” 哦。 http://haotuu.com
错误一:
行内元素和块级元素混用,例如:
<a href="#"><h2>This is wrong.</h2></a>
<h2><a href="#">This is right.</a></h2>
a 行内元素,hx 块级元素。
错误二:
img 元素未包括 alt 属性。
<img src="a.jpg" /> <!--Wrong-->
<img src="a.jpg" alt="this is a image" /> <!--Right-->
错误三:
正确的时候使用 lists 结构。例如:
<p>
This<br />
is<br />
very<br />
Wrong<br />
</p>
<ul>
<li>This</li>
<li>is</li>
<li>very</li>
<li>Right</li>
</ul>
错误四:
标签应该从语义触发,而非样式。例如:strong 更好
<b>This is bold.<b>
so<strong>is this, but this is better.</strong>
错误五:
最好用 css 而非结构控制,例如:
This is
<br />
<br />
Wrong.
错误六:
还是注意标签的语义化。例如:
<s>和<strike>已经被抛弃了。
<del>和<ins>才是新的可用的哦。
错误七:
使用内联样式,例如:
<h2 style="color:red;">This is Wrong.</h2>
错误八:
在 html 结构中使用已经被抛弃的属性,而应该使用 css 控制,例如:
<img src="a.jpg" alt="xxx" border="0" />
错误九:
没有正确使用 header 标签,例如:
<p><strong>This is header but wrong</strong></p>
<p>this is content.</p>
<h2>This is right header</h2>
<p>this is content.</p>
错误十:
不要使用非标准的和不推荐使用的标签,例如:
<blink>This is Wrong.</blink>
和
<marquee>This is Wrong.</marquee>