打算保存的84nx的打开网页提示安全警告时,出现警告wwW84nxCoM页面便的无法保存

&figure&&img src=&https://pic3.zhimg.com/v2-a4930c41fff91a50c23ac1d90bea2020_b.jpg& data-rawwidth=&658& data-rawheight=&864& class=&origin_image zh-lightbox-thumb& width=&658& data-original=&https://pic3.zhimg.com/v2-a4930c41fff91a50c23ac1d90bea2020_r.jpg&&&/figure&&p&美式家居风格,这是一种不错的选择。它贴近生活,注重人文元素,少了形式的束缚,多了自由不羁的情怀。不仅如此,它还满足人们对文化审美的需求。都知道美国是北美洲的一个移民国家,多国文化这片土地上碰撞、融合,形成了新的文化。&/p&&p&因此在家居风格中,美式风格也是多元文化融合的风格,其风格多样、兼容并蓄。美式家具既有复古的风格,也有新古典风格,又结合了本土的乡村文化形成了独特的美式乡村风格,以及简约、生活型的简美风格。&/p&&p&&br&&/p&&p&下面小美就简单的介绍一些美式乡村常见一些比较凸显风格的家具。&/p&&p&&b&橱柜&/b&和&b&衣柜&/b&这种大件的家具是最能体现家装风格的。由于展示面积比较大,可以直接主导着整体家装风格的配色、样式等。(一定要慎重考虑。)&/p&&figure&&img src=&https://pic4.zhimg.com/v2-cb05dcaeefb89c8662170c_b.jpg& data-size=&normal& data-rawwidth=&800& data-rawheight=&600& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/v2-cb05dcaeefb89c8662170c_r.jpg&&&figcaption&美式乡村厨房橱柜&/figcaption&&/figure&&p&美式乡村的橱柜,没有太多的线条雕刻,简单、实用,色彩明快。(一般运用最自然的原木色。)&/p&&figure&&img src=&https://pic1.zhimg.com/v2-34712ec8fccfd16fcec0fd_b.jpg& data-size=&normal& data-rawwidth=&2000& data-rawheight=&1414& class=&origin_image zh-lightbox-thumb& width=&2000& data-original=&https://pic1.zhimg.com/v2-34712ec8fccfd16fcec0fd_r.jpg&&&figcaption&美式风格的衣柜&/figcaption&&/figure&&p&除了衣柜外,还有很多家具搭配。
比如&b&沙发&/b&和&b&茶几&/b&。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-3cdf1afc7958c_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&658& data-rawheight=&658& class=&origin_image zh-lightbox-thumb& width=&658& data-original=&https://pic1.zhimg.com/v2-3cdf1afc7958c_r.jpg&&&/figure&&p&一张做旧了的实木&b&茶几&/b&,&b&茶几&/b&上摆置些清新或者艳丽的鲜花。在&b&茶几&/b&背后配上一组沙发,可以是浅色的&b&布艺沙发&/b&,也可以是经典的&b&皮质沙发&/b&。(一般都会在沙发和茶几四周,铺设装饰有美式元素的蔓草、花卉类地毯,展现出美式乡村的一种悠闲、浪漫的情怀。)&/p&&figure&&img src=&https://pic2.zhimg.com/v2-f573fe59ec366d6f335311_b.jpg& data-size=&normal& data-rawwidth=&564& data-rawheight=&733& class=&origin_image zh-lightbox-thumb& width=&564& data-original=&https://pic2.zhimg.com/v2-f573fe59ec366d6f335311_r.jpg&&&figcaption&美观的美式皮质沙发&/figcaption&&/figure&&p&&b&美式斗柜&/b&,经常出现在美式的家装中,&b&斗柜&/b&在一定的程度上展现美式生活精致的追求。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-77695cccc7b42_b.jpg& data-size=&normal& data-rawwidth=&658& data-rawheight=&658& class=&origin_image zh-lightbox-thumb& width=&658& data-original=&https://pic4.zhimg.com/v2-77695cccc7b42_r.jpg&&&figcaption&全封闭性的斗柜&/figcaption&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-51fe16d61adeb48e3ec04bd_b.jpg& data-size=&normal& data-rawwidth=&658& data-rawheight=&658& class=&origin_image zh-lightbox-thumb& width=&658& data-original=&https://pic3.zhimg.com/v2-51fe16d61adeb48e3ec04bd_r.jpg&&&figcaption&半封闭斗柜&/figcaption&&/figure&&p&美式斗柜,有一定的储物能力,能储放一些小型常用的生活用品。其实斗柜本身具有一定装饰功能的。自然的实木材质,外观简约、淳朴的造型,造就不一样的美式乡村的风格美。柜体之上的平台,可以摆放鲜花、绿植、工艺品、台灯等,台面之上的墙壁可以挂些装饰画等。(也可以围绕着斗柜进行其他的润色,添加相应装饰、配件等。)&/p&&p&说到斗柜,不得不提&b&边几&/b&,这是经常出现在沙发旁的美式家具。&/p&&figure&&img src=&https://pic3.zhimg.com/v2-f30fcde64_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&658& data-rawheight=&838& class=&origin_image zh-lightbox-thumb& width=&658& data-original=&https://pic3.zhimg.com/v2-f30fcde64_r.jpg&&&/figure&&p&&b&美式边几&/b&是美式悠闲生活的延伸产物,服务在沙发区域进行阅读、喝咖啡、看书等活动的人群,是悠闲生活的彰显。&/p&&p&美式家居中还有一个最能直接展现风格和情怀的家居。那就是,一进门就能见到的鞋柜了。&/p&&figure&&img src=&https://pic4.zhimg.com/v2-ca70b8d297944deb_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&450& data-rawheight=&487& class=&origin_image zh-lightbox-thumb& width=&450& data-original=&https://pic4.zhimg.com/v2-ca70b8d297944deb_r.jpg&&&/figure&&p&&br&&/p&&p&&br&&/p&&p&美式乡村鞋柜,一般也是采用实木,造型也有各异。它体现了一种乡村生活的一种随意、自由,但不散漫的情怀。(帽子、鞋子、雨具等,都可以搭配放置在鞋柜旁边。有一种很自由的生活气息。)&/p&&p&&br&&/p&&p&以上就是小美挑的几种美式乡村家家具,以及他们一些搭配。如果追求一种奢华又除去土豪那种浮夸,小美首推乡村美式的家装风格。乡村风格一直占有美式风格的 重要地位,体现出早期美国先民的开拓精神和崇尚自由、喜爱大自然的个性,它造型简单,色调明快,用料自然、淳朴,而且实用、耐用。&/p&&p&&br&&/p&&p&&b&——想要得到关于美式风格的更多分享吗?关注小美就对了!&/b&&/p&&p&以下是海量“买家秀”的传送门:&/p&&figure&&img src=&https://pic3.zhimg.com/v2-aced09d2f9410_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&750& data-rawheight=&672& class=&origin_image zh-lightbox-thumb& width=&750& data-original=&https://pic3.zhimg.com/v2-aced09d2f9410_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-8c4e96ca8ff8539bce27b22_b.jpg& data-caption=&& data-size=&normal& data-rawwidth=&1752& data-rawheight=&394& class=&origin_image zh-lightbox-thumb& width=&1752& data-original=&https://pic2.zhimg.com/v2-8c4e96ca8ff8539bce27b22_r.jpg&&&/figure&&p&&a href=&https://link.zhihu.com/?target=http%3A//y0.cn/jmqxb& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&█ █ 欧美·{简欧风格} ╭? 风格馆 █ █&/a&&/p&&p&&br&&/p&&p&[部分图片源自网络,侵删]&/p&&p&&br&&/p&&p&&i&(上海、深圳、成都、重庆、贵阳均有线下体验馆)&/i&&/p&&p&&i&(淘宝、京东两大电商平台均运营多年,服务覆盖全国,搜索“积美思享”可查看真实案例)&/i&&/p&
美式家居风格,这是一种不错的选择。它贴近生活,注重人文元素,少了形式的束缚,多了自由不羁的情怀。不仅如此,它还满足人们对文化审美的需求。都知道美国是北美洲的一个移民国家,多国文化这片土地上碰撞、融合,形成了新的文化。因此在家居风格中,美式…
&figure&&img src=&https://pic1.zhimg.com/v2-71a104c6cdeb401f2b497_b.jpg& data-rawwidth=&900& data-rawheight=&500& class=&origin_image zh-lightbox-thumb& width=&900& data-original=&https://pic1.zhimg.com/v2-71a104c6cdeb401f2b497_r.jpg&&&/figure&&p&老房子总是有各种各样的问题:采光差、布局不合理、隔音差……屋主zhangmengnew遇到的问题则是:&strong&层高低。&/strong&&/p&&p&zhangmengnew买了个上海老房,&strong&层高只有2.6米&/strong&。和现在常见的2.8米比低了不少。他想要的地暖和新风系统更是难实现。&/p&&p&身为景观规划和设计的他,拆开了墙重新设计内部,把解决办法藏在里其中。不仅没怎么消耗层高,地暖和新风系统一个都不少。想知道墙里面的奥妙,就快往下看吧!&/p&&figure&&img src=&https://pic3.zhimg.com/v2-281ce10cf557a83df4c4cdfd6ca0a38c_b.jpg& data-rawwidth=&1280& data-rawheight=&566& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-281ce10cf557a83df4c4cdfd6ca0a38c_r.jpg&&&/figure&&p&&b&职业&/b& 景观和规划设计&/p&&p&&b&年龄&/b& 85后&/p&&p&&b&房子位置&/b& 上海 长宁&/p&&p&&b&面积&/b& 53平米&/p&&p&&b&装修花费&/b& 35万&/p&&p&&b&装修时长&/b& 6个月&/p&&p&&b&入住时长&/b& 2个月&/p&&p&&b&家居灵感&/b& 各种室内案例,还有平时项目做的野奢酒店,很喜欢那种现代又热情洋溢的原木风。&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b11aa8cf9ce8_b.jpg& data-rawheight=&178& data-rawwidth=&2667& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic1.zhimg.com/v2-b11aa8cf9ce8_r.jpg&&&/figure&&p&&i&以下&/i&&i&图片/描述均选自好好住APP用户「&b&zhangmengnew&/b&」&figure&&img src=&https://pic4.zhimg.com/v2-50b240dbe61d42bd8c318_b.jpg& data-rawwidth=&1280& data-rawheight=&183& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-50b240dbe61d42bd8c318_r.jpg&&&/figure&&/i&&/p&&br&&figure&&img src=&https://pic7.zhimg.com/v2-37529abb2b2b77ff78d3b6_b.jpg& data-rawwidth=&1280& data-rawheight=&965& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic7.zhimg.com/v2-37529abb2b2b77ff78d3b6_r.jpg&&&/figure&▲完成的平面图,两房改成三房了,而且厨房厕所很大,这两个空间使用频率很高,不喜欢很多户型从这两个地方省空间,两个最容易脏的地方偏偏搞得最憋屈。&figure&&img src=&https://pic3.zhimg.com/v2-e0dcb9168f5ecac0de279_b.jpg& data-rawwidth=&2667& data-rawheight=&383& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic3.zhimg.com/v2-e0dcb9168f5ecac0de279_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-8953cc8ccb8c929dcd19_b.jpg& data-rawwidth=&1280& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-8953cc8ccb8c929dcd19_r.jpg&&&/figure&&p&▲一进门的样子,右手是硅藻泥加地板上墙的做法,左手是厕所隔墙,被我改成了半墙半柜子的样子,深度只有20cm,能放些卫生纸一类的小件物品,还把强弱电箱藏在了里面了。&/p&&br&&p&&strong&?玄关-卫生间墙体设计&/strong&&/p&&p&&figure&&img src=&https://pic3.zhimg.com/v2-fa654af3ecc4fb82c89c8e7ba35d9d8d_b.jpg& data-rawwidth=&1280& data-rawheight=&904& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-fa654af3ecc4fb82c89c8e7ba35d9d8d_r.jpg&&&/figure&▲玄关柜内部的结构,墙面结合弱电箱的做法。弱电箱被藏了起来,还增加了不少储物空间。&figure&&img src=&https://pic1.zhimg.com/v2-27e8a004dea0f453eb01d972c64a3db7_b.jpg& data-rawwidth=&2667& data-rawheight=&383& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic1.zhimg.com/v2-27e8a004dea0f453eb01d972c64a3db7_r.jpg&&&/figure&&figure&&img src=&https://pic3.zhimg.com/v2-ae6df304f2_b.jpg& data-rawwidth=&1280& data-rawheight=&853& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-ae6df304f2_r.jpg&&&/figure&&/p&&p&▲客餐厅处理比较简单,设计了一个加长加宽的卡座,没打算买那种变形金刚似的桌子,每次吃饭都得拆一遍太讨厌了。灰色的墙是黑板漆。&/p&&p&&figure&&img src=&https://pic2.zhimg.com/v2-b2067fdf5b9a6c6aae74_b.jpg& data-rawwidth=&1280& data-rawheight=&853& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-b2067fdf5b9a6c6aae74_r.jpg&&&/figure&▲客厅看向厨房的方向,玻璃的做法会显得房子大很多,比较喜欢橘红色所以刷了一面橘红色的墙,白色的墙是硅藻泥。&figure&&img src=&https://pic1.zhimg.com/v2-27e8a004dea0f453eb01d972c64a3db7_b.jpg& data-rawwidth=&2667& data-rawheight=&383& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic1.zhimg.com/v2-27e8a004dea0f453eb01d972c64a3db7_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-5caa9c2d21a1e8b426ccb_b.jpg& data-rawwidth=&1280& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-5caa9c2d21a1e8b426ccb_r.jpg&&&/figure&▲冰箱后面和侧面的格子(深度不到冰箱的一半),后面是空的,有很大的空间布置插座。&figure&&img src=&https://pic3.zhimg.com/v2-fa530afd72c6894ee2bd_b.jpg& data-rawwidth=&2667& data-rawheight=&383& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic3.zhimg.com/v2-fa530afd72c6894ee2bd_r.jpg&&&/figure&&figure&&img src=&https://pic1.zhimg.com/v2-e7ac8afb83ea699e729d4ba_b.jpg& data-rawwidth=&1280& data-rawheight=&853& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-e7ac8afb83ea699e729d4ba_r.jpg&&&/figure&▲冰箱后面和卧室不宽,总共才2米55,隔了一部分空间给书房,两个房间中间的隔断是衣柜。&figure&&img src=&https://pic1.zhimg.com/v2-275c20cd0ca2db_b.jpg& data-rawwidth=&1280& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-275c20cd0ca2db_r.jpg&&&/figure&&/p&&p&▲看户型图会发现主卧很大而且有三个窗户,所以隔出来一个带窗的书房,宽度有1.78m,和卧室是一个套房的关系,如果有需要改成儿童房也合适。&/p&&br&&p&&strong&?卧室-书房墙体设计&/strong&&/p&&p&&figure&&img src=&https://pic4.zhimg.com/v2-a81df6d44e5b276b03641adf314b5bca_b.jpg& data-rawwidth=&1280& data-rawheight=&904& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-a81df6d44e5b276b03641adf314b5bca_r.jpg&&&/figure&▲卧室和书房之间衣柜结合新风管道地台的做法。总共2米6的层高还做了新风和地暖,衣柜靠墙也是放,放中间也是放,新风走衣柜顶部,完美地被藏了起来,节省了层高。&figure&&img src=&https://pic3.zhimg.com/v2-d_b.jpg& data-rawwidth=&2667& data-rawheight=&383& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic3.zhimg.com/v2-d_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-12faadcb6d7c1d933e467_b.jpg& data-rawwidth=&1280& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic2.zhimg.com/v2-12faadcb6d7c1d933e467_r.jpg&&&/figure&▲卫生间在打开门的时候,就很自然地把湿区给完全关起来了,1米5长的台面用的时候超爽。没有阳台,洗衣机和干衣机也在这里。&figure&&img src=&https://pic1.zhimg.com/v2-2a6f2ea612d0b4632a52c_b.jpg& data-rawwidth=&1280& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-2a6f2ea612d0b4632a52c_r.jpg&&&/figure&&/p&&br&&p&▲这里是湿区,左侧有镂空的墙就是之前提到的厕所隔墙,用了单向镜子,并在外面加了灯光。&br&&figure&&img src=&https://pic3.zhimg.com/v2-40aebd91be1f9ddd187af_b.jpg& data-rawwidth=&1280& data-rawheight=&1920& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-40aebd91be1f9ddd187af_r.jpg&&&/figure&▲洗衣机藏在柜子里的做法和冰箱是一个原理的,都是后侧和侧面留下足够的空间,但在外面看是做成一体的。&figure&&img src=&https://pic1.zhimg.com/v2-fe8b7cc2b0bfbde30c97488_b.jpg& data-rawwidth=&1280& data-rawheight=&183& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-fe8b7cc2b0bfbde30c97488_r.jpg&&&/figure&&figure&&img src=&https://pic4.zhimg.com/v2-e0d372faf3ec35d6d14c6_b.jpg& data-rawwidth=&1280& data-rawheight=&853& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic4.zhimg.com/v2-e0d372faf3ec35d6d14c6_r.jpg&&&/figure&▲右侧是给厕所透光用的单项镜子,能当全身镜用。也做了移门,住人的话可以关掉。&figure&&img src=&https://pic1.zhimg.com/v2-9c19fd1fb88b99f49a6cac_b.jpg& data-rawwidth=&1280& data-rawheight=&853& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic1.zhimg.com/v2-9c19fd1fb88b99f49a6cac_r.jpg&&&/figure&&/p&&p&▲次卧白天的样子,整屋做了地柜,有个投影机放在柜子顶上,这个角度看不到。&figure&&img src=&https://pic3.zhimg.com/v2-ea5d3dfa58f49045aede6cf700d8bb62_b.jpg& data-rawwidth=&1280& data-rawheight=&960& class=&origin_image zh-lightbox-thumb& width=&1280& data-original=&https://pic3.zhimg.com/v2-ea5d3dfa58f49045aede6cf700d8bb62_r.jpg&&&/figure&▲我想说在次卧看电影真是太爽了,哈哈。地上是雅马哈的回音壁。&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-b11aa8cf9ce8_b.jpg& data-rawwidth=&2667& data-rawheight=&178& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic1.zhimg.com/v2-b11aa8cf9ce8_r.jpg&&&/figure&&p&想和zhangmengnew聊聊他家神奇的设计吗?&br&&/p&&p&&u&&a href=&https://link.zhihu.com/?target=http%3A//l.hhz1.cn/MPJcR2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&戳这儿去他主页看看吧&/a&&/u&&/p&&p&如果你还有其他装修、家居相关的问题,记得下载好好住APP&/p&&p&&u&&a href=&https://link.zhihu.com/?target=http%3A//l.hhz1.cn/GqV5y1& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&戳这里下载 好好住&/a&&/u&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-e87fb8a33fd71bbe3c448_b.jpg& data-rawwidth=&2667& data-rawheight=&383& class=&origin_image zh-lightbox-thumb& width=&2667& data-original=&https://pic1.zhimg.com/v2-e87fb8a33fd71bbe3c448_r.jpg&&&/figure&&figure&&img src=&https://pic2.zhimg.com/v2-e9be823ddf9457cac15dae_b.jpg& data-rawwidth=&1258& data-rawheight=&434& class=&origin_image zh-lightbox-thumb& width=&1258& data-original=&https://pic2.zhimg.com/v2-e9be823ddf9457cac15dae_r.jpg&&&/figure&
老房子总是有各种各样的问题:采光差、布局不合理、隔音差……屋主zhangmengnew遇到的问题则是:层高低。zhangmengnew买了个上海老房,层高只有2.6米。和现在常见的2.8米比低了不少。他想要的地暖和新风系统更是难实现。身为景观规划和设计的他,拆开了墙重…
&p&&b&采光&/b&&/p&&p& 津崎家是典型窄面宽、大进深的一室一厅公寓,这种长进深的房子采光没有那么理想,所以我们看到津崎家在一些位置用了&b&雾化玻璃,房间与房间相互借光&/b&,这样做还能增加房间的层次感,拓展空间视觉▼ &/p&&figure&&img src=&https://pic4.zhimg.com/v2-1cc0f2dfd211dcb31a9853_b.jpg& data-rawwidth=&1185& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1185& data-original=&https://pic4.zhimg.com/v2-1cc0f2dfd211dcb31a9853_r.jpg&&&/figure&&p& 比如说客厅与卧室共用的墙,在壁龛上增加了一窄条磨砂玻璃,让视觉有穿透感,又有书本和摆件遮挡,保证了卧室的私密性▼ &/p&&figure&&img src=&https://pic3.zhimg.com/v2-519c6d253fe0e7e7c269f2_b.jpg& data-rawwidth=&1301& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1301& data-original=&https://pic3.zhimg.com/v2-519c6d253fe0e7e7c269f2_r.jpg&&&/figure&&p& 盥洗室的光线透过磨砂玻璃门,弥补了餐厅采光的不足,注意选用磨砂较为细腻的玻璃,保证透光不透影▼ &/p&&figure&&img src=&https://pic2.zhimg.com/v2-6f2c03cd4e015ea604cacd_b.jpg& data-rawwidth=&1365& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1365& data-original=&https://pic2.zhimg.com/v2-6f2c03cd4e015ea604cacd_r.jpg&&&/figure&&p& 如果一面墙上或一个空间周围有多扇门,也可以参考这种做法,津崎家的餐厅就对着三扇门,如果都用木门的话,餐厅就会显得非常局促,将私密性要求不高的盥洗室门和玄关门用磨砂玻璃处理,弱化了门的感觉,增加采光,也让视觉有一定的延伸▼ &/p&&figure&&img src=&https://pic2.zhimg.com/v2-2ef1f1ebbe4bd138d904ae11_b.jpg& data-rawwidth=&1365& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1365& data-original=&https://pic2.zhimg.com/v2-2ef1f1ebbe4bd138d904ae11_r.jpg&&&/figure&&p& 记得我们之前说过日式的房间喜欢营造朦胧的灯光效果,磨砂玻璃在这里就起到这个作用,光线透过玻璃相当于在你家&b&装了一个柔光滤镜&/b&,把皮肤照得美美的,女生们赶紧get起来! &/p&&br&&p&&b&收纳&/b&&/p&&p& 收纳是一门大学问,如果&b&在平面阶段就规划好每个区域相应的收纳位置和收纳形式&/b&,能够帮助我们获得更为干净整洁的空间,后期在使用时也很顺手,不会出现东西乱放的情况。&/p&&p&津崎家的收纳就规划得比较好,在入门处的玄关、厨房和餐厅都设有壁橱,&b&在墙体制作的时候就一起考虑&/b&,节省了面积也不会出现死角。行李箱、被褥等大件的杂物都收纳在这些地方▼ &/p&&figure&&img src=&https://pic1.zhimg.com/v2-1a6fdec32ee20_b.jpg& data-rawwidth=&1185& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1185& data-original=&https://pic1.zhimg.com/v2-1a6fdec32ee20_r.jpg&&&/figure&&p& 有了这些大容量的隐藏式收纳,客厅不再需要为那些杂乱的物品发愁,可以留出干净的墙面收纳近期要看的书和好看的摆设,真正成为放松身心的空间▼
&/p&&figure&&img src=&https://pic1.zhimg.com/v2-ff1accae863cf14aee3dd8_b.jpg& data-rawwidth=&1365& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1365& data-original=&https://pic1.zhimg.com/v2-ff1accae863cf14aee3dd8_r.jpg&&&/figure&&p&&b&家具 &/b&&/p&&p& 津崎家的大件家具基本上来自idc_otsuka大塚家具,大塚主要生产餐桌椅、床与收纳柜等,目前在大连与石家庄都有销售点,国内的小伙伴购买相对方便一些。&/p&&p&小户型对家居弹性的要求更高,餐桌同时作为工作与会议桌使用,因此配备几把坐感良好的椅子很有必要。两面通透的置物柜作为房间的屏风将餐厅与客厅隔开▼&/p&&figure&&img src=&https://pic4.zhimg.com/v2-eeebd754667_b.jpg& data-rawwidth=&850& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic4.zhimg.com/v2-eeebd754667_r.jpg&&&/figure&&br&&figure&&img src=&https://pic1.zhimg.com/v2-bf1a06cf58a1dfd86ee0c8_b.jpg& data-rawwidth=&850& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic1.zhimg.com/v2-bf1a06cf58a1dfd86ee0c8_r.jpg&&&/figure&&p& 卧室没有使用传统的床头柜,而是用了两个不同高度的边几来替代,增加了卧室的&b&随性感&/b&,看腻了跟客厅的边几换一换位置也是极好的,哈哈▼ &/p&&figure&&img src=&https://pic2.zhimg.com/v2-88bcdb885812cbd1e80d9f_b.jpg& data-rawwidth=&850& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic2.zhimg.com/v2-88bcdb885812cbd1e80d9f_r.jpg&&&/figure&&p& 除了大塚家具,还有一些品牌的小家具也很有意思,比如说这张来自MUKU工房的小吧椅,椅面直径只有22.5cm,当时在熊本店看到的时候一度怀疑是不是自己的臀围太大了,试坐后却觉得出奇地&b&稳妥和舒服&/b&,好后悔没有立即买下▼ &/p&&figure&&img src=&https://pic2.zhimg.com/v2-aa7b22dd6bd_b.jpg& data-rawwidth=&850& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic2.zhimg.com/v2-aa7b22dd6bd_r.jpg&&&/figure&&br&&p&&b&有趣的小玩意儿&/b& &/p&&p& 不知道有没有人跟我一样,被津崎家的各种小玩意儿种下一片草原的。感觉津崎真的是超级闷骚的,作为一个IT男居然偷偷买了那么多有趣的东西藏在家里。&/p&&p&卧室的Lumio灯灵感来自一本被打开的书,朦胧的光源很适合作为床头灯,可以根据书打开的幅度调节亮度,不用的时候收起来也不占地方。很好,已放入购物车▼&/p&&figure&&img src=&https://pic4.zhimg.com/v2-dfa78d7671a80efd85ee147_b.jpg& data-rawwidth=&850& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic4.zhimg.com/v2-dfa78d7671a80efd85ee147_r.jpg&&&/figure&&p& 类似的设计还有玄关的两BOOKNITURE矮凳,同样是书本被打开的概念,结构也设计得很合理,来自香港设计师Mike Mak▼ &/p&&figure&&img src=&https://pic1.zhimg.com/v2-fd7e4caed0e9876feffad18_b.jpg& data-rawwidth=&1512& data-rawheight=&768& class=&origin_image zh-lightbox-thumb& width=&1512& data-original=&https://pic1.zhimg.com/v2-fd7e4caed0e9876feffad18_r.jpg&&&/figure&&p& 工作台的台灯有很多人问,来自品牌recolte Lumiere,男主用的是这个系列的台灯,但我更喜欢落地灯,修长的身形更为秀气。墙上的金属网架来自杉山製作所,造型颇为时尚▼
&/p&&figure&&img src=&https://pic4.zhimg.com/v2-b4de538ffc98d6ffb5728b_b.jpg& data-rawwidth=&850& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic4.zhimg.com/v2-b4de538ffc98d6ffb5728b_r.jpg&&&/figure&&p& 除了这些创意小物,新垣结衣也添加了不少萌萌的小物件。厨房墙面上就挂了不少Hello marche▼ &/p&&figure&&img src=&https://pic2.zhimg.com/v2-9cde8d_b.jpg& data-rawwidth=&850& data-rawheight=&443& class=&origin_image zh-lightbox-thumb& width=&850& data-original=&https://pic2.zhimg.com/v2-9cde8d_r.jpg&&&/figure&&br&&figure&&img src=&https://pic3.zhimg.com/v2-745d15e6e5fd55e4ef4c3b06_b.jpg& data-rawwidth=&1181& data-rawheight=&645& class=&origin_image zh-lightbox-thumb& width=&1181& data-original=&https://pic3.zhimg.com/v2-745d15e6e5fd55e4ef4c3b06_r.jpg&&&/figure&&p& 好啦,先说到这里,想到什么再更新,希望能给大家装修提供参考。 &/p&&p&更多日本住宅咨询,欢迎关注我的微信公众号:&b&&i&草三冉CSR&/i&&/b&&/p&
采光 津崎家是典型窄面宽、大进深的一室一厅公寓,这种长进深的房子采光没有那么理想,所以我们看到津崎家在一些位置用了雾化玻璃,房间与房间相互借光,这样做还能增加房间的层次感,拓展空间视觉▼ 比如说客厅与卧室共用的墙,在壁龛上增加了一窄条磨砂玻…
&p&&strong&“&/strong&你知道一份好的菜单有什么讲究么?你相信菜单的设置直接影响餐厅的经营状况么?调整价格、推新品、减菜单……其实这些都可以归结为菜单变革。菜单不仅是下单导航,也不单是菜品介绍,其实是告诉消费者,你到底卖的是什么?&strong&”&/strong&&/p&&p&&br&很多人觉得千禧一代们很“花心”,去餐厅吃饭时油放多了嫌腻歪,放少了嫌清汤寡水;装修档次高嫌人家土豪,档次低了嫌人家low;音乐太大声嫌吵,太舒缓嫌不够刺激。&br&&/p&&br&&p&也有人觉得get到他们的点并没那么难,一份舒服的菜单、桌上一束好看的花,甚至流畅的网速都可能成为他们常来一家餐厅的理由。所以我们该如何“再设计”自己的菜单,好让千禧一代们愿意花时间多在店里坐坐呢?这几个菜单调整的新方向你不妨看看。&/p&&br&&blockquote&&p&&strong&品类精简——符合消费升级下人们的心理诉求&/strong&&/p&&/blockquote&&p&&br&&strong&Tips:&/strong&&strong&“让专业的人做专业的事儿”是我近期听餐饮掌柜们最常说的一句话,它要求企业必须聚焦于一点,专注并将其做出特色。它既可以表现为餐厅面积的压缩、员工数量的压缩、装修设计元素的压缩,也可以放到菜单上表现成品类缩减的样子。&br&&br&&/strong&&strong&表面上菜单品类数量的缩减,其实是背后产品结构的调整,所以必须做到菜单表现形式与产品线的一致。&br&&br&&/strong&&/p&&p&餐饮发达程度至少领先中国15年的日本,“聚焦”特质尤其明显。&br&&/p&&br&&p&&figure&&img data-rawheight=&426& data-rawwidth=&640& src=&https://pic2.zhimg.com/ae467987fdfd83bd03be4d_b.jpg& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/ae467987fdfd83bd03be4d_r.jpg&&&/figure&(80%的日本餐馆都是单品店)&/p&&br&&p&像什么拉面专门店、寿司专门店、米饭专门店......几乎80%的日本餐馆走的都是单品路线,且日本餐厅的菜单多以单页形式展现,菜品种类并不繁复。而近几年,这种形式在中国也逐渐活跃。&br&&br&&/p&&p&可观察到的是,巴奴毛肚从过去菜单上的100多道菜压缩到了30多道;&br&&br&&/p&&p&望湘园在两年间将菜单上120多道菜压缩到了69道;&br&&br&&/p&&p&杨记兴臭鳜鱼将原本200多道菜品压缩到了39道;&br&&br&&/p&&p&和合谷只保留了6款经典产品,并每月推出1款创新口味,开启了“6+1”的菜单新模式......&br&&br&&/p&&p&&figure&&img data-rawheight=&589& data-rawwidth=&628& src=&https://pic2.zhimg.com/bc52ec9fea76fb139ef35431_b.jpg& class=&origin_image zh-lightbox-thumb& width=&628& data-original=&https://pic2.zhimg.com/bc52ec9fea76fb139ef35431_r.jpg&&&/figure&&br&(杨记兴臭鳜鱼的“菜单革命”从未停歇)&/p&&br&&p&首先,这样做能够把不方便标准化、不方便保存、不方便对接供应链的产品剔除,减轻了产品线和厨房负担(采购、物流、存储、备料、人工等成本),增加出品速度;其次,食材更新鲜,菜品品质的稳定性更强,顾客点单目的更明确,体验感变强。&br&&br&&/p&&p&对企业来说,毛利和单店营业额都得以提升。对顾客来说,可挑选菜品余地的减少也刚好贴合了消费升级下人们的心理诉求,逻辑成立,值得借鉴。&/p&&br&&blockquote&&p&&strong&信息更细致——贴合社会流行趋势&/strong&&/p&&/blockquote&&br&&p&&strong&Tips:实实在在地告诉顾客我是谁、以及我都能为他们做些什么,表现形式上,尽量以最直观、最简单、最接地气的方式在菜单上呈现。&/strong&&br&&br&&/p&&p&可以看看这两家餐厅的做法:&br&&br&&/p&&p&&figure&&img data-rawheight=&446& data-rawwidth=&630& src=&https://pic1.zhimg.com/b3c34f41edbf9b9a89e30_b.jpg& class=&origin_image zh-lightbox-thumb& width=&630& data-original=&https://pic1.zhimg.com/b3c34f41edbf9b9a89e30_r.jpg&&&/figure&&br&(Tribe将欧美人追捧的饮食法融入菜单)&/p&&br&&p&Tribe对有机和健康理念无比崇尚,且1/3的客群都是健身爱好者。所以它在菜单底部的注释上增加了欧美人追捧的饮食法,像VV(无蛋奶的纯素食)、PD(Paleo Diet,旧石器饮食法)、GT(Gluten-free,无麸质饮食)、HP(富含蛋白质)、H(帮助外伤愈合)、F(多纤维)、++(丰富维生素)等信息,能够方便顾客对食物营养搭配直观进行了解。&br&&br&&/p&&p&更夸张的还有大开沙界(上海一家自助沙拉品牌),顾客点餐时要以“筹码”来选择爱吃的食物,不同筹码上面都有标注各自的卡路里(减肥人士的福音!),服务员为其配餐后,打印的小票还能计算出这顿饭的卡路里总数和营养成分比例。&br&&br&&/p&&p&&figure&&img data-rawheight=&347& data-rawwidth=&640& src=&https://pic2.zhimg.com/bfc92c7b24bde85f8aed_b.jpg& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic2.zhimg.com/bfc92c7b24bde85f8aed_r.jpg&&&/figure&&br&(大开沙界在打印的小票上标注食物卡路里)&/p&&br&&p&怕自己解释的还不够到位,如果顾客愿意付出扫二维码的时间和微信内存,它还会以更变态的“图表解释法”加倍奉还。&br&&br&&/p&&p&在向顾客解释自己的同时,尽量不要表露出一副营销目的过强的姿态,通过菜单向顾客普及些他们既关心又不太懂的新趋势,甚至于把自己变成生活方式的倡导者,都能让顾客更愿掏腰包。&br&&br&&/p&&p&不过这也不是写点儿文案那么容易,它需要的是品牌专业度的打造。&/p&&br&&blockquote&&p&&strong&菜品轻重搭配合理——年轻人随时发生的餐饮诉求&/strong&&/p&&/blockquote&&br&&p&&strong&Tips:以一周中的不同日期、一天中的不同时间段来对菜单进行不同的种类搭配,并将“轻食+重食”的形式进行多样化组合。&br&&br&&/strong&&/p&&p&&strong&需要注意的是,这种菜单的搭配方式对品类要求很高,在可操作程度上,中餐不如西餐,正餐不如快餐,快餐不如休闲餐。&/strong&&br&&br&&/p&&p&&figure&&img data-rawheight=&357& data-rawwidth=&640& src=&https://pic3.zhimg.com/4fd51f5b5e_b.jpg& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic3.zhimg.com/4fd51f5b5e_r.jpg&&&/figure&&br&(黑板上是wagas的手写菜单)&/p&&br&&p&这点Wagas解释的很到位,总体来说它还是标着年轻人在做生意,比如:&br&&br&&/p&&p&周一到周五工作日期间,上午11点之前提供早餐菜单;&br&&br&&/p&&p&中午提供4 款售价 58 元的便捷午餐菜单,并且取餐和打包全程不超10分钟;&br&&br&&/p&&p&下午和傍晚,提供10多款鲜榨果汁、咖啡、茶饮和蛋糕甜点;&br&&br&&/p&&p&周末上午8:00-下午5:00,提供brunch;&br&&br&&/p&&p&之所以能做到各个时间段让不同顾客进店,一是因为wagas本身就具备“吃饭+沟通”的双重属性,二是因为它把握住了千禧一代的餐饮即时性需求。&/p&&br&&blockquote&&p&&strong&纸质菜单or电子菜单?——根据菜品结构和品牌属性来判断&/strong&&/p&&/blockquote&&br&&p&&strong&Tips:企业应根据自身厨房设备、菜单、规模、菜品结构来判断自己的菜单呈现方式,如果非想赶时髦试试电子菜单,我只能告诉你:单品类餐厅比多品类更适合电子菜单。&/strong&&/p&&br&&p&&strong&并且,千万不要把电子菜单当噱头,否则它迟早会沦为鸡肋。&/strong&&/p&&br&&p&从过去的纸质菜单到如今的电子菜单(pad点餐、微信点餐、自助点餐机),顾客的点餐形式正在不断发生变化,其实两者都有各自存在的道理。不过从大方向来看,出现时间不算短的电子菜单并未广泛普及,大多数餐厅还是回归到了纸质菜单的应用中。&/p&&br&&p&&strong&电子菜单好在哪?&/strong&&/p&&br&&p&&figure&&img data-rawheight=&372& data-rawwidth=&550& src=&https://pic1.zhimg.com/0bdeb1b142ec4909aed4f8_b.jpg& class=&origin_image zh-lightbox-thumb& width=&550& data-original=&https://pic1.zhimg.com/0bdeb1b142ec4909aed4f8_r.jpg&&&/figure&&br&(专注打造智能餐厅的人人湘只支持线上点餐)&/p&&br&&p&成本低——(pad点餐、微信点餐、自助点餐机)相比纸质菜单菜品上新或下架的高频印刷,电子菜单只需餐厅操作后台即可,看似高成本的机器投入实则要比纸质菜单减少不止一点点;&/p&&br&&p&减轻人力——(微信点餐、自助点餐机)可以实现顾客线上自主点餐过程,大大节省、甚至剔除了前厅点餐服务员的人工成本;&/p&&br&&p&提升翻台率——(pad点餐、微信点餐、自助点餐机)省去了点菜的服务环节,顾客整体用餐速度更快,翻台率提高。&/p&&br&&p&信息存留更准确——(微信点餐、自助点餐机)顾客微信扫码支付可实现企业对顾客的数据存留、数据分析和后期的精准营销。就比如海底捞的电子点餐,顾客进店消费一次以上时,系统就会根据上次的点单信息为其推荐合适菜品,这既让顾客深感“被在乎”、增加了消费可能性,同时也让企业省时又省力。&/p&&br&&p&&strong&电子菜单不好在哪?&/strong&&/p&&br&&p&教育成本高——顾客群基本以年轻人为主,受众面窄,而那些想要俘获各阶段年龄层顾客的餐厅,又往往要付出高昂的时间成本来教育他们;&/p&&br&&p&&figure&&img data-rawheight=&427& data-rawwidth=&640& src=&https://pic1.zhimg.com/bccb_b.jpg& class=&origin_image zh-lightbox-thumb& width=&640& data-original=&https://pic1.zhimg.com/bccb_r.jpg&&&/figure&(麦当劳自助点餐机的操作仍需工作人员指引)&/p&&br&&p&品牌形象不突出——纸质菜单往往可以通过纸张质地、排版设计、图片配色等多种形式来表达自己的品牌形象,而电子菜单的版式设计则相对单一乏味,视觉冲击力不强,与顾客不够贴近。&/p&&br&&p&不恰当的应用也会造成后厨压力等一系列问题——电子菜单的确能为拉面店、寿司店、粥店这类易于标准化的单品类餐厅带来更高效益,但它也会给一些餐厅造成过大的后厨压力,比如那些操作工艺和流程复杂的多品类餐厅。&/p&&br&&p&总体而言,电子点餐并不适用于所有类型的餐厅,这应根据餐厅厨房设备、菜单、规模、菜品结构来进行判断。&/p&&br&&p&每种菜单新形式的发生,背后都离不开消费趋势的导向和企业架构的调整。可以说,菜单的呈现方式越专业,它的品牌定位、菜品结构计算、消费心理学知识、设计师专业度等因素的把握就越精准。针对菜单这一话题,我们也将持续进行关注。&/p&&br&&p&&b&攻略:&/b&&br&&/p&&p&1&b&/菜单是“入口”&/b&&/p&&p&好的菜单是一场优秀的桌边营销,对于引导顾客消费,提升客单价以及特色展示起着至关重要的作用。一份菜单,首先要让顾客主次分明的了解这家餐厅的特色,在这个基础上可以再寻找产品营销和品牌推广的更多可能。&/p&&br&&p&2&b&/餐厅转型请变一下菜单&/b&&/p&&p&产品永远是餐饮业竞争的核心,餐饮业转型调整,营销方式变化、装修风格调整,品牌故事挖掘……其实餐饮企业首先应该做的转型调整是菜单。通过菜单减法进行产品聚焦;通过优化价格定位降低成本;通过增加菜单的设计感提升顾客好感度;甚至是通过菜单实现与顾客的互动。要知道,菜单的故事比我们想象的更加丰富。&/p&&br&&p&&b&3/不要轻易尝试电子菜单&/b&&/p&&p&电子菜单是一股潮流,但请不要轻易尝试,这里边尚存在很多的坑。教育成本高、品牌形象不突出等问题都需要在尝试电子菜单之前考虑清楚。更需要提到的是,电子菜单的软硬件技术尚不成规模,不小心的尝试甚至有可能无故增加后厨的压力。&/p&
“你知道一份好的菜单有什么讲究么?你相信菜单的设置直接影响餐厅的经营状况么?调整价格、推新品、减菜单……其实这些都可以归结为菜单变革。菜单不仅是下单导航,也不单是菜品介绍,其实是告诉消费者,你到底卖的是什么?” 很多人觉得千禧一代们很“花…
&figure&&img src=&https://pic3.zhimg.com/v2-66f0db2b9cf_b.jpg& data-rawwidth=&1000& data-rawheight=&583& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic3.zhimg.com/v2-66f0db2b9cf_r.jpg&&&/figure&计算机图像处理是一门很成熟的技术,任何一门可操作系统接口的语言都能很轻易的实现各种处理操作。但是前端限于浏览器环境和接口限制,处理起来会有诸多不便,这里所说的前端图像处理,是真的指不借助任何后端服务纯前端实现的图像处理。本文会介绍canvas位图处理,SVG矢量图和CSS3图像处理,重点是canvas,并且最后会附上一个&a href=&https://link.zhihu.com/?target=http%3A//quanfeng.tech/trimpng/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TrimPNG&/a&图像处理应用。&h1&canvas位图处理&/h1&&p&HTML5 canvas为我们提供了一块画布,让前端也有了操作位图的功能:图片旋转、缩放、滤镜、压缩等都可以通过JS来实现。&/p&&p&&b&图像基本处理&/b&&/p&&p&通过设置drawImage参数可以实现图片绘制、缩放、拉伸和裁剪等操作:&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-cff422ce4fd_b.jpg& data-rawwidth=&1000& data-rawheight=&423& class=&origin_image zh-lightbox-thumb& width=&1000& data-original=&https://pic4.zhimg.com/v2-cff422ce4fd_r.jpg&&&/figure&&blockquote&DEMO源码戳这里 &a href=&https://link.zhihu.com/?target=http%3A//jsbin.com/nuqojowayi/edit%3Fhtml%2Coutput& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JS Bin&/a&.&/blockquote&只需要drawImage一个方法,就可以实现基本图形处理功能,再结合鼠标或滚轮事件,就可以实现更复杂的局部放大预览,缩放等功能了。&blockquote&需要注意的是,canvas尺寸不能过大,如果你要绘制一块全屏的canvas很可能有部分显示不出来。并且不同设备对canvas尺寸限制也不同,比如在Win8 RTM上最大支持px,但是在Windows RT上只支持px。所以对于大面积的canvas最好分块绘制。&/blockquote&&p&&b&图像滤镜处理&/b&&/p&&p&现在的朋友圈发个图都要用滤镜美一下,复古清纯胶片LOMO各种风格应有尽有。canvas提供了getImageData方法来获取图像上每一个像素点的RGBA信息,这样我们就能对图片进行像素级处理了。通过特定算法来重写imageData中的像素信息,然后用setImageData方法把新的数据重新绘制在canvas上,这样就可以实现图像滤镜打码加特效等一系列功能。&br&&/p&&p&比如我们现在要实现一个复古滤镜:&br&&/p&&div class=&highlight&&&pre&&code class=&language-js&&&span&&/span&&span class=&c1&&// 复古滤镜处理算法:获取每个像素的RGB信息,并按特定权重返回其加权平均值&/span&
&span class=&kd&&let&/span& &span class=&nx&&sepiaFilter&/span& &span class=&o&&=&/span& &span class=&kd&&function&/span&&span class=&p&&(&/span&&span class=&nx&&imgData&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&kd&&let&/span& &span class=&nx&&d&/span& &span class=&o&&=&/span& &span class=&nx&&imgData&/span&&span class=&p&&.&/span&&span class=&nx&&data&/span&
&span class=&k&&for&/span& &span class=&p&&(&/span&&span class=&kd&&let&/span& &span class=&nx&&i&/span& &span class=&o&&=&/span& &span class=&mi&&0&/span&&span class=&p&&;&/span& &span class=&nx&&i&/span& &span class=&o&&&&/span& &span class=&nx&&d&/span&&span class=&p&&.&/span&&span class=&nx&&length&/span&&span class=&p&&;&/span& &span class=&nx&&i&/span& &span class=&o&&+=&/span& &span class=&mi&&4&/span&&span class=&p&&)&/span& &span class=&p&&{&/span&
&span class=&kd&&let&/span& &span class=&nx&&r&/span& &span class=&o&&=&/span& &span class=&nx&&d&/span&&span class=&p&&[&/span&&span class=&nx&&i&/span&&span class=&p&&]&/span&
&span class=&kd&&let&/span& &span class=&nx&&g&/span& &span class=&o&&=&/span& &span class=&nx&&d&/span&&span class=&p&&[&/span&&span class=&nx&&i&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&&span class=&p&&]&/span&
&span class=&kd&&let&/span& &span class=&nx&&b&/span& &span class=&o&&=&/span& &span class=&nx&&d&/span&&span class=&p&&[&/span&&span class=&nx&&i&/span& &span class=&o&&+&/span& &span class=&mi&&2&/span&&span class=&p&&]&/span&
&span class=&nx&&d&/span&&span class=&p&&[&/span&&span class=&nx&&i&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&nx&&r&/span& &span class=&o&&*&/span& &span class=&mf&&0.393&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&p&&(&/span&&span class=&nx&&g&/span& &span class=&o&&*&/span& &span class=&mf&&0.769&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&p&&(&/span&&span class=&nx&&b&/span& &span class=&o&&*&/span& &span class=&mf&&0.189&/span&&span class=&p&&)&/span& &span class=&c1&&// red&/span&
&span class=&nx&&d&/span&&span class=&p&&[&/span&&span class=&nx&&i&/span& &span class=&o&&+&/span& &span class=&mi&&1&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&nx&&r&/span& &span class=&o&&*&/span& &span class=&mf&&0.349&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&p&&(&/span&&span class=&nx&&g&/span& &span class=&o&&*&/span& &span class=&mf&&0.686&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&p&&(&/span&&span class=&nx&&b&/span& &span class=&o&&*&/span& &span class=&mf&&0.168&/span&&span class=&p&&)&/span& &span class=&c1&&// green&/span&
&span class=&nx&&d&/span&&span class=&p&&[&/span&&span class=&nx&&i&/span& &span class=&o&&+&/span& &span class=&mi&&2&/span&&span class=&p&&]&/span& &span class=&o&&=&/span& &span class=&p&&(&/span&&span class=&nx&&r&/span& &span class=&o&&*&/span& &span class=&mf&&0.272&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&p&&(&/span&&span class=&nx&&g&/span& &span class=&o&&*&/span& &span class=&mf&&0.534&/span&&span class=&p&&)&/span& &span class=&o&&+&/span& &span class=&p&&(&/span&&span class=&nx&&b&/span& &span class=&o&&*&/span& &span class=&mf&&0.131&/span&&span class=&p&&)&/span& &span class=&c1&&// blue&/span&
&span class=&p&&}&/span&
&span class=&k&&return&/span& &span class=&nx&&imgData&/span&
&span class=&p&&}&/span&
&span class=&c1&&//图像地址必须和当前页面同域,否则会报cross-origin错误 &/span&
&span class=&nx&&img&/span&&span class=&p&&.&/span&&span class=&nx&&src&/span& &span class=&o&&=&/span& &span class=&s1&&'/img/logo@2x.png'&/span&
&span class=&nx&&img&/span&&span class=&p&&.&/span&&span class=&nx&&onload&/span& &span class=&o&&=&/span& &span class=&p&&()&/span& &span class=&o&&=&&/span& &span class=&p&&{&/span&
&span class=&nx&&ctx&/span&&span class=&p&&.&/span&&span class=&nx&&drawImage&/span&&span class=&p&&(&/span&&span class=&nx&&img&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&c1&&// 绘制原图&/span&
&span class=&kd&&let&/span& &span class=&nx&&imgData&/span& &span class=&o&&=&/span& &span class=&nx&&ctx&/span&&span class=&p&&.&/span&&span class=&nx&&getImageData&/span&&span class=&p&&(&/span&&span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&,&/span& &span class=&nx&&img&/span&&span class=&p&&.&/span&&span class=&nx&&width&/span&&span class=&p&&,&/span& &span class=&nx&&img&/span&&span class=&p&&.&/span&&span class=&nx&&height&/span&&span class=&p&&)&/span& &span class=&c1&&// 获取图片信息&/span&
&span class=&nx&&ctx&/span&&span class=&p&&.&/span&&span class=&nx&&putImageData&/span&&span class=&p&&(&/span&&span class=&nx&&sepiaFilter&/span&&span class=&p&&(&/span&&span class=&nx&&imgData&/span&&span class=&p&&),&/span& &span class=&mi&&100&/span&&span class=&p&&,&/span& &span class=&mi&&0&/span&&span class=&p&&)&/span& &span class=&c1&&// 绘制处理后图片&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&figure&&img src=&https://pic4.zhimg.com/v2-55cbb4a28b41adeb68ee016d_b.jpg& data-rawwidth=&800& data-rawheight=&444& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic4.zhimg.com/v2-55cbb4a28b41adeb68ee016d_r.jpg&&&/figure&&blockquote&DEMO源码戳这里 &a href=&https://link.zhihu.com/?target=https%3A//jsfiddle.net/vghszt61/2/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JSFiddl&/a&e.&/blockquote&&p&滤镜处理关键在于滤镜算法,要想写出更高级的特效需要有计算机图形学基础,对卷积矩阵、拉普拉斯变换、傅里叶变换等数学知识也要了解,这个坑很大我就不挖了。&br&&/p&&p&&b&图像base64存储&/b&&/p&&p&加完特效后如果我们想把图像保存下来,就可以用toDataURL方法来对图片进行格式转换、压缩存储了。&br&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&// 支持三种文件类型:image/png(默认) | image/jpeg | image/webp(仅Chrome)
canvas.toDataURL() // 默认存储为png
// 仅jpeg/webp支持质量参数(0~1,默认0.92)
canvas.toDataURL(&image/jpeg&, 0.1) // 存储为质量为0.1的jpeg
&/code&&/pre&&/div&&p&由于存储形式是base64编码,原来图片的每三个字节都会被扩展成4字节,所以整体上编码后数据会比原来多约1/3。以下是通过toDataURL存储后的图片和原图大小相关对比数据(数据仅供参考,不具通用性):&/p&&figure&&img src=&https://pic3.zhimg.com/v2-733c9efc3d7d0ebca60e67fa65a6f492_b.jpg& data-rawwidth=&1606& data-rawheight=&1002& class=&origin_image zh-lightbox-thumb& width=&1606& data-original=&https://pic3.zhimg.com/v2-733c9efc3d7d0ebca60e67fa65a6f492_r.jpg&&&/figure&&p&可见存储后图片体积并不是原来的4/3,实际上处理后的图片都会比原图大好几倍,并且不同的图片增大的体积也是不确定的。如果是要上传图片到服务器,可以把base64转化成Blob二进制数据压缩上传;如果要直接在前端显示或供用户下载,jpg还好可以设置质量参数,要是png就没法压缩了。&/p&&p&只是用toDataURL还不够,用户需要通过手动点击图片-右键图片存储为来保存图片,如果要实现点击下载按钮自动下载图片还需要修改图片类型为octet-stream,然后利用HTML5的download属性强制让浏览器下载。&/p&&blockquote&DEMO源码快戳我 &a href=&https://link.zhihu.com/?target=https%3A//jsfiddle.net/0326/vghszt61/4/%23& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&JSFiddle&/a&. &/blockquote&&p&&b&程序员的备胎&/b&&/p&&p&有了以上基础,再结合成熟的图形处理算法,我们可以完成日常工作中大部分图像处理需求,业界也有许多开源的轮子,比如截屏库 &a href=&https://link.zhihu.com/?target=http%3A//html2canvas.hertzen.com/documentation.html& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&html2canvas&/a&、代码转图片工具 &a href=&https://link.zhihu.com/?target=https%3A//github.com/akira-cn/code-to-image& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&code-to-image&/a&、图片裁剪 &a href=&https://link.zhihu.com/?target=https%3A//fengyuanchen.github.io/cropper/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Cropper&/a&、图像处理 &a href=&https://link.zhihu.com/?target=https%3A//github.com/eduardolundgren/tracking.js/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&tracking.js&/a&、二维码生成库 &a href=&https://link.zhihu.com/?target=https%3A//github.com/nicolaszhao/qrcode2& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&qrcode2&/a&、还有腾讯出的 &a href=&https://link.zhihu.com/?target=https%3A//github.com/AlloyTeam/AlloyImage& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&AlloyImage&/a&,基于HTML5的专业级图像处理开源引擎,非常强大:&/p&&figure&&img src=&https://pic1.zhimg.com/v2-fdab66ecc114_b.jpg& data-rawwidth=&1381& data-rawheight=&597& class=&origin_image zh-lightbox-thumb& width=&1381& data-original=&https://pic1.zhimg.com/v2-fdab66ecc114_r.jpg&&&/figure&&blockquote&以上列举部分,更多备胎见GitHub: &a href=&https://link.zhihu.com/?target=https%3A//github.com/0326/canvas& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&0326/canvas&/a&&/blockquote&&h1&SVG矢量图处理&/h1&&p&讲完位图处理再简单说说矢量图处理。矢量图在绘制图标、商业LOGO、动画元素上应用非常广范。Web最开始支持的矢量图形并不是现在的SVG,而是微软主推的VML,所以在低版本IE下面只支持VML而不支持SVG,直到后来SVG成为W3C标准并被普及,微软才在IE9中支持SVG。&/p&&p&SVG遵循XML规范,可以很好的集成在HTML里面,同时支持JS脚本控制,还有基于SMIL标准的动态内容支持,做起动画来也是非常方便。目前基于SVG的JS图形库轮子也是非常多,如&a href=&https://link.zhihu.com/?target=https%3A//github.com/svgdotjs/svg.js& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&svg.js&/a&, &a href=&https://link.zhihu.com/?target=http%3A//snapsvg.io/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Snap.svg&/a&, &a href=&https://link.zhihu.com/?target=http%3A//velocityjs.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Velocity.js&/a&, &a href=&https://link.zhihu.com/?target=https%3A//d3js.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&D3.js&/a&等等。SVG本身是一种标记语言,简单易学,在此不做展开。&/p&&h1&CSS图像处理&/h1&&p&如果你的图像特效只是用来给用户展示,并不需要存储的话,可以直接用CSS处理,基本的调整图片大小、拉伸、旋转、裁切等操作直接几个CSS属性width/height/skew/rotate/clip-path等就能搞定了。如果想加特效,使用CSS滤镜Duang的一下就出来了,不需要任何图形学基础和数学知识:&br&&/p&&figure&&img src=&https://pic4.zhimg.com/v2-7e5c3de196e95c9cb5e217cb1381587e_b.jpg& data-rawwidth=&989& data-rawheight=&957& class=&origin_image zh-lightbox-thumb& width=&989& data-original=&https://pic4.zhimg.com/v2-7e5c3de196e95c9cb5e217cb1381587e_r.jpg&&&/figure&&blockquote&&a href=&https://link.zhihu.com/?target=http%3A//jsbin.com/cejifa/edit%3Fhtml%2Coutput& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&DEMO 源码见JS Bin&/a&.&/blockquote&&h1&总结&/h1&&p&写了这么多 DEMO,最后附上一个比较完整的小工具 &a href=&https://link.zhihu.com/?target=http%3A//quanfeng.tech/trimpng/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TrimPNG&/a&。&/p&&p&大家都知道 &a href=&https://link.zhihu.com/?target=https%3A//tinypng.com/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TinyPNG&/a& 可以压缩PNG, &a href=&https://link.zhihu.com/?target=http%3A//quanfeng.tech/trimpng/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TrimPNG&/a& 顾名思义就是去除图片空白和白边的,纯前端实现了自动抠图和切图,顺便保存图片功能。&br&&/p&&figure&&img src=&https://pic1.zhimg.com/v2-678bdd8acb3_b.jpg& data-rawwidth=&1758& data-rawheight=&1110& class=&origin_image zh-lightbox-thumb& width=&1758& data-original=&https://pic1.zhimg.com/v2-678bdd8acb3_r.jpg&&&/figure&&blockquote&体验地址:&a href=&https://link.zhihu.com/?target=http%3A//quanfeng.tech/trimpng/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&TrimPNG&/a&&/blockquote&&p&用到的技术点上面都说到了,裁切实现原理就是横向纵向分别扫描两次像素点阵,找出上下左右最外面的非透明点,然后定位出有效图像区域。去白边则是采用标记清除策略,先扫描一遍标记出可疑白点,然后再扫描一遍,凡是与透明区域相邻的可疑白点就清除。&/p&&br&&p&最后,欢迎大家关注:&a href=&https://zhuanlan.zhihu.com/frontend& class=&internal&&Front End - 知乎专栏&/a&&/p&&div class=&highlight&&&pre&&code class=&language-text&&&span&&/span&zhuanlan.zhihu.com/frontend
&/code&&/pre&&/div&&p&不定期更新前端相关,一般都会有干货。也欢迎大家投稿,只限原创。&/p&&p&鉴于傻乎居然不支持Markdown,代码高亮也是Low到不行,连个预览效果也要邀请,所以以后会少贴代码多贴图,我会尽量挑漂亮的:)&/p&
计算机图像处理是一门很成熟的技术,任何一门可操作系统接口的语言都能很轻易的实现各种处理操作。但是前端限于浏览器环境和接口限制,处理起来会有诸多不便,这里所说的前端图像处理,是真的指不借助任何后端服务纯前端实现的图像处理。本文会介绍canvas位…
&figure&&img src=&https://pic1.zhimg.com/v2-1eaffecdcd4eb2987a1bba0_b.jpg& data-rawwidth=&800& data-rawheight=&350& class=&origin_image zh-lightbox-thumb& width=&800& data-original=&https://pic1.zhimg.com/v2-1eaffecdcd4eb2987a1bba0_r.jpg&&&/figure&&p&最近在招聘产品助理的时候,又有新人问我:”你们对产品新人究竟有什么样的要求?”&/p&&p&从2014年美团校招的时候第一次开始面试产品经理到现在,已经过去两年多了,这两年里我面试的产品助理应该至少有200个以上,不错的候选人,浮躁的初学者,这些策略是我验证过的,我感觉他们的水平在面试过后我都能很快的分辨出来。&/p&&p&当然,我的策略也有很多不足,我想如果给大家自己的学习提供一些借鉴,那我就很高兴了,所以拿出来跟大家分享一下,我是怎么做的。&/p&&h2&1. 基础&/h2&&h3&1.1 工作习惯&/h3&&blockquote&&p&问:你从早上到公司到下班,典型的一天是什么样的?&/p&&/blockquote&&ol&&li&不能说清楚自己干的事情的候选者,Pass&/li&&li&能够回答清楚他主要的工作是干嘛的面试者,一般。&/li&&li&会提前做好计划,以及每日总结自己的工作是否按时完成,是否总结,以及说出如何总结的,优秀&/li&&/ol&&h3&1.2 工作态度&/h3&&blockquote&&p&问:遇到项目的进度无法按时完成,可能会超期的意外状态,你会怎么办?&/p&&/blockquote&&ol&&li&提到这种情况出现的很少,或者说项目掌控的事情一般都不是我干的,答非所问,负分&/li&&li&能够分情况来说明的,并能给出按不同的超期情况给出方案的,不错。&/li&&li&能够考虑到通过设定机制来避免这种情况发生的,优秀。&/li&&/ol&&h3&1.3 工作细节&/h3&&blockquote&&p&问:你做过哪些项目?你在这个项目里面做过哪些事情?你的角色是什么?&/p&&/blockquote&&p&面试的时候,需要了解他负责的事情,好对症下药,因为我们不能问到他根本没有负责过的事情。这个问题的区分度不高,能说清楚做过的事情的就算不错,主要还是看候选者的表达能力。&/p&&p&问完上面的问题后,再去问细节,譬如:你的用户画像是什么?你们主要竞品有哪些,他们的特点分别是什么?&/p&&p&回答什么不重要,只需要关注几点:&/p&&ol&&li&描述是否有理有据,比如说XX竞对难用,能说出来哪儿难用,为什么难用,而不是自己靠拍脑袋觉主观得难用/好用&/li&&li&描述竞对产品特点的时候,是否有顺序和逻辑,而不是随口想到什么说什么。&/li&&li&穿插的去问其它问题,打乱节奏,观察前后说的内容是否有矛盾。&/li&&/ol&&h3&1.4 进步空间&/h3&&blockquote&&p&问:你在工作中遇到过什么问题,你是如何改进的?如果再让你做一次,你会怎么做?&/p&&/blockquote&&ol&&li&意识不到自己的问题,只说公司问题的不能要。&/li&&li&能够正确的意识到自己具体的问题,并能够给出自己想要如何改进的方案的,不错。&/li&&li&能够将具体的问题抽象成学习/工作方法并能够进行实践的,优秀。&/li&&/ol&&h2&2. 产品设计&/h2&&h3&2.1 产品设计&/h3&&blockquote&&p&问:画一个购物车的逻辑,现场画出流程图&/p&&/blockquote&&p&我对设计的要求不高,其实这也是个没啥区分度的问题,只要画的图没啥逻辑问题的都可以过关。&/p&&h3&2.2 设计的作品&/h3&&blockquote&&p&问:这个设计是给谁用的?为什么这么设计?这么设计有啥好处?你如何去验证设计的好坏?&/p&&/blockquote&&ol&&li&回答不出问题,含糊其词,或者说照着别人抄的,都不能要。&/li&&li&只要是能够展示出面试者在设计的时候有过思考痕迹的回答,都可以通过,毕竟这年头会动脑子的产品助理已经很少了。&/li&&/ol&&h2&3. 信息&/h2&&h3&3.1 信息的获取&/h3&&blockquote&&p&平时有关注过哪些产品方面的内容?获取产品经理相关信息的渠道有哪些?最近让你感觉印象比较深刻的是?试举一例。&/p&&/blockquote&&p&这个问题的重点在于,候选人是否有稳定可靠的信息源,对信息的真假有独立的判断能力,是否知道如何对知识来进行管理。 如果候选人说自己信息来源主要是书,就可以问那么这些书从哪儿知道的?读完了对自己有什么帮助?你是否接受书里的观点?自己的观点是啥,依据是啥?&/p&&h3&3.2 信息的管理和应用&/h3&&blockquote&&p&你是怎么管理你在书上看到的知识的?怎么应用到工作中的?&/p&&/blockquote&&p&光是知道很多知识是没用的,关键在于怎么运用自己学到的知识,这是考察他”学以致用”能力的一点。&/p&&h2&4. 逻辑&/h2&&p&看他对什么感兴趣,然后问相关的问题,如果他爱听广播就问中国有多少个广播电台,爱旅游就问中国的高铁线路有多长?爱打球就从开始到现在有多少篮球运动员在NBA打过球(当然这只是一个比方)&/p&&p&这种题目只是偶尔会问,答案不重要,重要的是看他计算说明问题的过程是否有条理,估算使用的数据是否合理&/p&&h2&5. 其它&/h2&&p&以上只是我在面试的时候问的一部分问题,仅供大家参考。&/p&&p&至于如何成为一个合格的产品经理,今天看到一句话令我印象深刻,与大家共勉:&/p&&blockquote&&p&没有把自己视作最重要的产品来积极磨练精进的人都是“伪产品经理”,是不可能成功的。&/p&&/blockquote&&p&徐梦阳(微信:xumengyang1234,微信公众号:“成长”,ID:growup1984),创业公司产品经理,信奉自己是最值得做的产品,长期关注互联网商业领域和个人成长。欢迎交流~&/p&
最近在招聘产品助理的时候,又有新人问我:”你们对产品新人究竟有什么样的要求?”从2014年美团校招的时候第一次开始面试产品经理到现在,已经过去两年多了,这两年里我面试的产品助理应该至少有200个以上,不错的候选人,浮躁的初学者,这些策略是我验证…
&figure&&img src=&https://pic2.zhimg.com/v2-2df232ef34f6cbfe99128ead6dc8270b_b.jpg& data-rawwidth=&852& data-rawheight=&316& class=&origin_image zh-lightbox-thumb& width=&852& data-original=&https://pic2.zhimg.com/v2-2df232ef34f6cbfe99128ead6dc8270b_r.jpg&&&/figure&&blockquote&译者注:CSS 自定义属性系列有三篇&br&1. CSS 自定义属性:基础篇&br&2. &a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&CSS 自定义属性:使用篇&/a&&br&3. &a href=&https://zhuanlan.zhihu.com/p/& class=&internal&&CSS 自定义属性:API 篇&/a&&/blockquote&&br&原文链接:&a href=&https://link.zhihu.com/?target=https%3A//sgom.es/posts/-css-custom-properties-the-basics/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CSS Custom Properties - The Basics&/a&&p&&em&这是 CSS 自定义属性系列文章的第一篇,在这篇文章中我将快速介绍什么是自定义属性以及它们的语法,并在后续文章中详尽地分析 CSS 自定义属性,各位可以持续关注。&/em&&br&&/p&&p&你大概已经听说过 &a href=&https://link.zhihu.com/?target=https%3A//drafts.csswg.org/css-variables/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&CSS 自定义属性&/a& (也被称为 CSS 变量),可能你是从 Google 发表的&a href=&https://link.zhihu.com/?target=https%3A//developers.google.com/web/updates/2016/02/css-variables-why-should-you-care& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&这篇文章&/a&中得知这个属性的。你可能尚且不了解这个特性的浏览器支持程度,从没见过相关的最佳实践,也无从将它同 Less 或者 Sass 做比较,总之就是一头雾水。那现在就怀揣着一肚子疑问,接着往下看吧,我将为你一一解答。&br&&/p&&br&&h2&兼容性&/h2&&p&第一个问题是:CSS 自定义属性能用在哪?目前从 &a href=&https://link.zhihu.com/?target=http%3A//caniuse.com/%23feat%3Dcss-variables& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&Can I use&/a& 上获取的信息显示除了 Edge 外主流浏览器的最新版都已经支持这个特性了,而 Edge 也将支持这个属性。&br&&/p&&p&这说明现在 CSS 自定义属性已经能用在实际项目中了,相信不久以后开发者们将大大依赖这个特性。但还请在使用之前请先检查一下本文附录中 Postcss 对于 CSS 自定义属性的支持情况,以便做好兼容。&br&&/p&&br&&h2&设一个值,任何值都可以&/h2&&p&那么……什么是自定义属性呢?简单来说就是一种开发者可以自主命名和使用的 CSS 属性。浏览器在处理像 color 、position 这样的属性时,需要接收特定的属性值,而自定义属性,在开发者赋予它属性值之前,它是没有意义的。所以要怎么给 CSS 自定义属性赋值呢?这倒和习惯无异:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nc&&.foo&/span& &span class=&p&&{&/span&
&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&red&/span&&span class=&p&&;&/span&
&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&gray&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&自定义元素的定义由 -- 开头,这样浏览器能够区分自定义属性和原生属性,从而将它俩分开处理。假如只是定义了一个自定义元素和它的属性值,浏览器是不会做出反应的。如上面的代码, .foo 的字体颜色由 color 决定,但 --theme-color 对 .foo 没有作用。&br&&/p&&p&你可以用 CSS 自定义元素存储任意&a href=&https://link.zhihu.com/?target=https%3A//developer.mozilla.org/en-US/docs/Web/CSS/Value_definition_syntax& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&有效的 CSS 属性值&/a&:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nc&&.foo&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&blue&/span&&span class=&p&&;&/span&
&span class=&o&&--&/span&&span class=&n&&spacer&/span&&span class=&o&&-&/span&&span class=&nb&&width&/span&&span class=&o&&:&/span& &span class=&m&&8px&/span&&span class=&p&&;&/span&
&span class=&o&&--&/span&&span class=&n&&favorite&/span&&span class=&o&&-&/span&&span class=&n&&number&/span&&span class=&o&&:&/span& &span class=&m&&3&/span&&span class=&p&&;&/span&
&span class=&o&&--&/span&&span class=&n&&greeting&/span&&span class=&o&&:&/span& &span class=&s2&&&Hey, what's up?&&/span&&span class=&p&&;&/span&
&span class=&o&&--&/span&&span class=&n&&reusable&/span&&span class=&o&&-&/span&&span class=&n&&shadow&/span&&span class=&o&&:&/span& &span class=&m&&0&/span& &span class=&m&&3px&/span& &span class=&m&&1px&/span& &span class=&m&&-2px&/span& &span class=&n&&rgba&/span&&span class=&p&&(&/span&&span class=&m&&0&/span&&span class=&o&&,&/span& &span class=&m&&0&/span&&span class=&o&&,&/span& &span class=&m&&0&/span&&span class=&o&&,&/span& &span class=&m&&0&/span&&span class=&o&&.&/span&&span class=&m&&85&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&br&&h2&使用&/h2&&p&假如自定义属性只能用于设值,那也太没用了点。至少,浏览器得能获取到它们的属性值。&br&&/p&&p&使用 var() 方法就能实现:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nc&&.button&/span& &span class=&p&&{&/span&
&span class=&nb&&background-color&/span&&span class=&o&&:&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&下面这段代码中,我们将 .button 的 background-color 属性值赋值为 --theme-color 的值。这例子看起来自定义属性也没什么了不起的嘛,但这是一个硬编码的情况。你有没有意识到,--theme-color 的属性值是可以用在任意选择器和属性上的呢?这可就厉害了。&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nc&&.button&/span& &span class=&p&&{&/span&
&span class=&nb&&background-color&/span&&span class=&o&&:&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&nc&&.title&/span& &span class=&p&&{&/span&
&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&span class=&nc&&.image-grid&/span& &span class=&o&&&&/span& &span class=&nc&&.image&/span& &span class=&p&&{&/span&
&span class=&nb&&border-color&/span&&span class=&o&&:&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&br&&h3&缺省值&/h3&&p&如果开发者并没有定义过 --theme-color 这个变量呢?var() 可以接收第二个参数作为缺省值:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nc&&.button&/span& &span class=&p&&{&/span&
&span class=&nb&&background-color&/span&&span class=&o&&:&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&,&/span& &span class=&nb&&gray&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&blockquote&注意:如果你想把另一个自定义属性作为缺省值,语法应该是 background-color: var(--theme-color, var(--fallback-color))&br&&/blockquote&&p&传参数时总是传入一个缺省值是一个好习惯,特别是在构建 &a href=&https://link.zhihu.com/?target=http%3A//webcomponents.org/& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&web components&/a& 的时候。为了让你的页面在不支持自定义属性的浏览器上正常显示,别忘了加上兼容代码:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nc&&.button&/span& &span class=&p&&{&/span&
&span class=&nb&&background-color&/span&&span class=&o&&:&/span& &span class=&nb&&gray&/span&&span class=&p&&;&/span&
&span class=&nb&&background-color&/span&&span class=&o&&:&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&,&/span& &span class=&nb&&gray&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&br&&h2&作用域和级联&/h2&&p&要在什么时候定义这些属性?在使用之前吗?自定义属性遵从标准的作用域和级联规则,开发者按照平时使用的习惯来就可以了!&br&&/p&&p&你可能希望将 --theme-color 设置为全局变量,处处可用。最简单的方法是使用 &a href=&https://link.zhihu.com/?target=https%3A//developer.mozilla.org/en-US/docs/Web/CSS/%3Aroot& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&:root 伪元素&/a&:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nd&&:root&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&gray&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&这样定义以后,无论是按钮、标题还是图片网格乃至整个文档,都可以使用 --theme-color 了。&br&&/p&&p&但当你希望不同的模块使用不同的 --theme-color 值怎么办呢?和初始化自定义属性的步骤相同,只需要在模块的作用域中给属性重新赋值,新的颜色就会分模块生效,而不需要开发者一个个重置使用到 --theme-color
的属性。&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nt&&section&/span&&span class=&nc&&.about&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&darkblue&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&nt&&section&/span&&span class=&nc&&.contacts&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&darkred&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&nt&&section&/span&&span class=&nc&&.news&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&teal&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&当然,你也可以定义复杂的选择器规则,应用特定的属性值:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nt&&section&/span&&span class=&nc&&.news&/span& &span class=&o&&&&/span& &span class=&nc&&.sidenote&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&theme&/span&&span class=&o&&-&/span&&span class=&nb&&color&/span&&span class=&o&&:&/span& &span class=&nb&&gray&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&br&&h2&CSS 计算&/h2&&p&&a href=&https://link.zhihu.com/?target=https%3A//developer.mozilla.org/en-US/docs/Web/CSS/calc& class=& wrap external& target=&_blank& rel=&nofollow noreferrer&&calc() 函数&/a&常常被用于跨单位的计算:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nc&&.child&/span& &span class=&p&&{&/span&
&span class=&nb&&width&/span&&span class=&o&&:&/span& &span class=&n&&calc&/span&&span class=&p&&(&/span&&span class=&m&&100%&/span& &span class=&o&&-&/span& &span class=&m&&16px&/span&&span class=&p&&);&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&事实上这个计算是在浏览器运行时进行的,浏览器会将 calc() 的计算结果以像素单位呈现在屏幕上。&br&&/p&&p&calc() 与 CSS 自定义属性结合以后会很有趣!这一点也是在制定自定义属性规范时,经过了深思熟虑才加上的,毕竟这两者的结合可谓是强强联手:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nd&&:root&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&base&/span&&span class=&o&&-&/span&&span class=&nb&&size&/span&&span class=&o&&:&/span& &span class=&m&&4px&/span&&span class=&p&&;&/span&
&span class=&p&&}&/span&
&span class=&nc&&.title&/span& &span class=&p&&{&/span&
&span class=&nb&&text&/span&&span class=&o&&-&/span&&span class=&nb&&size&/span&&span class=&o&&:&/span& &span class=&n&&calc&/span&&span class=&p&&(&/span&&span class=&m&&5&/span& &span class=&o&&*&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&base&/span&&span class=&o&&-&/span&&span class=&nb&&size&/span&&span class=&p&&));&/span&
&span class=&p&&}&/span&
&span class=&nc&&.body&/span& &span class=&p&&{&/span&
&span class=&nb&&text&/span&&span class=&o&&-&/span&&span class=&nb&&size&/span&&span class=&o&&:&/span& &span class=&n&&calc&/span&&span class=&p&&(&/span&&span class=&m&&3&/span& &span class=&o&&*&/span& &span class=&n&&var&/span&&span class=&p&&(&/span&&span class=&o&&--&/span&&span class=&n&&base&/span&&span class=&o&&-&/span&&span class=&nb&&size&/span&&span class=&p&&));&/span&
&span class=&p&&}&/span&
&/code&&/pre&&/div&&p&只要最终的结果有意义,开发者无论使用什么样的单位都可以:&br&&/p&&div class=&highlight&&&pre&&code class=&language-css&&&span&&/span&&span class=&nd&&:root&/span& &span class=&p&&{&/span&
&span class=&o&&--&/span&&span class=&n&&base&/span&&span class=&o&&-&/span&&span class=&nb&&size&/span&&span class=&o&&:&/span& &span class=&m&&4px&/span&&span class=&p&&;&/span&
&span class=&o&&--&/span&&span class=&n&&title&/span&&span class=&o&&-&/span&&span class=&n&&multiplier&/span&&span class=&o&&:&/span& &span class=&m&&5&/span&&span class=&p&&;&/span&
&span class=&o&&--&/span&&span class=&n&}

我要回帖

更多关于 网页状态栏警告图标 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信