作者: admin

  • JS常见问题汇总

    vue.min.js:6 Uncaught TypeError: Assignment to constant variable.

    const定义的常量不能被修改

                    const priceTotal = 0
                    const prudctCount = 0
                    this.package1.forEach(element => {
                        console.log(element,'===element')
                        priceTotal += element.price
                        // prudctCount += element.count
                    });
    修改为 var

  • 纪律性

    《我的职业是小说家》 村上春树 著,施小炜 译

    点评:★★★★★
    村上平易近人、真实亲切的聊天对话似的写了他的写作习惯写作素材和表述了自己对于写小说的一些看法以及怎么坚持写小说和推广自己的小说到世界的。他已经写小说39年啦,真是一件恒久又令人佩服的时间啊。
    “我们互不相识,仅仅是偶然相遇,在毫不知情的情况下各奔东西,从此只怕再也无缘重逢。然而实际上,我们在地下穿透了日常生活这坚硬的表层,“小说式地”密切相连。我们在内心深处拥有共通的故事。我设想的大致就是这样的读者。我希望能让这样的读者尽情享受阅读、有所感悟,而日日写着小说。”

    ◆ 第五章 那么,写点什么好呢?

    尤其是青年时期,应该尽可能地多读书。优秀的小说也罢,不怎么优秀的小说也罢,甚至是极烂的小说也罢,都(丝毫)不成问题,总之多多益善,要一本本地读下去。让身体穿过更多的故事,邂逅大量的好文章,偶尔也邂逅一些不太好的文章。

    其次(恐怕先于动笔)要做的,我觉得应该是养成事无巨细,仔细观察眼前看到的事物和现象的习惯。身边来来去去的各色人物、周围起起落落的种种事情,不问三七二十一,认真仔细地加以观察,并且深思细想、反复考虑

    我渐渐养成了“别急着下结论”、“尽量多花时间思考”之类的习惯。这说是与生俱来的性情,不如说是吃过很多苦头才学会的经验法则

    而且一旦形成文字,往往便心安理得地抛到脑后。将各种东西一股脑儿扔进脑海里,该消失的消失,该留下的留下。我喜欢这种记忆的自然淘汰。

    而且,真正重要的事情一旦放进脑海里,是不可能那么轻易就遗忘的。

    自己手头没有写小说的素材”的人,也不必灰心丧气。只要稍稍变换一下视角、转换一下思维,肯定会发现素材在身边简直比比皆是。它们正等待着你去发现、撷取和使用。人的行为哪怕一见之下多么微不足道,也会自然而然地生出这些兴味盎然的东西。此间至关重要的(似有重复之嫌),就是“不失健全的野心”。这才是关键。

    ◆ 第六章 与时间成为朋友——写长篇小说

    不知为何,这种事情对我来说有趣之极,无以言喻,不管做上多久都不会厌倦。

    要想让时间成为自己的朋友,就必须在一定程度上运用自己的意志去掌控时间,这是我一贯的主张。不能一味地被时间掌控,否则终究会处于被动状态。有句谚语叫“时不我待,潮不等人”,既然对方无意等待,就只能在充分了解这一事实之后,积极地、目标明确地制定自己的日程表。也就是说,不能一味甘于被动,要主动出击。

    ◆ 第七章 彻底的个人体力劳动

    所以到了下午我就睡睡午觉,听听音乐,读读无害的书。这样一种生活过久了,肯定会导致运动不足,所以我每天大概都要外出运动一个小时,然后再准备迎接第二天的工作。日复一日,就这样过着周而复始的生活。

    然而人们并不会特地评价一番写作过程。这是只能由作家一个人默默承担的重负。

    年轻真是一件妙不可言的事啊

    而且,体力下降的话(这也无非是泛泛之论),思考能力也会随之表现出微妙的衰退。思维的敏捷和精神上的灵活都会逐渐丧失。我在接受某位年轻作家采访时曾经说过:“作家要是长出赘肉的话,就算完蛋了。”这当然是极端的说法,无疑也有例外。不过我多多少少觉得,这么说似乎并无大碍,不管那是物理上的赘肉,还是隐喻中的赘肉

    根据最近的研究,脑内海马体产生的神经元的数量,可以通过有氧运动得到飞跃性的增加

    所谓有氧运动,是指游泳和跑步这类时间长、运动量适度的运动

    ◆ 第八章 关于学校

    相比之下更为重要的,还是“自己为什么要学习英语(或其他外语)”这种目的意识。如果这一点暧昧不明,学习就会变成无趣的“苦差”。

    如果真想灵活掌握一门外语,就只有一个办法:自己跑到国外留学去。

    如果环顾自己周围的状况,认真思索那些不自然的现象、矛盾与欺瞒,直接去追究那些无法认同的事,我很可能会被逼入绝境,饱尝艰辛。

    顺其自然,不可揠苗助长,照本宣科。作者希望能说出自己的想法,又不想让政府以为这是个标准要强制执行反而失掉了意义。

    一旦“让孩子们的想象力丰富起来”成了规定的“目标”,那么这又将变成怪事一桩了。
    我寄望于学校的,只是“不要把拥有想象力的孩子的想象力扼杀掉”,这样就足够了。请为每一种个性提供生存的场所。这样一来,学校一定会变成更充实的自由之地。同时与之并行,社会也能变成更充实的自由之地。
    作为一个小说家,我是这样想的。但无论我怎样想,事态大概也不会发生什么改变吧。

    ◆ 第九章 该让什么样的人物登场?

    随着写作的展开,络绎登场的人物自然会组成主轴般的东西,种种细节也会纷纷被吸附过去,就像磁铁将铁片吸附过去一样。

    要数陀思妥耶夫斯基的《群魔》

    夏目漱石

    写小说时让我最快乐的事情之一,就是“只要愿意,自己可以变成任何一个人”。

    但我还是闭眼咬牙,豁了出去

    《了不起的盖茨比》也是第一人称小说。小说

    这个人物能把故事向前牵引多少

    创造登场人物的固然是作者,可真正有生命的登场人物会在某一刻脱离作者之手,开始自己行动。不单单是我,众多虚构文学作家都承认这件事。如果没有这种现象发生,把小说写下去肯定会变成味同嚼蜡、艰辛难耐的苦差事。小说若是顺利地上了轨道,出场人物会自己行动起来,情节也会自然发展下去,结果便出现这种幸福的局面,小说家只需将眼前正在展开的场景原封不动地转化成文字便可。而且这种时候,那个角色还会牵着小说家的手,将他或她引领到事前未曾预想过的地方。
    请允许我举出自己最近的小说来当具体的例子。我写的长篇小说《没有色彩的多崎作和他的巡礼之年》中,出现了一位非常出色的女子木元沙罗。说实话,刚开始写这部小说时,我本来是准备写成短篇小说的,按照预先设想,篇幅折算成稿纸大约在六十页。
    简单说明一下情节。主人公多崎作出生于名古屋,高中时代,非常要好的四位同班同学向他宣布“从今以后再也不想见到你,再也不想跟你说话了”,却没说明理由,他也没有特意去问。

    小说若是顺利地上了轨道,出场人物会自己行动起来,情节也会自然发展下去,结果便出现这种幸福的局面,小说家只需将眼前正在展开的场景原封不动地转化成文字便可。而且这种时候,那个角色还会牵着小说家的手,将他或她引领到事前未曾预想过的地方

    写《海边的卡夫卡》时,我刚刚五十出头,却把主人公设定为十五岁的少年。而且在写作期间,我感觉自己仿佛就是一个十五岁的少年

    ◆ 第十章 为谁写作?

    且听风吟

    《寄物柜里的婴孩

    我一直有一种脾气:“做一件事,倘若不全力以赴、一拼到底,便心情不爽。”

    我卖掉了小店,为了能全神贯注地写作长篇小说,搬出东京的住所,远远离开都市,过起了早睡早起的生活。又为了维持体力坚持每天跑步。

    不管你写什么、怎么写,最终都难免被人家说三道四。”比如说写个长篇小说,就会有人说:“太长了,显得冗繁,只要一半分量就足够把故事写完了

    随它去吧,反正都会被人家说坏话,干脆自己想写啥就写啥、想怎么写就怎么写

    假如不能让所有的人都开心
    不就只能自己一人开心了吗

    我们互不相识,仅仅是偶然相遇,在毫不知情的情况下各奔东西,从此只怕再也无缘重逢。然而实际上,我们在地下穿透了日常生活这坚硬的表层,“小说式地”密切相连。我们在内心深处拥有共通的故事。我设想的大致就是这样的读者。我希望能让这样的读者尽情享受阅读、有所感悟,而日日写着小说。

    单独阅读寄来的一条条意见,会觉得它们似乎乱七八糟、毫无关联,然而退后几步,在稍稍离开一些的地方纵览整体,便有种真实感:“这些人作为一个整体,非常准确而深刻地理解了我,或者说我写的小说

    读者用户的喜爱成就了村上春树吗?

    评论方面,我长年以来被置于十分严苛的境地。就连为我出书的出版社里,比起支持我写的东西的编辑,持批判立场的编辑似乎也更多。又是这样啦,又是那样啦,经常听到严厉的话,受到冷遇。甚至让我有顶着迎面而来的逆风(尽管时强时弱,不同时期各不相同),孤身一人默默工作的感觉。
    尽管如此,我还能不气馁不消沉(虽然偶尔有些吃力),大概是因为我的书始终有读者紧紧相随的缘故

    ◆ 第十一章 走出国门,新的疆域

    他们三人分别是雷蒙德·卡佛的代理人、出版社代表、责任编辑。我想这绝非偶然,或许是已故的雷蒙德·卡佛在冥冥之中引导着我——当时他去世才不过四五年。

    自己寻觅译者,委托他们翻译,再亲自核对译文,然后将译成英文的稿件拿给代理,请她卖给出版社

    。不过平心而论,我没有那般自信,再加上天生的秉性,不论什么事,“只要自己能做到,就尽量自己去做”,所以尽可能亲力亲为。在日本出道时曾经做过的事情,再到美国重新来一遍。四十几岁的人,竟又一次重新回归到“新人状态”。

    然而,对于眼看将年届四十(也就是处于作家至关重要的时期)

    想起来,在日本国内遭到抨击,倒成了挺进海外的契机,也许被人诋毁反倒是一种幸运。

    这世上总有一些人,专会见风使舵,毫无根据地满口胡言。

    。这个世界上有很多要由时间来证明的事物,只能由时间来证明的事物。

    并非一击必杀、华丽夺标,我感觉还是靠一部部作品稳步积累,最后终于巩固了地盘。与之相伴,平装版的旧作也开始活跃起来。一个理想的走势业已形

    纽约置于海外出版的中枢,好像与欧洲销量的上升大有关系。这是我未曾预料到的发展。老实说,我没想到纽约这个中枢的意义竟如此之大。

    换言之,就是让主观世界和客观世界相互沟通、相互调整,才能勉强接受不确定的现实,保持头脑清醒。

    非常能干、热情洋溢的翻译家,如果不是他来找我、提起这个话题,那时我压根儿就想不到把自己的作品译成英文,因为我觉得自己远远没有达到那个水准

    杰伊·鲁宾作为翻译家是极具实力的,他翻译了我最新的长篇小说《奇鸟行状录》

    在每个阶段都必须自己担起责任、勇下决断。这么做既耗时费力,还需要某种程度的语言能力

    反正先全力以

    旗号高高举起,于我而言其实是一件好事。要永远保持挑战新疆域的热情,因为这对从事创作的人至关重要。安居于一个位置、一个场所(比喻意义上的场所),创作激情的新鲜程度就会衰减,终至消失。也许我碰巧是在一个恰如其分的时间,把美好的目标和健全的野心掌握在了手中

    不过一旦长住国外,不管你喜不喜欢,都必须意识到自己是个“日本作家”。周围的人会以这样的眼光看待我,连我也以这样的眼光看待自己,而且不知不觉还会生出“同胞意识”。

    我现在仍然是一个发展中的作家,还有(几乎是)无限的发展余地,或者说发展的可能。

    生年不满百,常怀千岁忧。昼短苦夜长,何不秉烛游?

    能把某个目标当作旗号高高地举起,总是一件非常美妙的事情。不问年龄几何,不问身处何地。

    能把某个目标当作旗号高高地举起,总是一件非常美妙的事情。不问年龄几何,不问身处何地。

    ◆ 第十二章 有故事的地方·怀念河合隼雄先生

    这种时候集中心力聆听对方发言,抹杀自己心中意识流般的东西。做不到这样的切换,就不可能一丝不苟地听别人讲话

    说不定从此便沉沦在深深的黑暗中。日复一日,他坚持着这种费力的本职工作。为了摆脱这种地方像线头一般紧紧缠上来的负面气息、恶的气息,就不得不满口说些无聊又没有意义的俏皮段

    而至关重要的事就在于,传出去的球是否被对方用双手牢牢地接住、能否毫无遗漏地得到理解,无须说明、无须理论,会清晰明确地反馈回来。这样一种感受,对我来说是无与伦比的乐事,它会成为至高的鼓励,让我切实地感到自己做的事情绝对没有错。

    ◆ 后记

    对自己的小说写作、对自己作为小说家坚持写小说的状态作一番总结,说几句话。

  • 贯古今于须臾,抚四海于一瞬

    贯古今于须臾,抚四海于一瞬

     -西晋 陆机《文赋》

    今天读到这句,感觉就像是武侠高手发大招一掌定局的感觉,幻影如风,飘逸似仙,气定神闲的一击。

    然后又让我想到了苏东坡的

    寄蜉蝣于天地,渺沧海之一粟,哀吾生之须臾,羡长江之无穷。挟飞仙以遨游,抱明月而长终。知不可乎骤得,托遗响于悲风。

    -北宋 苏东坡《前赤壁赋》

     

  • 驾考随记

    今天看到一个聋哑人,整洁干净的着装。穿着时尚的一个二十岁左右的小孩,大概175左右,清瘦的体型,有点稍长的头发,可以想到他可能有个舅舅,老家流行正月不理发。
    却不会说话,一起练车,因为他的原因,我们三个人练得很慢。不过也因此让我在车上的时候想哭,他的面部表情比较木讷,因为大家都在说笑都在讲话的时候,他听不到,只是一片茫然。他一字一句的比划着,教练人也很好,他把自己的车子装饰成了自己的家,在车头粘着一个纸卷的笔筒里面放着四五支笔。他一边轻声细语地讲着,一边比划着。有的地方没有比划完,他就拿笔写在白纸上给那个小孩看。
    造物主很残忍又很仁爱。
    等练完的时候,那个小孩的朋友在路边等他。在对他比划着笑着。他有点羞涩地走过去,笑着。他朋友飞快的用手跟他说着话,肩膀顶了他一下笑嘻嘻的边跳跃边走路。他一边用手指说话,一边跟随着。

    身体残缺着尚正面乐观坦然的面对一切。我一个身体健全健康者岂能在荒废时间自怨自艾。
    感谢今天!感谢老天让我看到这些。谢谢

    他很认真的看着我和另一个人开车,时不时也会用手机打字给教练看。
    他很认真地生活着。让我很羞愧,可能这也是一种偶然的天启。

    不关注干扰,只听取改进意见。
    自信😼自成一派 哈哈,你在别人的规则下考试要遵守别人的规则。

    科目三

    上车准备
    检查灯
    调整座椅 安全带 调后视镜 灯光夜间模拟
    准备起步,打左灯,踩离合,挂一档,踩离合,脚踩刹车,松手刹,看左右后视镜,扭头看左侧盲区,轻踩离合把油加,驶进左侧车道。归正后,关左灯。挂二档。
    先减速后减档
    先加速后加档
    让速不让道

    下车准备
    脚刹车 踩离合 车头三分之一对准黄线,雨刷右侧快至中间,可看后视镜。
    开停车红三角警示灯 挂空挡,拉手刹,操作一条龙 三步走
    解安全带。
    结束后关火。远的那只手开车门20厘米缝隙往后看,左手推门出。二次开门法。

    到第二个转弯的时候转一圈,肩膀与中间石头块对齐 打一圈 打一圈 打一圈
    拐弯一档

    科目三理论

    ⚠️
    错误 紧急制动 迅速转入题干都是错
    正确
    无关 不会影响
    驶入左转 驶出右转向灯
    礼让别人
    行车安全
    时间 速度长度
    超载

    安全 谨慎 缓慢
    停在线前

    1/2停车点

    注意点:
    1.熄火,挂空挡启动。 挂挡横平竖直 不要直接挂挡十字 拨挡
    2.往后面拨是远光灯
    离合不要松那么快,踩油门的时候。
    挂挡的时候松油门
    变道完毕后,关闭转向灯。

    左转弯必须要绿灯
    调头可以红灯走

    第一个掉头是打满,第二个掉头回最右侧车道是打一圈,就要右转,速度要慢。
    报语音的时候踩刹车立刻抬左右看
    一档二档 踩刹车不踩离合器
    加档收油

    靠边停车,

    第二遍注意点

    轻踩刹车滑着走
    注意听到语音
    变道的时候 先打灯 3秒后变道 对应关灯
    不压线

    第二遍提倡点
    开车比较稳
    听到语音
    点刹车比较稳

    第三遍 语音
    左转 关灯
    右转
    右转
    (变道 三秒打灯 关灯 三秒打灯 关灯)
    红绿灯
    直行
    调头 (中间车道)
    (变道 三秒打灯 关灯)
    人行横道
    学校区域
    调头 一圈方向盘 道路右侧 将要过桥

    右转

    公共汽车站

    左转

    停车 右转灯关右转灯 警示灯
    红三角 空挡 手刹

    注意点:
    直线行驶 也要点刹车 听到语音点刹车就左右看一眼
    停车时候也要打右灯 然后关右灯
    变道时候注意看左侧后视镜

    4个右灯
    三个转弯
    1个停车时候打右灯。

    形成习惯意识,停车开右灯,左变道开左灯

    第四遍
    先踩离合后踩刹车,离合一直放在脚下。
    注意打灯

    轻点刹车,左右看 学校有小孩跑出来

    听到语音
    先打灯,再点刹车(主要是为了后位灯亮一下)左右看一眼
    先抬离合再加油

    路口转减挡
    我的位置到马路牙子 调头

    右打灯,几挡都可以靠边停车。
    刹车速度
    轻踩长磨
    第五遍

    熄火原因
    离合不要动

    关火 左侧

    停在左侧
    也要先开左灯三秒 不要动方向盘
    三秒后,开右转向灯 并到右转道

    档位挂上4挡 够五十

    听到语音,就是车停了也要踩刹车
    离合踩到底,再轻踩刹车

    不要压线,第一个转弯

    东方时尚道路,不要一个劲儿的往右靠。要在中心线右侧

    听到声音先打灯,后踩死离合,轻点刹车

    上大路。
    进入最右侧车道
    并线 变道 先打灯 看镜子 并线 关灯

    加速并线

    过了立交桥后继续并线

    减挡先减速,等到10迈,再换一档。

    停车一条线
    红色三角 摘挡 拉手刹
    再解安全带

    听到语音 要打灯
    不要忘记 关灯

    不要忘记关灯 变道完毕 关灯

    最后停车
    先回正走一走再 转方向盘
    打灯 挂档 松手刹
    黄线和路牙中间

    确认车门和灯 上车检查

    左右侧停车都是左灯打开,三秒钟后,打油灯档

    答案套题干
    选择题

    看前面一辆两三辆的车,思维方式的转变

    考驾照的思维

    有几种车不跟随
    大货车
    有故障的
    出租车
    大客车

    首先看方向 再看紧急

  • 公众号与小程序的区别

     

    作者:微动天下
    链接:https://www.zhihu.com/question/53845035/answer/153364018
    来源:知乎
    著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

    1、定位不同(公众号服务于营销与信息传递,小程序面向产品与服务)

    公众号主要用于信息的传递实现人与信息的连接,借助H5 能够实现简单的交互,主要以营销和信息传递为主简单的服务为辅,而小程序从功能上与公众号有严格区分(不支持关注、消息推送等营销手段),一方面使得产品与服务不至于淹没在公众号营销信息中,另一方支持公众号、朋友圈、群与小程序之间的互动与导流,使得开发者专心做产品与服务,从而为微信带来大量长尾服务叠加微信自身重度服务打造从社交到信息连接再到服务的生态圈。

    2、实现技术区别(公众号基于H5,小程序基于微信自身开发环境与开发语言)

    小程序是微信内的云端应用(所以无需安装),不是原生App,通过WebSocket 双向通信(保证无需刷新即时通信)、本地缓存(图片与UI 本地缓存降低与服务器交互延时)以及微信底层技术优化实现了接近原生APP 的体验。

    公众号是基于传统H5 开发与运行,传统H5 运行环境是浏览器,微信小程序运行环境并非完整的浏览器,开发过程中用到H5 相关的技术,微信小程序的运行环境是微信基于浏览器内核完全重构的一个内置解析器,针对小程序专门做了优化,配合自己定义的开发语言标准(基于H5 进行了优化),提升了小程序的性能。系统权限方面,微信小程序能够通过微信APP 获得更多的系统权限,比如网络通信状态、数据缓存能力等,在此微信APP 相当于架在原有系统中的新的操作系统,小程序借助微信与系统间接交互,使得能够拥有原生APP 的体验。而这一点恰巧是HTML5 web 应用的不足,导致其主要用于业务逻辑与交互简单的应用中。

    3、功能不同(公众号功能围绕信息展示与营销,小程序面向产品与服务)

    微信与公众号在开发语言、设计规范、营销方式、审核机制等功能方面均有较大不同。公众号是一种账号类型,为用户提供信息与咨询发布平台,提供了一种新的信息传播方式,构建与读者之间更好的沟通与管理模式,结合H5以后公众号也能够提供一些简单交互功能。小程序主要旨在提供服务,相比公众号运行更流畅,能够提供更加复杂的产品与服务。公众号功能主要围绕信息传递与营销展开,小程序对营销功能进行了严格控制以与公众号区别,使得小程序的服务在使用体验与便捷性能够得到提升,不至于淹没在公众号过度营销信息中。

    4、体验上的差别(公众号操作延时较大,小程序体验接近原生App)

    公众号中点击应用功能后顶部出现绿色进度需要等一段时间,对于业务逻辑复杂交互要求高的应用使用起来体验较差。而小程序将会非常流畅几乎无需等待,类似普通APP 操作一样流畅。主要原因是公众号没有本地缓存,所以每次打开都是会请求服务器刷新页面,造成延时较长体验下降,小程序对UI 与图片本地缓存,只需要对服务器请求交互数据,页面切换无需刷新,所以体验能够接近原生APP 的流畅程度。

     

    长尾关键词

    长尾关键词(Long Tail Keyword)是指网站上的非目标关键词但与目标关键词相关的也可以带来搜索流量的组合型关键词
    长尾关键词的特征是比较长,往往是2-3个词组成,甚至是短语,存在于内容页面,除了内容页的标题,还存在于内容中。 搜索量非常少,并且不稳定。 长尾关键词带来的客户,转化为网站产品客户的概率比目标关键词高很多,因为长尾词的目的性更强。 存在大量长尾关键词的大中型网站,其带来的总流量非常大。例如,目标关键词是服装,其长尾关键词可以是男士服装、冬装、户外运动装等。长尾关键词基本属性是:可延伸性,针对性强,范围广。长尾关键词是长尾理论在关键词研究上的延伸。“长尾”具有两个特点:细和长。细,说明长尾是份额很少的市场,在以前这是不被重视的市场;长,说明这些市场虽小,但数量众多。众多的微小市场累积起来就会占据市场中可观的份额——这就是长尾的思想。
  • 总结伪类与伪元素

    熟悉前端的人都会听过css的伪类与伪元素,然而大多数的人都会将这两者混淆。本文从解析伪类与伪元素的含义出发,区分这两者的区别,并且列出大部分伪类与伪元素的具体用法,即使你有用过伪类与伪元素,但里面总有一两个你没见过的吧。

    1.伪类与伪元素

    先说一说为什么css要引入伪元素和伪类,以下是css2.1 Selectors章节中对伪类与伪元素的描述

    CSS introduces the concepts of pseudo-elements and pseudo-classes  to permit formatting based on information that lies outside the document tree.

     

    直译过来就是:css引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。下面分别对伪类和伪元素进行解释:

    伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停在指定的元素时,我们可以通过:hover来描述这个元素的状态。虽然它和普通的css类相似,可以为已有的元素添加样式,但是它只有处于dom树无法描述的状态下才能为元素添加样式,所以将其称为伪类。

    伪元素用于创建一些不在文档树中的元素,并为其添加样式。比如说,我们可以通过:before来在一个元素前增加一些文本,并为这些文本添加样式。虽然用户可以看到这些文本,但是这些文本实际上不在文档树中。

     

    2.伪类与伪元素的区别

    这里通过两个例子来说明两者的区别。

    下面是一个简单的html列表片段:

    如果想要给第一项添加样式,可以在为第一个<li>添加一个类,并在该类中定义对应样式:

    HTML:

    CSS:

    如果不用添加类的方法,我们可以通过给设置第一个<li>的:first-child伪类来为其添加样式。这个时候,被修饰的<li>元素依然处于文档树中。

    HTML:

    CSS:

    下面是另一个简单的html段落片段:

    如果想要给该段落的第一个字母添加样式,可以在第一个字母中包裹一个<span>元素,并设置该span元素的样式:

    HTML:

    CSS:

    如果不创建一个<span>元素,我们可以通过设置<p>的:first-letter伪元素来为其添加样式。这个时候,看起来好像是创建了一个虚拟的<span>元素并添加了样式,但实际上文档树中并不存在这个<span>元素。

    HTML:

    CSS:

     

    从上述例子中可以看出,伪类的操作对象是文档树中已有的元素,而伪元素则创建了一个文档数外的元素。因此,伪类与伪元素的区别在于:有没有创建一个文档树之外的元素。

     

    3.伪元素是使用单冒号还是双冒号?

    CSS3规范中的要求使用双冒号(::)表示伪元素,以此来区分伪元素和伪类,比如::before和::after等伪元素使用双冒号(::),:hover和:active等伪类使用单冒号(:)。除了一些低于IE8版本的浏览器外,大部分浏览器都支持伪元素的双冒号(::)表示方法。

    然而,除了少部分伪元素,如::backdrop必须使用双冒号,大部分伪元素都支持单冒号和双冒号的写法,比如::after,写成:after也可以正确运行。

    对于伪元素是使用单冒号还是双冒号的问题,w3c标准中的描述如下:

    Please note that the new CSS3 way of writing pseudo-elements is to use a double colon, eg a::after { … }, to set them apart from pseudo-classes. You may see this sometimes in CSS. CSS3 however also still allows for single colon pseudo-elements, for the sake of backwards compatibility, and we would advise that you stick with this syntax for the time being.

    大概的意思就是:虽然CSS3标准要求伪元素使用双冒号的写法,但也依然支持单冒号的写法。为了向后兼容,我们建议你在目前还是使用单冒号的写法。

    实际上,伪元素使用单冒号还是双冒号很难说得清谁对谁错,你可以按照个人的喜好来选择某一种写法。

     

    4.伪类与伪元素的具体用法

    这一章以含义解析和例子的方式列出大部分的伪类和伪元素的具体用法。下面是根据用途分类的伪类总结图和根据冒号分类的伪元素总结图:

    伪类

    伪元素

    某些伪类或伪元素仍然处于试验阶段,在使用前建议先在Can I Use等网站查一查其浏览器兼容性。处于试验阶段的伪类或伪元素会在标题中标注。

     

    伪类

    状态

    由于状态伪类的用法大家都十分熟悉,这里就不用例子说明了。

    1 :link

    选择未访问的链接

    2 :visited

    选择已访问的链接

    3 :hover

    选择鼠标指针浮动在其上的元素

    4 :active

    选择活动的链接

    5 :focus

    选择获取焦点的输入字段

     

    结构化

    1 :not

    一个否定伪类,用于匹配不符合参数选择器的元素。

    如下例,除了第一个<li>元素外,其他<li>元素的文本都会变为橙色。

    HTML:

    CSS:

    2 :first-child

    匹配元素的第一个子元素。

    如下例,第一个<li>元素的文本会变为橙色。

    HTML:

    CSS:

    3 : last-child

    匹配元素的最后一个子元素。

    如下例,最后一个<li>元素的文本会变为橙色。

    HTML:

    CSS:

    4 first-of-type

    匹配属于其父元素的首个特定类型的子元素的每个元素。

    如下例,第一个<li>元素和第一个<span>元素的文本会变为橙色。

    HTML:

    CSS:

    5 :last-of-type

    匹配元素的最后一个子元素。

    如下例,最后一个<li>元素的文本会变为橙色。

    HTML:

    CSS:

    6 :nth-child

    :nth-child根据元素的位置匹配一个或者多个元素,它接受一个an+b形式的参数,an+b匹配到的元素示例如下:

    • 1n+0,或n,匹配每一个子元素。
    • 2n+0,或2n,匹配位置为2、4、6、8…的子元素,该表达式与关键字even等价。
    • 2n+1匹配位置为1、3、5、7…的子元素、该表达式与关键字odd等价。
    • 3n+4匹配位置为4、7、10、13…的子元素。

    如下例,有以下HTML列表:

    CSS:

    选择第二个元素,”Beta”会变成橙色:

    选择位置序号是2的倍数的元素,”Beta”, “Delta”, “Zeta”, “kappa”会变成橙色:

    选择位置序号为偶数的元素:

    选择从第6个开始,位置序号是2的倍数的元素,”Zeta”, “Theta”, “Kappa”会变成橙色:

    7 :nth-last-child

    :nth-last-child与:nth-child相似,不同之处在于它是从最后一个子元素开始计数的。

    8 :nth-of-type

    :nth-of-type与nth-child相似,不同之处在于它是只匹配特定类型的元素。

    如下例,第二个<p>元素会变为橙色。

    HTML:

    CSS:

    9 :nth-last-type

    :nth-last-of-type与nth-of-type相似,不同之处在于它是从最后一个子元素开始计数的。

    10 :only-child

    当元素是其父元素中唯一一个子元素时,:only-child匹配该元素。

    HTML:

    CSS:

    11 :only-of-type

    当元素是其父元素中唯一一个特定类型的子元素时,:only-child匹配该元素。

    如下例,第一个ul元素只有一个li类型的元素,该li元素的文本会变为橙色。

    HTML:

    CSS:

    12 :target

    当URL带有锚名称,指向文档内某个具体的元素时,:target匹配该元素。

    如下例,url中的target命中id值为target的article元素,article元素的背景会变为黄色。

    URL:

    http://example.com/#target

    HTML:

    CSS:

    表单相关

    1 :checked

    :checked匹配被选中的input元素,这个input元素包括radio和checkbox。

    如下例,当复选框被选中时,与其相邻的<label>元素的背景会变成黄色。

    HTML:

    CSS:

    2 :default

    :default匹配默认选中的元素,例如:提交按钮总是表单的默认按钮。

    如下例,只有提交按钮的背景变成了黄色。

    HTML:

    CSS:

    3 :disabled

    :disabled匹配禁用的表单元素。

    如下例,被禁用input输入框的透明度会变成50%。

    HTML:

    CSS:

    4 :empty

    :empty匹配没有子元素的元素。如果元素中含有文本节点、HTML元素或者一个空格,则:empty不能匹配这个元素。

    如下例,:empty能匹配的元素会变为黄色。

    第一个元素中有文本节点,所以其背景不会变成黄色;

    第二个元素中有一个空格,有空格则该元素不为空,所以其背景不会变成黄色;

    第三个元素中没有任何内容,所以其背景会变成黄色;

    第四个元素中只有一个注释,此时该元素是空的,所以其背景会变成黄色;

    HTML:

    CSS:

    5 :enabled

    :enabled匹配没有设置disabled属性的表单元素。

    6 :in-range

    :in-range匹配在指定区域内元素。

    如下例,当数字选择器的数字在5到10是,数字选择器的边框会设为绿色。

    HTML:

    CSS:

    7 :out-of-range

    :out-of-range与:in-range相反,它匹配不在指定区域内的元素。

    8 :indeterminate

    indeterminate的英文意思是“不确定的”。当某组中的单选框或复选框还没有选取状态时,:indeterminate匹配该组中所有的单选框或复选框。

    如下例,当下面的一组单选框没有一个处于被选中时,与input相邻的label元素的背景会被设为橙色。

    HTML:

    CSS:

    9 :valid

    :valid匹配条件验证正确的表单元素。

    如下例,当email输入框内的值符合email格式时,输入框的边框会被设为绿色。

    HTML:

    CSS:

    10 :invalid

    :invalid与:valid相反,匹配条件验证错误的表单元素。

    11 :optional

    :optional匹配是具有optional属性的表单元素。当表单元素没有设置为required时,即为optional属性。

    如下例,第一个input的背景不会被设为黄色,第二个input的背景会被设为黄色。

    HTML:

    CSS:

    12 :required

    :required与:optional相反匹配设置了required属性的表单元素。

    13 :read-only

    :read-only匹配设置了只读属性的元素,表单元素可以通过设置“readonly”属性来定义元素只读。

    如下例,input元素的背景会被设为黄色。

    HTML:

    CSS:

    14 :read-write

    :read-write匹配处于编辑状态的元素。input,textarea和设置了contenteditable的HTML元素获取焦点时即处于编辑状态。

    如下例,input输入框和富文本框获取焦点时,背景变成黄色。

    HTML:

    CSS:

    15 :scope(处于试验阶段)

    :scope匹配处于style作用域下的元素。当style没有设置scope属性时,style内的样式会对整个html起作用。

    如下例,第二个section中的元素的文本会变为斜体。

    HTML:

    注:目前支持这个伪类的浏览器只有火狐。

    语言相关

    1 :dir(处于实验阶段)

    :dir匹配指定阅读方向的元素,当HTML元素中设置了dir属性时该伪类才能生效。现时支持的阅读方向有两种:ltr(从左往右)和rtl(从右往左)。目前,只有火狐浏览器支持:dir伪类,并在火狐浏览器中使用时需要添加前缀( -moz-dir() )。

    如下例,p元素中的阿拉伯语(阿拉伯语是从右往左阅读的)文本会变成橙色。

    HTML:

    CSS:

    如下例,p元素中的英语文本会变成蓝色

    HTML:

    CSS:

    2 :lang

    :lang匹配设置了特定语言的元素,设置特定语言可以通过为了HTML元素设置lang=””属性,设置meta元素的charset=””属性,或者是在http头部上设置语言属性。

    实际上,lang=””属性不只可以在html标签上设置,也可以在其他的元素上设置。

    如下例,分别给不同的语言设置不同的引用样式:

    HTML:

    CSS:

    其他

    1 :root

    :root匹配文档的根元素。一般的html文件的根元素是html元素,而SVG或XML文件的根元素则可能是其他元素。

    如下例,将html元素的背景设置为橙色

    2.:fullscreen

    :fullscreen匹配处于全屏模式下的元素。全屏模式不是通过按F11来打开的全屏模式,而是通过Javascript的Fullscreen API来打开的,不同的浏览器有不同的Fullscreen API。目前,:fullscreen需要添加前缀才能使用。

    如下例,当处于全屏模式时,h1元素的背景会变成橙色

    HTML:

    JAVASCRIPT:

    CSS:

     

    伪元素

    1 ::before/:before

    :before在被选元素前插入内容。需要使用content属性来指定要插入的内容。被插入的内容实际上不在文档树中。

    HTML:

    CSS:

    2 ::after/:after

    :after在被元素后插入内容,其用法和特性与:before相似。

    3 ::first-letter/:first-letter

    :first-letter匹配元素中文本的首字母。被修饰的首字母不在文档树中。

    CSS:

    4 ::first-line/:first-line

    :first-line匹配元素中第一行的文本。这个伪元素只能用在块元素中,不能用在内联元素中。

    CSS:

    5 ::selection

    ::selection匹配用户被用户选中或者处于高亮状态的部分。在火狐浏览器使用时需要添加-moz前缀。该伪元素只支持双冒号的形式。

    CSS:

    6 ::placeholder

    ::placeholder匹配占位符的文本,只有元素设置了placeholder属性时,该伪元素才能生效。

    该伪元素不是CSS的标准,它的实现可能在将来会有所改变,所以要决定使用时必须谨慎。

    在一些浏览器中(IE10和Firefox18及其以下版本)会使用单冒号的形式。

    HTML:

    CSS:

    7 ::backdrop(处于试验阶段)

    ::backdrop用于改变全屏模式下的背景颜色,全屏模式的默认颜色为黑色。该伪元素只支持双冒号的形式

    HTML:

    CSS:

    参考文章

    1. An Ultimate Guide To CSS Pseudo-Classes And Pseudo-Elements

    2. CSS伪类与CSS伪元素的区别及由来

    原创文章转载请注明:

    转载自AlloyTeam:http://www.alloyteam.com/2016/05/summary-of-pseudo-classes-and-pseudo-elements/

     
  • 天哪,还有那么多好书需要看,心情真是激动非常啊

    天哪,还有那么多好书需要看,心情真是激动非常啊
    感觉有点眼眶湿湿。
    17年看了22本书,争取18年看五十本书吧。

  • wordpress 中英文判断

    在主题文件functions.php中加入

    function is_lang($lang) {

       return (ICL_LANGUAGE_CODE == $lang) ? true : false;

    }

    2
    在相应位置处调用方式:

    [cc lang=”php”]

    //英文状态下显示内容,is_lang()里面填写语言标识fr(法语),de(德语)等等···

     

    //非英文下显示内容


    [/cc]

    jquery代码在wordpress中不起作用,需要做的修改
    [cc lang=”比如原来的代码是: $(document).ready(function(){ $(“p”).after(“Hello“); }); 需要改为: jQuery(document).ready(function(){ jQuery(“p”).after(“Hello“); });”]

  • npm

    english  throw away  by a way  wonder

  • npm 安装出现 UNMET DEPENDENCY 的解决方案

     
    npm install express -g
    ...
    npm list -g
    D:UsersLsAppDataRoamingnpm
    └─┬ express@3.4.8
      ├── buffer-crc32@0.2.1
      ├─┬ commander@1.3.2
      │ └── keypress@0.1.0
      ├─┬ connect@2.12.0
      │ ├── UNMET DEPENDENCY batch 0.5.0
      │ ├── UNMET DEPENDENCY bytes 0.2.1
      │ ├── UNMET DEPENDENCY multiparty 2.2.0
      │ ├── UNMET DEPENDENCY negotiator 0.3.0
      │ ├── UNMET DEPENDENCY pause 0.0.1
      │ ├── UNMET DEPENDENCY qs 0.6.6
      │ ├── UNMET DEPENDENCY raw-body 1.1.2
      │ └── UNMET DEPENDENCY uid2 0.0.3
      ├── cookie@0.1.0
      ├── cookie-signature@1.0.1
      ├── debug@0.7.4
      ├── fresh@0.2.0
      ├── merge-descriptors@0.0.1
      ├── methods@0.1.0
      ├── mkdirp@0.3.5
      ├── range-parser@0.0.4
      └─┬ send@0.1.4
        └── mime@1.2.11
     
    npm ERR! missing: batch@0.5.0, required by connect@2.12.0
    npm ERR! missing: bytes@0.2.1, required by connect@2.12.0
    npm ERR! missing: pause@0.0.1, required by connect@2.12.0
    ...
    npm ERR! not ok code 0

     

    今天安装一些模块的时候发现 npm install 到了一个点之后就卡住了一样等了半天一直不动,接着中断看了下出现安装出现了 UNMET DEPENDENCY 的 模块,这个时候如果重新 install 一便的话,又会重头开始,如果又碰到卡壳就很烦。

    查了一下发现是跟旧版 npm 有关的问题: https://github.com/isaacs/npm/issues/1341#issuecomment-20634338

    方案一

    1
    2
    3
    rm -rf node_modules/    # 删除已安装的模块
    npm cache clean         # 清除 npm 内部缓存
    npm install             # 重新安装

    方案二

    1
    2
    3
    rm -rf node_modules/    # 删除已安装的模块
    sudo npm update -g npm  # 更新 npm
    npm install             # 重新安装

    方案三

    npm list 命令查看之后跑到缺失模块的目录下, 手动修复部分出错的模块:

    $ npm list -g
    D:UsersLsAppDataRoamingnpm
    └─┬ express@3.4.8
      ├── buffer-crc32@0.2.1
      ├─┬ commander@1.3.2
      │ └── keypress@0.1.0
      ├─┬ connect@2.12.0
      │ ├── UNMET DEPENDENCY batch 0.5.0
      │ ├── UNMET DEPENDENCY bytes 0.2.1
      │ ├── UNMET DEPENDENCY multiparty 2.2.0
      │ ├── UNMET DEPENDENCY negotiator 0.3.0
      │ ├── UNMET DEPENDENCY pause 0.0.1
      │ ├── UNMET DEPENDENCY qs 0.6.6
      │ ├── UNMET DEPENDENCY raw-body 1.1.2
      │ └── uid2@0.0.3
      ├── cookie@0.1.0
      ├── cookie-signature@1.0.1
      ├── debug@0.7.4
      ├── fresh@0.2.0
      ├── merge-descriptors@0.0.1
      ├── methods@0.1.0
      ├── mkdirp@0.3.5
      ├── range-parser@0.0.4
      └─┬ send@0.1.4
        └── mime@1.2.11
     
    npm ERR! missing: batch@0.5.0, required by connect@2.12.0
    npm ERR! missing: qs@0.6.6, required by connect@2.12.0
    npm ERR! missing: bytes@0.2.1, required by connect@2.12.0
    npm ERR! missing: pause@0.0.1, required by connect@2.12.0
    npm ERR! missing: raw-body@1.1.2, required by connect@2.12.0
    npm ERR! missing: negotiator@0.3.0, required by connect@2.12.0
    npm ERR! missing: multiparty@2.2.0, required by connect@2.12.0
    npm ERR! not ok code 0

     

    可以 cd 到具体出问题的模块目录下手动 npm install 重新安装也可以解决.