小三角的实现

对于我这种不折腾会死星人来说,一天不折腾,就闲得蛋疼。在新浪weibo看微博的时候,无疑中看到新浪顶部的导航里面的小三角,突然在想他是用图片呢,还是直接用css呢?习惯性的打开firebug,详细的看看。小三角的作用已经很明显了,告诉用户这个链接是个下拉的,是不一样的。

新浪微薄导航小三角的css实现


先看代码(只写核心的):


style:
span{display:inline-block;width:5px;height:3px;}
.b1{display:block;width:5px;height:1px;overfollow:hidden;background:#c1c1c1;}
.b2{display:block;width:5px;height:1px;overfollow:hidden;margin-left:1px;background:#c1c1c1;}
.b3{display:block;width:5px;height:1px;overfollow:hidden;margin-left:2px;background:#c1c1c1;}

html:
span
em class="b1" /em
em class="b2" /em
em class="b3" /em
/span

主题有猫病,pre标签里面的html代码竟然不见了啊,我草

好吧,三角就是由三个元素组成,宽度分别是5px,3px,1px,然后分别设置背景色,高度设置为1px,由于IE君元素的最小高度和字体大小关联,那么设置overfollow:hidden;来隐藏多余的高度,只保留1px的高度,另外两个元素的原理也是一样,只是宽度不一样,并且使用margin-left;1px;来让三个1px高度的元素组合起来,这样子看起来,就是个三角了。当然了,由于使用的em标签,就必须使用display:block;来设置高了。

google的实现



style:
.b{border-style:solid dashed dashed;border-color:transparent;border-top-color:sliver;display:inline-block;font-size:0;height:0;line-height:0;width:0;border-width:3px 3px 0}
html:
任一一个内联标签,比如b等

我刚看这段代码的时候,没太看懂,后来琢磨了下,才看明白,要明白这个三角的实现,首先得明白边框这玩意儿,先看看下面的内容:

XX

有没有发现其中边框其实只取一个角的话,那么是不是就可以由左右两边组成一个小三角呢,这就是google小三角实现的原理。

空标签必须是inline-block或者block的,因为要设置大小,同时设置边框的形式,其实这儿solid dashed dashed,也就是说,除了上边的边框是实心的,其他都是虚线,而且对边框的颜色设置为对父级颜色北京透明,这个时候如果不设置颜色,边框其实看不到,然后对上边的边框设置为一种想要的颜色,那么除了上面的框是有颜色的,其他的都是透明的,那么就可以了,然后设置元素内容高和宽都是0,那么就剩下一个三角了,至于font-size:0;也是为了考虑IE君的心情啊。

其实对于google而言,使用更少的标签和css代码,到成的效果可以能更好,可想而知,哪种实现更好了,不过如果不是特别了解边框,相信很难想到google这种方式,不过我看了下国内前端比较厉害的淘宝,豆瓣等都是使用google这种形式。

综合看了下,还是google的实现的最好,豆瓣也很好。

css君,你又立功了。

两周记录

好吧,我已经工作两周了。

如果不是最后时间段,因为我的疏忽,导致运维老大和同组师兄的忙了将近1个小时,结果应该是大家开心的吃着烧烤,在这里说声不好意思,同时谢谢你们。后来吃烧烤的时候,改变了我对很多人的看法,相信以后能学习到更多的东西。

以下才是主题


1.节奏

从来没有这么块节奏的工作过,上班第一天就开始写需求,然后就是老大发布任务,搞懂LVS,然后就是认识技术组的人,好在现在基本上都认识了,除了移动开发组的两位不是很熟悉。每天基本上都是写需求,然后了解业务,做业务,跟PM,组长,同事沟通。基本上一个需求没有做完,另一个需求就来了。

2.全面

CTO对每个人的要求就是全面,全面了解,现在我深有感触了,以前在淘宝做mysql底层的哥们,到这儿来了后也开始做业务,做需求。每个人都要从做业务开始,然后再开始做自己负责的模块。我想接下来以前一些不深入的只是要花很多时间了,比如mysql,linux等等。

还有就是公司牛人好多,很多都是大公司待过的,前端小王子竟然是python高手,能手写HTML5和css3版本的公司吉祥物,大师姐虽然是个小loli,但是css和js牛X的很。

3.每天都迫不及待的想上班

我从来没有这样每天迫切的想要去工作。

结束分割线


以后要学习的还有很多,明年ZZ过来后,相信我们能更加往好的方向发展。

燃烧吧,少年。

上班第一天

上班第一天,节奏快的我受不了很多东西都没来得及消化,不过确实很有挑战。

到公司还没坐稳,入职手续都没办,需求就下来了,PM跑过来说了个需求,好的,麻烦你XX时间做好,囧。我甚至没来得及熟悉代码以及其他的就开始折腾了,好在下班的时候终于弄玩了,不过多亏了师傅的帮忙,在此感谢,明天已经想好了很多时间麻烦你呢,不过这次以后,相信以后很多事情我都能自己搞定了。

因为以前都是一个人写,突然很多人写一个东西,很不习惯,加上公司很多人都是大公司出来的人,个个技术牛B的很,让我鸭梨很大啊,一下感觉要学习的东西太多太多。

同时CTO给我布置了学习任务,关于LVS以及TCP/IP方面的,囧啊,工作本身就很多了啊,亲。不过这样确实能让自己学习到不少东西。

列一下学习的内容:

  • SVN,LINUX操作命令(现在还不熟练),JQ
  • 各种协议:TCP/IP,DNS,SSH,HTTP,HTTPS,OSI等等啥的,虽然有些只需要了解,但是像TCP/IP就不是了解就能完事儿的啊,亲
  • LVS,CTO点名要学习的
  • 工具:VIM啥的
    • 好吧,让暴风雨来得更猛烈写吧

      MD,总怀疑房东的网线是毛线做的,不然怎么这么慢啊。

关于下拉导航的一些蛋疼

没有工作的日子的好处之一就是可以到处看妹子可以折腾一些平时没时间折腾的东西。

下拉菜单在很多网站都要用到,从以前的简单的纵向下拉,到现在非常流行的横向的(如京东啊,当当啊)之类的。其实我要说的不是说这些下拉怎么怎么的,这是这几天一直在看一rackspace的网站,发现他们的下拉才是真的有很好的可访问性。

当我鼠标快速移动过导航的时候,rackspace的导航是不会出发下拉的,而这也确实是我想要的,无论是纵向或者横向,都是想要这样的效果,但是我看了下国内的几个电商网站,比较了下他们的横向菜单。

苏宁:蛋疼的很,再快也会出发菜单的出现,显然,这不是用户所希望的,至少不是我所希望的。

当当:不会触发,但是还有有个小bug,当鼠标覆盖在一级导航的时候,背景色会变,但是如果快速移动的话,则会出现你移动过的那个导航背景会改变,但同时,排在最上面的图书栏目的背景也会闪现背景改变,虽然时间很短,但是对于我这样一个人来说,我确实受不了。

京东:perfect

当然了,在一级菜单上面上下快速移动的时候,同样的,苏宁问题最大,而当当依旧是用样的问题,京东依旧perfect。我只在chrome下试过,当然了,其他的IE或者FF没有测试。

同样的,横向的下拉,同样也是这样的问题。

下次有时间,一一自己写代码测试,顺便联系下我的js

再见,慈溪,你好,杭州

终于,还是决定去杭州了。

在来到慈溪以前,我不认识慈溪一个人,也从来未去过慈溪,我甚至在那之前,不知道有慈溪这个地方。现在,我仍然不够熟悉慈溪,包括很多地方我都没有去过。但是,离别是时候了,我坚信下一站,更加美好。

感谢老张,你让我入行,进入互联网,真心的感谢你,感谢让一个一无所知的我,进入公司学习。你让我学到了很多东西,我想,接下来我能做的,只有祝福你吧,当然了,还有老邹,同样感谢你。也许以后的联系会越来越少,也许会失去联系,但是我永远不会忘记,是你们让我进入我最热爱热互联网行业。

想起这两年来,经常的加班,但是加班却成我最喜欢的生活之一了。

在慈溪认识了很多很要好的朋友,小胡,小李,王校长等,我相信我们还会经常联系的。

来的仓促,走的仓促。来的时候,我只用了30分钟就决定来慈溪,走的时候,我只用了不到3天的时间,但是一待,却又是将近3年。

下一站,杭州,有多年的好友TT,以及明年ZZ也会到来,时隔几年,我们还是终将聚首。

再见,慈溪,你好,杭州!

读浪潮之巅

读浪潮之巅

这是近段时间内,我度过的并且认真读完的唯一一本非技术类书籍。

我突然才发现互联网确确实实改变了我的很多,无论是思考方式,信息获取,甚至我的职业。很显然的,它不是一本励志书,只是记录IT里面,一些大佬的过去以及现在,但是这无疑还是深深的触动了我,我当时就想,我是不是该离开现在的地方去一个更大的平台学习了。

最近我和ZZ决定一起去杭州,时间定在年后。一些事情的发生可能会体现的宣告这个时间的来临,我突然的离职了,然后去杭州面试,了解杭州,一切都提前来了,但显然,这让我更加兴奋。

我希望接下来的这份工作,能让我付诸我的全部的热情,所以我必须慎重慎重再慎重。

最后,再次推荐下浪潮之巅这本书。

如何快速的安装dropbox

dropbox刚出来的时候,因为妓院机缘巧合,我已经开始使用了,但是那个时候对于同步啥的,要求不太高,都是做些小玩意儿,用不着。二来,那时候媳妇儿有电脑,我没有,我总不能用丫电脑去工作吧。

但是现在我要了= =!

因为dropbox已经被墙了,而dropbox又是在线的蛋疼安装,还得爬墙。刚开始按照这儿介绍的常规办法去操作,结果失败,总是卡在proxychains dropbox start -i &这一步,后来找也没找出具体的原因,有人说是代理太慢的缘故,我觉得不靠谱,直接连不上啊。后来找到一个比较一步到位的办法,结果真的可以= =!,真是坑爹啊!

国庆安排

一年一度的国庆又要来了,噢呵呵

两手安排,好基友zz如果过来的话呢,就一伙去搞基,如果不来呢,就入手一瓶看中的红酒,然后就宅家里继续折腾。

最近一直在折腾yii framework,感觉薛强确实挺牛X的,虽然是个搞耦合的东西,但是因为花了不少时间,所以现在基本摸清出它的运行机制了,我在前端时间使用yii framkework的时候,感觉它的view层,路由处理,时间驱动,基于组件的一些概念十分感兴趣,这段时间看了源码后,确实也有点复杂,好在注释十分详细,看起来也还好了。

同时好好折腾下linux和python,做点简单的GUI,搞搞linux,生活太惬意了。还有什么比这更好的呢?

入手了浪潮之巅,应该是本不错的书吧

论家就是想要嘛:

酒:http://item.taobao.com/item.htm?id=6817511075

两天来的折腾

这两天确实整个人都羊肉串了,搭建一个python的环境让我都要尿崩了,好在在我重装系统后终于搞成了,以前在windows下面玩的时候,也搭建过一个基于apache和mod_python,然后还试过一段时间的django之类的。现在开发基本都在linux下面(虽然很多很多不熟悉),就必然搭建个类似的环境了,搭建过程中出现了很多问题,一一列举记录

第一个问题就是apache的删除问题,我试过各种命令,都无法彻底删除,后来折腾的时候试着删除nginx,也是一样,始终会保留/etc/nginx里面的配置项目,后来强行删除后,再安装nginx,就没有配置项了,原因不明,业务不懂真是害死人啊。这个问题应该会随着我对linux的了解和熟悉解开吧!

第二个问题就是在linux还不熟悉的情况下,不要尝试编译安装,最好还是从源里面装最好,以后熟悉了,怎么折腾都不是问题。

第三个就是先前我装环境的时候,跑django/web.py,总是提示uwsgi error python/wsgi application not found,我查看过我的uwsgi配置以及nginx的路径配置,没有问题。后来才知道,在我的index.py(test file)里面的import web/bottle(bottle framework),一定要将对应的web目录拷贝到工作目录,即使web,py上说python setup.py install的安装方式可以全局调用。

然后就是uwsgi和nginx的配置问题,其中nginx里面uwsgi_pass 后面的配置值要和uwsgi里面的socket值相同,不然就是鬼畜的502,不过出现这种问题也应该是我的技术不过关之类的,nginx的配置以及uwsgi的配置和运行等等内容都不是很了解,要学习的东西依旧很多。

周末带媳妇去哪儿吃饭比较好呢?

对div容器使用mouseout的时候出现的一个蛋疼问题

昨天在写js的时候发现了一个很是蛋疼的问题,就是对div使用mouseout事件的时候,事件的效果会传递给它的子元素。

举个栗子:
js


$(function(){
$("#wrapper").mouseout(function(){alert('hello')});
});

此时就有一个很是蛋疼的问题,如果鼠标从wapper里面移到p上面的时候出触发mouseout事件,并且在鼠标离开p的时候,还会触发mouseout事件,这么一个蛋疼的问题很是困扰了我一段时间。

通过网络找到了一些比较好的答案

原生态javascript解决方案:摸我,@zbm2001z的解决方案写的很好.

@zbm2001z主要用了事件过程中目标对象的问题,同时还兼容了IE以及ff,webkit浏览器。

jquery的话,在1.3的时候新增了一个mouseleave事件,用它可以解决这个问题,同时新增加了一个mouseenter的对应时间,详细内容:摸我

最后记录各很不错的写法,var a = b || c,那么a到底是等于b还是c呢,测试的时候发现,如果b为undefined,null,false的时候,值为c,但是如果b为定义,那么代码无效。