SitePoint Podcast#139:使用Lea Verou尝试CSS3

Episode 139 of The SitePoint Podcast is now available! This week our regular interview host Louis Simoneau (@rssaddict) interviews Lea Verou (@leaverou) the speaker and web developer who helps us all with her cool CSS3 tools on her site lea.verou.me.

SitePoint Podcast的第139集现已发布! 本周,我们的定期采访主持人Louis Simoneau( @rssaddict )采访了演讲者和Web开发人员Lea Verou( @leaverou ),他通过lea.verou.me网站上出色的 CSS3工具帮助了我们所有人。

下载此剧集 (Download this Episode)

You can download this episode as a standalone MP3 file. Here’s the link:

您可以将本集下载为独立的MP3文件。 这是链接:

  • SitePoint Podcast #139: Experimenting With CSS3 with Lea Verou (MP3, 44:56, 43.1MB)

    SitePoint Podcast#139:使用Lea Verou尝试CSS3 (MP3,44:56,43.1MB)

剧集摘要 (Episode Summary)

Louis and Lea discuss the tool out there for using CSS3, her contribution to those and what the current topics are on the conference circuit.

Louis和Lea讨论了在那里使用CSS3的工具,她对CSS3的贡献以及会议回路中当前的话题。

Browse the full list of links referenced in the show at http://delicious.com/sitepointpodcast/139.

浏览http://delicious.com/sitepointpodcast/139中显示的参考链接的完整列表。

面试成绩单 (Interview Transcript)

Louis: Hello and welcome to another episode of the SitePoint Podcast. My guest on the show today is a Web designer and developer who I’ve wanted to have on the show for some time now, it’s finally sort of aligned, you’ve been very busy with conferences, Lea Verou, hi Lea.

路易斯:您好,欢迎收看SitePoint播客的另一集。 我今天在展会上的来宾是一位Web设计师和开发人员,我现在想在展会上待一段时间,它终于保持一致,您一直忙于召开会议,Lea Verou,嗨,Lea。

Lea: Hi Louis, thanks for having me here.

莉亚:嗨,路易斯,谢谢你让我来。

Louis: It’s absolutely a pleasure. I’ve been sort of following your work on your website and on Twitter for some time, it’s just sort of all of a sudden I think a couple of months ago just about everyone I followed suddenly started re-Tweeting your stuff and with reason, you’ve done a lot of really cool stuff, so I wanted to have you on the show and talk about that a little bit.

路易斯:绝对是一件乐事。 一段时间以来,我一直在关注您在网站和Twitter上的工作,这是突然之间的,我认为几个月前,我所关注的每个人突然开始重新推文,您做了很多非常酷的事情,所以我想让您参加演出,并谈一些。

Lea: Thank you so much. It’s funny; I keep hearing the same thing from many people that you suddenly started being popular even though I was working on this stuff for like years.

莉亚:非常感谢。 这很有趣; 我一直在听到很多人的话,即使我从事类似的工作了几年,您突然开始受到欢迎。

Louis: Yeah, I guess it’s just the whimsy of the Internet and social media that all of a sudden if a few people who have a lot of followers who are well known catch on to your work and it explodes all of a sudden. Just an example of that, I think you’re still — you’re a finalist in the .net Magazine Awards in the category of Brilliant Newcomer, am I right?

路易斯:是的,我想这只是互联网和社交媒体的一种异想天开,如果有很多有很多追随者并且众所周知的追随者赶上您的工作,并且突然间爆炸。 只是一个例子,我想您还是–您是“ .net杂志”奖“杰出新人”类别的决赛选手,对吗?

Lea: Yeah, I’m in the three finalists and the results come out in like nine days, so I’m kind of looking forward to what they’ll be.

莉亚:是的,我进入了3个决赛入围者,结果在9天之内就出来了,所以我很期待他们会成为什么样子。

Louis: Yeah, well, congratulations on the nomination and on making it through to the final round.

路易斯:是的,恭喜您的提名,并使其进入最后一轮。

Lea: Thank you.

莉亚:谢谢。

Louis: You’ve been really busy of late, it’s one of the reasons it’s taken a little while to get you on the show is you’ve been traveling a lot and giving talks at conferences.

路易斯:您最近真的很忙,这是您花很多时间在会议上进行演讲的原因之一,这使您进入演出很花一段时间。

Lea: Well, October and November are usually really busy months conference-wise, there are many, many conferences these months; I’m not sure exactly why. And especially October has been crazy for me, I had like four conferences in a row flying from one country to the other, it was so exhausting, but really it felt good but it was really exhausting.

莉亚:好吧,十月和十一月通常是会议繁忙的几个月,这几个月有很多会议。 我不确定为什么。 尤其是十月份对我来说是疯狂的,我就像连续四场会议从一个国家飞往另一个国家一样,这真是令人筋疲力尽,但确实感觉很好,但确实令人筋疲力尽。

Louis: Yeah, I can imagine. I saw the video of one of your talks.

路易斯:是的,我可以想象。 我看了你的一个演讲的视频。

Lea: Which one?

莉亚:哪一个?

Louis: The CSS3 Secrets, I think it was from Fronteers is the one that was — that I saw a video of.

路易斯: CSS3的秘密,我认为这是来自Fronteers的-我看过一个视频。

Lea: Oh, good. I think that was one of my best.

莉亚:哦,很好。 我认为那是我最好的之一。

Louis: (Laughs) Well, that’s good. So I’ll talk about that a little bit later, but first, since you’ve been traveling to all these conferences what’s the report from the front-lines, what are the big themes that everyone’s talking about, what’s your take on the vibe at these conferences?

路易斯:(笑)好吧。 因此,我稍后再讨论,但首先,由于您一直在参加所有这些会议,因此前线的报告是什么,每个人都在谈论哪些大主题,您对此有何看法?在这些会议上?

Lea: Most talks, well, it seems like the hot topics in our industry right now are CSS3, of course, so a big bunch of talks are about CSS3 or server side JavaScript. I’ve listened to many talks about Node.js or also ECMAScript 6 Harmony that’s coming now and it’s quite hot in the JavaScript industry. Also we have many people coming over from the Flash world and they are educating us about their experiences with animations, they’re much better with this stuff and we have loads to learn from them like, for example, Aral Balkan, he gave a really interesting talk at Fronteers, or also Seb Lee-Delisle, I’m not sure if I’m pronouncing his name right, he also gave an amazing talk at Fronteers, and he used to be a Flash developer; we have loads to learn from these people.

Lea:当然,大多数讨论似乎都是我们行业中的热门话题,因此,很多讨论都是关于CSS3或服务器端JavaScript的。 我听过很多关于Node.js或ECMAScript 6 Harmony的讨论,这些话题现在已经出现,并且在JavaScript行业中非常热门。 另外,我们有很多来自Flash世界的人,他们正在向我们介绍他们在动画方面的经验,他们在动画方面做得更好,并且我们有很多可以向他们学习的东西,例如Aral Balkan,他给了在Fronteers或Seb Lee-Delisle上进行了有趣的演讲,我不确定我是否要说出他的名字,他在Fronteers上也做了精彩的演讲,他曾经是Flash开发人员; 我们需要向这些人学习。

Louis: Yeah, that’s really interesting, it’s something you don’t tend to think about but I imagine there are probably a lot of people who’ve been working in the Flash world for years who are very familiar with all these concepts of doing keyframe animation and doing somewhat more dynamic interactions on the Web, and now that we have these tools available in the browser directly I guess it makes sense for a lot of these people to have a lot to teach us.

Louis:是的,这真的很有趣,这是您不常考虑的事情,但是我想可能有很多人已经在Flash世界中工作了很多年,他们非常熟悉所有关键帧设计概念动画以及在Web上进行更多动态的交互,现在我们可以直接在浏览器中使用这些工具,我想对于很多这样的人来说,有很多可以教给我们的知识是有意义的。

Lea: Exactly. We can learn the technology ourselves, we can learn how to write the keyframe animations and the animation property, but they know, they actually know the physics, they’ve worked for it for years and they know how to create realistic animations that we don’t have the experience to create yet, so they can teach us a lot about that. I mean even personally I know a lot about the animation spec and I know the technical aspect of it, I really have issues with trying to make animations look realistic because it takes far more than knowing the syntax, you need to know the physics behind how things move around.

莉亚:是的 。 我们可以自己学习技术,可以学习如何编写关键帧动画和动画属性,但是他们知道,他们实际上了解物理,他们已经为此工作了多年,并且知道如何创建我们不喜欢的逼真的动画还没有创建的经验,因此他们可以教给我们很多有关这方面的知识。 我的意思是甚至就我个人而言,我对动画规范也很了解,而且我也了解它的技术方面,我确实在尝试使动画看起来逼真时遇到了问题,因为它不仅需要了解语法,还需要了解背后的物理原理。事情四处走动。

Louis: Yeah, absolutely. I imagine there are a ton of ways that you could create sort of a bouncy animation that it would just look not like a bouncing object, and if you’ve had these tools available to you for a long time you’d be a bit more experienced.

路易斯:是的,绝对。 我想象有很多方法可以创建一种看起来不像弹跳对象的弹性动画,而且如果您长期使用这些工具,可能会更多。有经验的。

Lea: Exactly.

莉亚:是的

Louis: Right. So that actually kind of leads on because one of the tools you put out, or a couple of the tools you put out recently have to do with CSS animations and they’re these really cool tool, so anyone who doesn’t — who hasn’t seen your tools should definitely go to your website, it’s at lea.verou.me/css3-tools, and there’s a ton of really cool little things in there. If you haven’t had a chance to play with CSS3 animations or any of these things and just get a feel for what’s possible. So the most recent one is a sort of a gallery of animations that came out I think very recently, right, you only posted this —

路易斯:对。 之所以会这样,实际上是因为您推出的一种工具或您最近推出的两种工具都与CSS动画有关,而它们是这些非常酷的工具,所以任何不这样做的人-谁却没有没看到您的工具一定要去您的网站,它在lea.verou.me/css3-tools上 ,里面有很多非常酷的小东西。 如果您没有机会玩CSS3动画或其中的任何东西,而只是对可能的感觉。 因此,最近的是一种动画画廊,我认为是最近,对,您只发布了此动画-

Lea: Yeah, I was creating my slides for a talk I was giving in Sweden earlier this month, so in one slide I wanted to show how many possibilities we have when we animate a specific property, and I wanted to show the audience that every property that accepts animatable values can be animated, even properties that we don’t usually think of as animatable, for example, text-indent or line-height or letter spacing; who thinks about animating those. So I wanted to show that all these properties that are animatable and in some cases can create really interesting effects because I see that people keep animating the same properties over and over again like transforms, for example, or colors and that’s about it. In every website I see about those kinds of effects, either colors animated or transforms animated, but we can do many more things than just that, and I wanted to show this in my presentation. So it started off as a slide and then I thought, hey, many people could benefit from this, not just the audience of my presentation, so maybe I should make into a separate site and embed it in my slideshow as an iFrame, so that’s what I did.

莉亚:是的,我正在为我本月初在瑞典的演讲制作幻灯片,所以我想在一张幻灯片中展示当为特定房屋设置动画时我们有多少种可能性,我想向观众展示可以接受动画值的属性可以设置动画,甚至是我们通常不认为是动画的属性,例如,文本缩进或行高或字母间距; 谁考虑给那些动画。 因此,我想展示所有这些可动画化的属性,在某些情况下会产生非常有趣的效果,因为我看到人们不断反复地对相同的属性进行动画处理,例如变换或颜色,仅此而已。 在每个网站上,我都能看到有关这种效果的信息,无论是动画效果的颜色还是动画效果的变换,但是我们不仅可以做更多的事情,而且我想在演示文稿中进行演示。 因此,它开始只是一张幻灯片,然后我想,嘿,很多人都可以从中受益,而不仅仅是我的演示文稿的听众,所以也许我应该进入一个单独的网站,并将其作为iFrame嵌入到我的幻灯片中,所以我做了什么。

Louis: Yeah. So as you mentioned, some of the weird ones that you don’t think of animatable, like letter spacing, some of our listeners remember, I don’t know if you would be familiar with this, but on Sesame Street they used to have this bit where there were these two monsters with two parts of a word and they were teaching how to pronounce the word by sliding them together, and when I look at your letter spacing demo that’s exactly what they reminds me of.

路易斯:是的。 因此,正如您所提到的,有些您认为无法动画处理的怪异字符(例如字母间距),我们的一些听众记得,我不知道您是否会对此感到熟悉,但是在芝麻街上,他们曾经在这两个怪物中,每个单词有两个部分,他们正在教如何通过将它们滑动在一起来发音这个单词,当我看着您的字母间距演示时,这正是他们使我想起的东西。

Lea: (Laughs)

莉亚:(笑)

Louis: But there’s a lot of ones in here that show you how to do things that you don’t see. I like, um, I don’t know if you know them by number because I’ve got them here.

路易斯:但是这里有很多东西向您展示如何做您看不到的事情。 我喜欢,嗯,我不知道您是否按号码知道他们,因为我已经把它们放在这里了。

Lea: Oh, no, the number changes.

莉亚:哦,不,数字在变。

Louis: Right.

路易斯:对。

Lea: The number changes every time and a new one is added.

利:每次更改数字并添加一个新数字。

Louis: Right. There’s one where you use text shadows to sort of create a rainbow array of the text sort of scaled out.

路易斯:对。 在其中,您可以使用文本阴影来创建一个向外扩展的文本彩虹数组。

Lea: Oh, I remember that.

莉亚:哦,我记得那个。

Louis: Which is really impressive and it sort of breaks what the expectation is, right, when you think of text shadow you think of sort of just a drop shadow on text, but the fact is if you do it without a blur it creates sort of a duplicate of the text and because you can control the color and control its position you can do some really cool things, so absolutely the listeners should check this out. And there’s another one, sort of a box shadow where the box sort of explodes and goes away.

路易斯:这确实令人印象深刻,它打破了预期,是的,当您想到文本阴影时,您会想到的只是文本上的阴影,但事实是,如果您不加模糊地进行操作,它就会产生排序复制文本,并且由于您可以控制颜色并控制其位置,因此您可以做一些非常酷的事情,因此听众绝对应该检查一下。 还有另一个,盒子阴影,盒子爆炸并消失。

Lea: Yeah.

莉亚:是的。

Louis: Sort of a fadeout effect.

路易斯:一种淡入淡出效果。

Lea: Yeah, those two ones weren’t created by me, they were user submitted ones which is another thing that maybe you should mention, that this gallery is editable and everybody can fork it on GitHub and add something, adding new animation, and send me a pull request; not all pull requests are accepted, but I think about half of them are. If you click on each animation you can see who created it, the Twitter username of the creator.

Lea:是的,这两个不是我创建的,它们是用户提交的,这也许是你应该提到的另一件事,这个画廊是可编辑的,每个人都可以在GitHub上添加它,并添加一些东西,添加新的动画,以及向我发送请求请求; 并非所有拉取请求都被接受,但我认为其中大约一半被接受。 如果单击每个动画,您可以看到创建它的人,即创建者的Twitter用户名。

Louis: Alright.

路易斯:好吧。

Lea: And actually on text shadow you mentioned, and I think there’s another interesting thing about it, that one shadow can be animated to multiple shadows, you wouldn’t normally expect that, you would expect the browser to fail interpolating these two values, but all the browsers I tested do just fine. No, I just wanted to say it’s not very usual that you see browsers exceeding expectations.

Lea:实际上,在您提到的文本阴影上,我认为还有另外一件有趣的事情,一个阴影可以动画化为多个阴影,您通常不会期望,您会期望浏览器无法对这两个值进行插值,但我测试过的所有浏览器都能正常运行。 不,我只是想说浏览器超出预期并不是很平常。

Louis: (Laughs) Well, sometimes they exceed expectations in unpredictable ways which I think is the problem we often have.

路易斯:(笑)好吧,有时候它们会以无法预测的方式超出预期,我认为这是我们经常遇到的问题。

Lea: Yeah.

莉亚:是的。

Louis: And another one of these tools that you put up recently was a sort of a tool to play with cubic bezier functions which are used to control the easing of these animations, and it’s a pretty straightforward way of just sort of dragging the line around and creating the function because the syntax for that can be scary especially for people who are familiar with CSS but have never worked in Flash, never worked in animation.

路易斯:您最近使用的另一种工具是一种可与三次贝塞尔曲线函数一起玩的工具,这些函数用于控制这些动画的缓动,这是一种非常简单的方法,可以随意拖动并创建函数,因为该函数的语法可能令人恐惧,特别是对于那些熟悉CSS但从未在Flash中工作过,从未在动画中工作过的人来说。

Lea: Oh, yeah. That was actually also created for a presentation. When I first gave the CSS Secrets presentation I was just showing how bouncing transitions work by editing the code directly, but I thought this doesn’t exactly show people how cubic bezier works and they will just memorize the numbers which is not good, they should understand what they’re doing. So after a certain point I started including images of how the cubic bezier function works and I was explaining them how it works but by showing them things over the image, but it was a static image and I thought it didn’t exactly show them how the function works. So I wanted to actually show them and actually like drag the handles and everything, and there were some tools already that allowed you to do this thing, but none of them supported cubic bezier values out of range because it’s a fairly new thing for the spec. When the spec was firstly written that wasn’t allowed, the values, all four values, had to be between zero and one, and then Opera I think, yeah, I’m pretty sure it was Opera, they thought why shouldn’t we be able to have y values out of range, I mean of course we can’t extend the transition beyond the time limits imposed, but we can certainly extend the property value below or after the start and end values, so, and that would create quite interesting bouncing effects, so they suggested that to the CSS Working Group and it was accepted and you can find it in the editor’s draft. But at least until a while ago it wasn’t published in working draft yet, so most people authoring tools about cubic bezier were just — I guess they were reading the working draft and they constrained these values to that range, the zero one range. So I wasn’t able to show my audience exactly what I wanted in these tools, so I guess the only reasonable thing to do was to make my own, and that’s how that mini-site was created.

莉亚:哦,是的。 实际上,这也是为演示而创建的。 当我第一次进行CSS Secrets演示时,我只是通过直接编辑代码来演示弹跳过渡的工作原理,但是我认为这并不能完全向人们展示三次贝塞尔曲线的工作原理,他们会记住不好的数字,他们应该了解他们在做什么。 因此,在某一点之后,我开始包括三次三次方贝塞尔函数工作原理的图像,并向他们解释了它的工作原理,但是通过在图像上显示它们,但这是静态图像,我认为它并不能完全显示出它们是如何工作的。该功能有效。 因此,我实际上想展示它们,并且实际上喜欢拖动手柄和所有东西,并且已经有一些工具允许您执行此操作,但是它们都不支持超出范围的三次方贝塞尔值,因为这对于规范来说是一个相当新的东西。 最初编写不允许的规范时,所有四个值都必须介于零和一之间,然后我认为是Opera,是的,我确定是Opera,他们认为为什么不应该我们可以将y值超出范围,我的意思是我们当然不能将过渡范围扩展到施加的时间限制之外,但是我们当然可以将属性值扩展到起始值和终止值以下或之后。会产生非常有趣的弹跳效果,因此他们向CSS工作组建议这样做,并且该效果已被接受,您可以在编辑器的草稿中找到它。 但是至少直到不久前它还没有在工作草案中发布,因此大多数编写三次贝塞尔曲线的人只是-我想他们正在阅读工作草案,并将这些值限制在那个零范围内。 因此,我无法向观众确切显示我在这些工具中想要的东西,所以我认为唯一合理的做法是创建自己的工具,这就是微型网站的创建方式。

Louis: Right. And this was something so when you’re talking about values out of range the support has since gone into other browsers or is it still sort of in development?

路易斯:对。 因此,当您谈论超出范围的值时,支持已经进入其他浏览器,还是仍在开发中?

Lea: Oh, totally! Firefox also supports it, I’m not even sure if there’s a version of Firefox that supports transitions and doesn’t support that; IE recently started supporting transitions in IE10, and it supports that of course since they implemented the very latest version of the spec, and the only problem used to be WebKit which didn’t support it, but recently they fixed that in the nightlies and I’m not sure if it propagated with stable release yet, but even if it hasn’t it will very soon, and everyone interested can test it in the nightlies.

莉亚:哦,完全! Firefox也支持它,我什至不确定是否有支持过渡的Firefox版本,但不支持该版本。 IE最近开始支持IE10中的转换,因为它实现了规范的最新版本,所以它当然也支持它,并且唯一的问题曾经是不支持它的WebKit,但是最近他们在夜间和我中修复了该问题。我不确定它是否已经以稳定的版本进行了传播,但是即使它还没有发布,也很快就会发布,而且每个感兴趣的人都可以在夜间进行测试。

Louis: Right.

路易斯:对。

Lea: The good thing is that usually WebKit users tend to upgrade quickly, so essentially the only problem with WebKit is mobile.

Lea:好处是,通常WebKit用户倾向于快速升级,因此本质上WebKit的唯一问题是移动性。

Louis: Yeah, yeah, so Android is always the lagging platform for WebKit which is stuck with a very, very old version.

Louis:是的,所以Android一直是WebKit的落后平台,但它的版本非常老旧。

Lea: Exactly. Although I heard recently they updated it.

莉亚:是的 。 虽然最近我听说他们更新了它。

Louis: Oh, yeah.

路易斯:哦,是的。

Lea: That’s what I heard. I haven’t tested it myself because I don’t have an Android phone, but that’s what I heard.

莉亚:这就是我所听到的。 我自己没有进行测试,因为我没有Android手机,但这就是我所听到的。

Louis: Right. Well, that’s — yeah, and the other issue obviously is that a lot of the older phones don’t get releases from the makers and from the carriers as often as you do with iPhone.

路易斯:对。 好吧,是的,另一个明显的问题是,许多旧款手机没有像iPhone那样经常从制造商和运营商处获得发布。

Lea: Yeah.

莉亚:是的。

Louis: Speaking a little bit about browser bugs and browser development, we actually talked on the show a few weeks ago about an article that you wrote for Smashing Magazine, sort of a beginner’s guide to reporting browser bugs.

路易斯:谈到浏览器错误和浏览器开发时,我们实际上是在几周前的节目中谈到了您为《 Smashing Magazine》撰写的文章,这是报告浏览器错误的初学者指南。

Lea: Oh, right.

莉亚:哦,对。

Louis: Yeah, I thought it was a great primer for people, a lot of people are working on these things and especially now that there’s so much let’s say cutting edge CSS being done and a lot of people are playing with this stuff, you run into browser bugs a lot more often than you used to.

Louis:是的,我认为这对人们来说是一本很好的入门书,很多人都在从事这些工作,尤其是现在有这么多的东西可以说是最先进CSS,很多人都在玩这些东西,进入浏览器错误的频率比以前高得多。

Lea: You do.

莉亚:你知道。

Louis: Because a lot of this stuff is on the edge.

路易斯:因为很多东西都在边缘。

Lea: I mean even though I’m encouraging developers to report browser bugs in that article, I have to admit that sometimes I discover bugs and I don’t find time to report them always because if I reported every single bug I find it would be a full-time job, seriously, I’m not exaggerating it.

Lea:我的意思是,即使我鼓励开发人员在该文章中报告浏览器错误,我也不得不承认有时我会发现错误,而我却没有时间总是报告它们,因为如果我报告每个错误,我都会发现认真地做一个全职工作,我一点也不夸张。

Louis: (Laughs)

路易斯:(笑)

Lea: It would be a full-time job because it’s not just one browser it’s Opera, WebKit, Firefox, and I find bugs with them like every day, and if I reported them in the level of detail that I describe in that article it would really take a very long time, but I try to report most of them and even if I don’t have the time to create a proper test case or whatever I say I’m describing in that article, it’s still better to report the bug than leave it for later and end up never reporting it.

Lea:这将是一项全职工作,因为它不仅仅是Opera,WebKit,Firefox的浏览器,而且我每天都在发现它们的错误,如果我按照我在本文中描述的详细程度进行报告,确实会花费很长时间,但是我尝试报告其中的大多数,即使我没有时间创建适当的测试用例或我在该文章中描述的内容,还是最好报告错误,而不是留待以后再报告。

Louis: Yeah, absolutely. And obviously the more people who are playing with these cutting edge things, and the more people who are prodding the limits of browser functionality the more likely these bugs are to be discovered, and then it’s just a matter of educating people on what the process is for reporting them.

路易斯:是的,绝对。 显然,越来越多的人在玩这些尖端的东西,并且越来越多的人在浏览器功能的极限方面发挥作用,越有可能发现这些错误,然后就可以对人们进行有关流程的教育报告他们。

Lea: Yeah, of course. I think in the past it’s not that we had less browser bugs but the standards weren’t evolving, so we had a specific set of browser bugs that most developers already knew and it was quite hard to discover new ones, but right now we have a huge set of features and the combination between those features generates a very large amount of bugs.

莉亚:是的,当然。 我认为过去并不是我们的浏览器错误减少了,但标准没有发展,因此我们有一组特定的浏览器错误,大多数开发人员已经知道了,很难发现新的错误,但是现在我们有了大量功能以及这些功能之间的组合会产生大量错误。

Louis: Yeah, and especially that a lot of this stuff is things that even the browser makers don’t have a lot of experience working with, right, I mean animation is going to be entirely new to everyone who’s implementing it, so there’s a lot of room for error.

路易斯:是的,尤其是其中很多东西甚至是浏览器制造商也没有很多经验,是的,我的意思是动画对于实现它的每个人来说将是全新的,因此错误的余地很大。

Lea: Yeah, especially animations because the spec is a bit unclear, and sometimes implementers have to guess what they should do, and when they have to guess of course one browser guesses one thing and the other browser guesses the other thing, and then we’re stuck wondering what’s a browser bug and what’s actually correct.

莉亚:是的,尤其是动画,因为规范尚不明确,有时实现者必须猜测他们应该做什么,而当他们不得不猜测时,当然一个浏览器会猜测一件事,另一浏览器会猜测另一件事,然后我们卡住了,想知道什么是浏览器错误,什么是正确的错误。

Louis: Yeah, absolutely, and I mean even things that aren’t bugs there are varying implementations; I think I’ve been watching this bug report on Firefox about something about the multi-column display, and there’s one of them, I think column span, that it doesn’t implement — that isn’t implemented in Firefox so that it wasn’t.

路易斯:是的,绝对,我的意思是即使不是bug的东西也有不同的实现。 我想我一直在Firefox上查看此bug报告,关于多列显示的问题,我认为其中之一是列跨度,它没有实现-在Firefox中没有实现,因此没错

Lea: Yeah.

莉亚:是的。

Louis: And I’ve just been watching the thread for this thing for nearly a year now and it’s just — it’s always a bit weird to watch people going back and forth, you know, it’s not a bug we just haven’t done it or —

路易斯:而且我一直在关注这个问题的线索已经有将近一年了,只是-看着人们来回走来总是有点怪,你知道,这不是我们没有做过的错误要么 -

Lea: Yeah, many people haven’t realized that browser vendors use bug trackers not just for bug reporting but also for tracking the progress of implementing new features, especially Firefox does that a lot; Opera does that too but its bug tracker is internal, and WebKit kind of does that but sometimes it gets moved to an internal Apple bug tracker and the public doesn’t get to see it. But, yeah, they have like a bug report for every feature they haven’t implemented, and people keep going in those bug reports and nag them why haven’t you implemented this yet, and I’m guessing this must be really annoying for browser vendors because of course they can’t implement everything at once, it takes time.

Lea:是的,很多人还没有意识到,浏览器供应商不仅将错误跟踪器用于错误报告,而且还用于跟踪实现新功能的进度,尤其是Firefox可以做到这一点。 Opera也这样做,但是它的错误跟踪器是内部的,而WebKit则是这样做的,但是有时它会转移到内部Apple错误跟踪器中,而公众却看不到它。 但是,是的,他们对于尚未实现的每个功能都喜欢一个错误报告,人们不断浏览这些错误报告并na之以鼻,为什么还没有实现呢,我想这对于确实很烦人浏览器供应商,因为他们当然不能一次实现所有功能,这需要时间。

Louis: Yeah. I guess it’s just — the good news is it does become a bit more of an open discussion about what the users want to see and what developers want to see, you know, something generates a lot of noise it might get a bit more attention than something where two or three people have asked for it.

路易斯:是的。 我想这只是-好消息是,它的确成为有关用户想要看到的内容以及开发人员想要看到的内容的公开讨论,您知道,某些事情产生了很多噪音,它可能比我们更关注两三个人要的东西。

Lea: And it’s also what’s easy to implement and what’s hard to implement.

Lea:这也是容易实现和难以实现的地方。

Louis: Yeah. What about IE, you mentioned just about every other browser there; what’s their process for dealing with bug reports and has it improved?

路易斯:是的。 关于IE,您提到的其他所有浏览器都一样。 他们处理错误报告的流程是什么,并且得到了改善?

Lea: Oh, it’s horrible.

莉亚:哦,太可怕了。

Louis: (Laughs)

路易斯:(笑)

Lea: It’s absolutely horrible. It has improved a lot since the past, at least now they have a public bug tracker, but it’s really the most frustrating experience I’ve ever gone through while reporting a bug; it takes me like half an hour to find how to report the bug every single time, it’s like completely hard to use and also sometimes you get a response that they’re working on the bug which is good but you don’t get any feedback about the process, what’s going on, just that they’re working on it. And also sometimes they might tell you that it’s by design even though it actually violates the spec. For example, Paul Irish reported this bug about IE not supporting the second argument in the get computed style function, and he got the reply that it was by design, and that’s actually a spec violation, how can it be by design; you actually design your browser to violate specifications? It doesn’t make any sense.

莉亚:太可怕了。 自从过去以来,它已经有了很大的改进,至少现在有了一个公共的bug跟踪器,但这确实是我在报告bug时经历过的最沮丧的经历。 我花了大约半个小时的时间才能找到每次报告该错误的方法,这完全很难使用,而且有时您会得到他们正在处理该错误的答复,这很好,但您没有得到任何反馈关于该过程,正在发生的事情,只是他们正在努力。 而且有时他们可能会告诉您这是设计使然,即使它确实违反了规范。 例如,保罗·爱尔兰(Paul Irish)报告了这个有关IE的错误,该错误不支持get compute style函数中的第二个参数,他得到的答复是,这是设计使然,实际上是对规范的违反,如何通过设计实现? 您实际设计的浏览器是否违反规范? 这没有任何意义。

Louis: Well, as Web developers I think we’re all used to the world of Internet Explorer not making any sense.

路易斯:嗯,作为Web开发人员,我认为我们都已经习惯了Internet Explorer的任何意义。

Lea: Yeah, but they’re trying to convince us they’re making progress, they’re trying to convince us that these dark ages are behind us, so how can they say something like that is by design, I don’t get it.

莉亚:是的,但是他们试图说服我们他们正在取得进步,他们试图说服我们这些黑暗的时代已经过去,所以他们怎么能说这样的话是设计使然,我不明白它。

Louis: Yeah, no doubt that they’ve made progress but I guess there’s still a long way to go for Microsoft to convince Web developers that they’re on the right side of this now.

路易斯:是的,毫无疑问,他们已经取得了进步,但是我想微软说服Web开发人员他们现在处于正确的位置还有很长的路要走。

Lea: I guess; it seems like it.

莉亚:我猜; 好像是这样。

Louis: (Laughs) So just to switch gears a little bit, we were talking a little bit earlier about the talk you gave at a conference which is a talk called CSS3 Secrets, and you sort of mentioned in your answers to previous questions that you have Web pages and demonstrations sort of embedded in your slides.

路易斯:(笑)所以只是换了一点齿轮,我们刚才稍早谈到了您在一次会议上发表的演讲,即CSS3 Secrets,您在对先前问题的回答中提到了您在幻灯片中嵌入了网页和演示。

Lea: Yeah.

莉亚:是的。

Louis: All these slides are available on your website and they’re all built in HTML so that it’s easy to sort of play around and watch the things live, and this is a sort of a mini-framework for slides that you built yourself?

路易斯:所有这些幻灯片都可以在您的网站上找到,并且它们都是HTML格式的,因此可以很容易地玩耍并观看现场直播,这是您自己制作的幻灯片的微型框架吗?

Lea: Yeah, it’s called CSS-S which is an acronym for CSS Based Slideshow System and they can find it on GitHub, it has lots of plugins that are also written for it like to boost CSS regions or code highlighting; in the beginning it used to be very heavily CSS based, hence the name, but right now many things that were CSS based under the first version are now done with JavaScript because CSS is a bit restrictive sometimes, for example, the number of each slide that was displayed used to be done with CSS counters, but the latest versions it’s done with JavaScript because CSS counters don’t increment when you hide something with display: none, and in the latest versions I hide all the slides except the current, previous and next one with display: none so they don’t — for performance reasons so that the browser doesn’t have to render everything at the same time, and CSS counters broke when I did that so I had to implement them with JavaScript.

Lea:是的,它叫CSS-S,是CSS Based Slideshow System的首字母缩写,他们可以在GitHub上找到它,它也有很多为此而编写的插件,例如用于增强CSS区域或突出显示代码; 在开始时,它以前是非常基于CSS的,因此得名。但是现在,许多在第一版中基于CSS的东西现在都由JavaScript完成,因为CSS有时会受到一些限制,例如,每张幻灯片的数量以前使用CSS计数器来完成显示,但是使用JavaScript来完成最新版本,因为当您用显示隐藏某些内容时,CSS计数器不会增加:无,并且在最新版本中,我隐藏了除当前,上一张之外的所有幻灯片。下一个显示:由于性能原因,浏览器不必同时渲染所有内容,因此不必这么做。CSS计数器在这样做的时候就坏了,因此我不得不用JavaScript来实现它们。

Louis: Right. So the presentation itself is really cool. So it includes a couple of the things we’ve mentioned, sort of a description of how cubic beziers work and some demos to do with that, but it’s really just a kind of a list of little sort of tips and tricks in CSS3 for even properties that people might know about but little sort of hacks that people might not have played with to do with properties that they might use. So what are a few of your favorites from this presentation?

路易斯:对。 因此,演示文稿本身确实很酷。 因此,它包括了我们提到的几件事,描述了三次贝塞尔曲线的工作方式以及与此相关的一些演示,但这实际上只是CSS3中一些小技巧的列表,甚至人们可能知道的属性,但是人们可能没有玩过的与他们可能使用的属性有关的小小的骇客。 那么,此演示文稿中您最喜欢的是什么?

Lea: It’s a bit hard to tell, most people like the section about gradients, even though I’ve given many talks about gradients on their own like I used to give a talk about CSS gradients and the whole talk was bout CSS gradients and it was published, and I’ve written a lot about CSS gradients on the Web, still people get impressed that you can make patterns with CSS gradients, even the last time I gave that talk people came to me and they were like, “I can’t believe you can do these things with CSS gradients,” and every time people mention that. But I guess my favorite is the background origin trick that you can use to position a background image and have it follow the padding if you give the value content box to the background origin property. Also I like bouncing transitions a lot.

Lea:很难说,大多数人都喜欢关于渐变的部分,尽管我自己讲了很多关于渐变的话题,就像我以前讲过CSS渐变的话题一样,整个话题都是关于CSS渐变的,发表后,我在网络上写了很多关于CSS渐变的文章,仍然给人留下深刻的印象,那就是您可以使用CSS渐变来制作图案,即使是上次我给那些演讲的人来找我时,他们都说:“我可以“不相信您可以使用CSS渐变来做这些事情,”每当有人提到时。 但是我想我最喜欢的是背景原点技巧,如果您将值内容框提供给背景原点属性,则可以用来定位背景图像并使其遵循填充。 我也很喜欢弹跳过渡。

Louis: So maybe just explain a bit what you mean by the background origin, I maybe didn’t quite exactly follow there, and I’m looking at the slide and it’s not entirely clear to me.

路易斯:所以也许只是解释一下背景起源的含义,我可能不太确切地了解那里,我正在看幻灯片,但我不太清楚。

Lea: Oh, yeah, that’s the problem with editable HTML slides that when you put them online people can’t really understand what you’re talking about unless they see the video because every slide is like a starting point that I added on stage to show them what I want, so when I put the slide online people just see the starting point and they don’t get what I’m going to show in that slide. So, to explain it further, CSS3 expands the definition of the background position property, so if you want to position something from, for example, 10 pixels from the right and 20 pixels from the bottom, in CSS2 you couldn’t really do that, you had to approximate it with percentages or do something like that, and the only way you had to position something on the bottom right corner was to position it exactly at the bottom right corner with zero offsets; if you did background position bottom right, right?

Lea:哦,是的,这是可编辑HTML幻灯片的问题,当您将它们放到网上时,人们不会真正理解您在说什么,除非他们看到了视频,因为每张幻灯片都像是我在舞台上添加的起点向他们展示我想要的东西,因此当我将幻灯片放到网上时,人们只会看到起点,而他们却看不到我要在幻灯片中展示的内容。 因此,为了进一步解释,CSS3扩展了background position属性的定义,因此,如果您要从例如右侧10像素和底部20像素的位置进行放置,则在CSS2中您实际上无法做到这一点,您必须使用百分比来近似估算值或执行类似的操作,而您必须将某物放置在右下角的唯一方法是将其精确地放置在右下角且偏移量为零; 如果背景位置位于右下角,对吗?

Louis: Yeah.

路易斯:是的。

Lea: So, in CSS3 you could just write background-position: bottom 10 px, right 20 px, for example, and you could have these offsets from the bottom right corner even though in CSS2 you could only have offsets from the top left corner, is that understandable?

Lea:因此,在CSS3中,您可以只写background-position:例如,底部10 px,右侧20 px,即使在CSS2中您只能从左上角开始偏移,也可以从右下角获得这些偏移。 ,这可以理解吗?

Louis: Oh, right, yeah, so you can — it’s a little bit better control.

路易斯:哦,对,是的,所以您可以-控制性更好一些。

Lea: Yeah.

莉亚:是的。

Louis: And that’s currently supported in a few browsers but not all of them.

路易斯:目前只有少数浏览器支持该功能,但并非所有浏览器都支持。

Lea: Exactly, that’s only supported by Opera and IE 9. So the thing is we have a better way to do that because even if it was supported by every browser, in the most common use case that we want to do that is to have the background image follow the padding, so we have like 40 pixels padding and we want the background image to be on the bottom right corner and have an offset of 40 pixels from there because our padding is 40 pixels; almost every time I’ve needed to use something like that it was to follow the padding. So even if the extended definition was supported by every browser it’s still not ideal because you would have to duplicate the value of the padding three times, one time for the padding and two times in the background position definition. But, there’s an even better way to do that if you use background origin. Background origin is a new CSS3 property that controls where the background starts from, I mean in the CSS box model there are three boxes, the border box, the padding box and the content box. The border box is if you have a border it’s the box that starts from the outer edge of the border, the padding box starts from the outer edge of the padding, and the content box is where your content is and it starts from the inner edge of the padding. So essentially what you want to do in our use case is position the background image according — where the inner edge of the padding is, right?

Lea:确实,只有Opera和IE 9才支持。所以,我们有一种更好的方法,因为即使每个浏览器都支持它,在最常见的用例中,我们要做的是背景图像跟随填充,因此我们有40个像素的填充,我们希望背景图像位于右下角,并且从那里有40像素的偏移,因为我们的填充为40像素; 几乎每次我需要使用类似填充之类的东西时。 因此,即使每个浏览器都支持扩展定义,也仍然不是理想的选择,因为您将不得不将padding的值重复三遍,一次用于padding,两次在背景位置定义中。 但是,如果使用背景原点,则还有更好的方法。 Background origin是一个新CSS3属性,用于控制背景的起始位置,我的意思是在CSS框模型中有三个框,即边框,填充框和内容框。 边框是指如果您有边框,则边框是从边框的外边缘开始,填充框是从边框的外边缘开始,而内容框是内容所在的位置,内容框是从边框的内边缘开始的填充。 因此,从本质上讲,您要在用例中执行的操作是根据背景图像的位置进行定位-填充的内边缘在哪里,对吗?

Louis: Right.

路易斯:对。

Lea: So, if you give background origin the value content box and the background position of bottom right, it is placed on the bottom right but which box is bottom right? The border box is bottom right, no, the padding box is bottom right, no, that’s the default but since we specified content box it’s the content box is bottom right, so that’s where it starts from and it follows the padding because it’s placed to the bottom right of the inner padding edge.

利:因此,如果给背景原点提供值内容框和右下角的背景位置,则将其放在右下角,但哪个框在右下角? 边框位于右下角,否,填充框位于右下角,否,这是默认设置,但是由于我们指定了内容框,因此内容框位于右下角,因此它是从其开始的位置,并跟随填充的位置,因为它被放置到内部填充边缘的右下角。

Louis: Right.

路易斯:对。

Lea: Does it make sense?

莉亚:有道理吗?

Louis: Yeah, absolutely. So if the listeners have been hearing tapping as you’ve been explaining this it’s because I’ve been playing around with the slide and entering these values in as you were describing them to see how it works. And these properties, however, are supported pretty much across modern browsers.

路易斯:是的,绝对。 因此,如果听众在您解释时听到了敲击声,那是因为我一直在玩着幻灯片,并在描述它们时输入了这些值以了解其工作原理。 但是,现代浏览器几乎都支持这些属性。

Lea: Yeah. Essentially the only problem right now is IE8, every other browser currently in use supports them, I mean really old versions of Opera or Firefox or WebKit don’t support it, but these really old versions aren’t in use anymore.

莉亚:是的。 从本质上讲,目前唯一的问题是IE8,当前使用的所有其他浏览器都支持IE8,我的意思是Opera,Firefox或WebKit的确实很旧的版本不支持它,但是这些真正的旧版本已不再使用。

Louis: Right, whereas IE8 would still be in use because it’s the highest version available on Windows XP which is still very widely in use.

路易斯:对,而IE8仍将使用,因为它是Windows XP上可用的最高版本,但仍在广泛使用。

Lea: Yeah. And essentially in almost every CSS3 feature that’s popular today in most of them it’s only IE8 and below that’s actually a problem because users of other browsers upgrade fast and users of IE don’t, and it’s not just Windows XP, I’ve met many people that are on Windows Vista or I think maybe on Windows 7 that were still in IE8, and one of them told me ‘I didn’t really see a reason to update, why should I update?’ They don’t understand that there are differences.

莉亚:是的。 基本上,在当今大多数流行的几乎所有CSS3功能中,只有IE8以及以下的功能实际上都是一个问题,因为其他浏览器的用户升级速度很快,而IE的用户却没有,而不仅仅是Windows XP,我遇到了很多使用Windows Vista或我仍在IE8中运行Windows 7的人,其中一个告诉我:“我真的没有看到更新的理由,我为什么要更新?” 他们不明白有区别。

Louis: Hmm.

路易斯:嗯。

Lea: The only differences they notice are the UI, that’s what they know, they don’t understand that the rendering engine changes, and they don’t understand how that would make their browsing experience better.

Lea:他们注意到的唯一区别是UI,这就是他们所知道的,他们不了解渲染引擎的变化,也不了解如何改善浏览体验。

Louis: Yeah, it’s interesting to see, maybe it’s a failing of marketing on Microsoft’s behalf, but it might be in their interest to start pushing updates like what Firefox and Chrome are doing.

路易斯:是的,很有趣,也许这代表微软的营销失败,但开始推动Firefox和Chrome的更新可能符合他们的利益。

Lea: I think that would be amazing.

莉亚:我认为那太神奇了。

Louis: (Laughs) You don’t think it’s terribly likely?

路易斯:(笑)您认为这不太可能吗?

Lea: Yeah, because a big portion of Microsoft’s clients are enterprises, and for some reason, well, not for some reason, it’s obvious which reason, these enterprises don’t want to upgrade because they have applications that only work in this version of IE, and they don’t know if it will work in a higher version, and it will cost a lot of money to upgrade these applications and have the developers work on them to make them compatible with later versions of IE, and that’s why we’ve been stuck with IE6 for so many years too.

莉亚:是的,因为Microsoft的客户中有很大一部分是企业,出于某种原因(不是出于某种原因),很明显,这些企业不想升级,因为它们的应用程序只能在此版本的Windows中运行。 IE,他们不知道它是否可以在更高版本中使用,并且升级这些应用程序并让开发人员对其进行工作以使其与IE的更高版本兼容将花费大量金钱。 IE6也被困扰了很多年。

Louis: Hmm.

路易斯:嗯。

Lea: Because many companies had intranet applications that only work there. I really don’t get why they can’t have automatic updates and a setting to turn them off, and these enterprises could just turn them off.

利:因为许多公司都有仅在其中运行的Intranet应用程序。 我真的不明白为什么他们不能拥有自动更新和将其关闭的设置,而这些企业可以关闭它们。

Louis: Yeah, that obviously makes perfect sense but as we’ve mentioned before, making perfect sense does not necessarily jive with Microsoft’s behavior.

路易斯:是的,这显然很合情合理,但是正如我们之前提到的,合情合理不一定与微软的行为息息相关。

Lea: (Laughs) Yeah.

莉亚:(笑)是的。

Louis: So this kind of leads into something else I just wanted to touch on briefly because it’s the other thing that your name has come up on the show was a sort of a little bit of I don’t want to say an argument, but it was a discussion on Twitter a few weeks ago that you may remember, it was I think Aral Balkan started it with a Tweet, let me find it so that I can get the text. Do you remember what I’m talking about?

路易斯:所以这种线索导致我只想简单谈一谈,因为在节目中出现您的名字是另一回事,我不想说一个论点,但是这是几周前在Twitter上进行的一次讨论,您可能还记得,我认为Aral Balkan是从Tweet开始的,请让我找到它,以便获取文本。 你还记得我在说什么吗?

Lea: You’re talking about the one version discussion.

Lea:您正在谈论的是一个版本的讨论。

Louis: Yeah, here we are, there we go I’ve got it. So, Aral Balkan Tweeted with hashtag one version, hashtag manifesto, “my websites will only support the latest versions of browsers, it’s the browser makers duty to get users to upgrade.” So this kind of ties in to what we were just talking about in that we’d all be much happier if Microsoft could encourage its users more aggressively to update their browsers, and this was pretty widely re-Tweeted, including by you, and it drew a little bit of disagreement from other quarters of the Web. So I think I remember seeing John Allsopp disagreeing with it, which is totally out of character for him because he’s usually such a non-controversial person, and also Remy Sharpe I think had words to say about it.

路易斯:是的,我们在这里,我们去了那里。 因此,阿拉尔·巴尔干(Aral Balkan)在推特上发布了一个标签,即标签宣言:“我的网站仅支持最新版本的浏览器,这是浏览器制造商的责任,要求用户进行升级。” 因此,这种关系与我们刚才所说的联系在一起,如果微软能够更积极地鼓励其用户更新其浏览器,我们都会感到更加高兴,并且这被广泛地重新推了上来,包括您本人,以及与Web的其他方面产生了一些分歧。 因此,我想我记得看到约翰·奥尔索普不同意这一点,这对他来说完全不合时宜,因为他通常是个无争议的人,而且我认为雷米·夏普也有话要说。

Lea: I think most disagreements are rooted that people don’t understand each other’s opinions very well, and this is a perfect example of that. Support is not black and white, it’s not even black, white and gray, support is many, many different levels. There is this one edge that’s like I use IE8 to enter this site and it’s completely broken and I can’t even read the content, and there’s the other edge of the spectrum that’s I enter this site with IE8 and it’s pixel-perfect, it’s exactly the same as it is with the newest Chrome, and I think both edges are wrong and that’s why I re-Tweeted that; I think people spend way more time than they should trying to make things — even though they have understood that they don’t need to be exactly pixel-perfect in older versions of IE, I still think they spend way more time than needed in these versions. I think what’s necessary for these versions is that you get the content and it doesn’t look like crap, and I think that’s sufficient for like IE6 or IE7 or even IE8 in some cases.

莉亚:我认为大多数分歧都源于人们对彼此的看法不太了解,这就是一个很好的例子。 支持不是黑白的,甚至不是黑色,白色和灰色的,支持的级别很多很多。 有一个优势,就像我使用IE8进入该站点,它完全坏了,我什至无法阅读内容,还有另一个优势是,我使用IE8进入了这个站点,它是像素完美的,与最新的Chrome完全相同,我认为这两个方面都是错误的,这就是为什么我在推特上重新发帖; 我认为人们花费的时间比他们尝试制造的时间要多-尽管他们已经了解到在旧版IE中不需要精确地做到像素完美,但我仍然认为他们花费的时间超过了他们所需的时间。版本。 我认为这些版本的必要条件是您可以获取内容,而且看起来不像废话,而且在某些情况下,对于IE6或IE7甚至是IE8来说,这已经足够了。

Louis: Yeah, absolutely. I mean Andy Clark had an idea a few years ago about a sort of generic IE style sheet that would just be basic typography with no layout.

路易斯:是的,绝对。 我的意思是,安迪·克拉克(Andy Clark)几年前就对一种通用的IE样式表有了一个想法,该样式表只是基本的排版,没有布局。

Lea: Exactly. I think most people just disagree because they have different ideas of what that level should be for its old browser. Some people think that in IE8, for example, it should be pixel-perfect, and they think that graceful degradation is fine for IE7 and IE6, but in IE8 it should look pixel-perfect. Some other people think that even in IE8 it’s enough if it just looks decent and you can get to the content, and some other people have the same opinion about even IE9, they think if it doesn’t support something it’s fine and you just need to get the content, and that’s essentially what people disagree on. And John Allsopp, for example, in this debate he wrote his blog post about universality and how this manifesto is against universality because I think that’s the idea he got, that’s the idea many people got from this discussion that we don’t support older browsers at all, the content is inaccessible, which is not the case; it’s not really hard to make the content barely accessible, it doesn’t take much time. What takes much time is struggling over and trying to find the polyfill that does CSS animations in IE6, for example, and why doesn’t this polyfill work, why is it broken, this should be perfect; and people spend too much time on that. When color TV’s came out, people with black and white TV’s didn’t start shouting that we expect to see color TV shows in our black and white TV’s, they just accepted that they had an old TV and that’s — it’s the same case with browsers.

莉亚:是的 。 我认为大多数人只是不同意,因为他们对旧浏览器的级别应该有不同的看法。 有人认为,例如,在IE8中,它应该是像素完美的,而他们认为IE7和IE6适度降级是可以的,但是在IE8中,它应该看起来是像素完美的。 有些人认为,即使在IE8中,它看起来还不错,而且您可以访问内容,就足够了;还有一些人甚至对IE9也有相同的看法,他们认为,如果它不支持某些功能,那就好了,您只需要以获得内容,这实际上是人们不同意的。 以约翰·奥尔索普(John Allsopp)为例,在这场辩论中,他写了一篇关于普遍性以及此宣言如何反对普遍性的博客文章,因为我认为这就是他的想法,这是许多人从这次讨论中得到的想法,我们不支持较旧的浏览器根本无法访问内容,事实并非如此。 使内容几乎不可访问并不难,不需要很多时间。 What takes much time is struggling over and trying to find the polyfill that does CSS animations in IE6, for example, and why doesn't this polyfill work, why is it broken, this should be perfect; and people spend too much time on that. When color TV's came out, people with black and white TV's didn't start shouting that we expect to see color TV shows in our black and white TV's, they just accepted that they had an old TV and that's — it's the same case with browsers.

Louis: (Laughs) That’s a great analogy, I like that, I’m definitely going to use that the next time somebody asks me that.

Louis: (Laughs) That's a great analogy, I like that, I'm definitely going to use that the next time somebody asks me that.

Lea: It’s not my analogy, it’s Paul Irish’s I think.

Lea: It's not my analogy, it's Paul Irish's I think.

Louis: Alright, credit where credit is due. So, again, as with just about every argument on Twitter, everyone agrees, they just can’t explain why they agree in 140 characters so they fight about it.

Louis: Alright, credit where credit is due. So, again, as with just about every argument on Twitter, everyone agrees, they just can't explain why they agree in 140 characters so they fight about it.

Lea: Yeah.

Lea: Yeah.

Louis: I gotta say I love Twitter for that.

Louis: I gotta say I love Twitter for that.

Lea: Ah, sometimes I love it and sometimes I hate it; sometimes you just need more than 140 characters. That’s why I made this little application called TweetPlus, it was my entry to the 10K contest, and it allows you to post a longer Tweet, it’s like services like TwitLonger, for example, or similar services, but the new thing about it is that it’s completely client side except downloading the application, of course, everything is done with JavaScript, there’s absolutely no server side component, there’s no database storing the longer tweets, and everything is done through the URL, tweet is encoded in the URL, and when you post it on Twitter the URL is shortened by Twitters short URL service. So essentially you have a short URL pointing to the huge URL that contains everything.

Lea: Ah, sometimes I love it and sometimes I hate it; sometimes you just need more than 140 characters. That's why I made this little application called TweetPlus, it was my entry to the 10K contest, and it allows you to post a longer Tweet, it's like services like TwitLonger, for example, or similar services, but the new thing about it is that it's completely client side except downloading the application, of course, everything is done with JavaScript, there's absolutely no server side component, there's no database storing the longer tweets, and everything is done through the URL, tweet is encoded in the URL, and when you post it on Twitter the URL is shortened by Twitters short URL service. So essentially you have a short URL pointing to the huge URL that contains everything.

Louis: Oh, so you’re just kind of exploiting Twitter’s URL shortner to contain the extra data; that’s a very clever hack.

Louis: Oh, so you're just kind of exploiting Twitter's URL shortner to contain the extra data; that's a very clever hack.

Lea: Well, thanks, I’m not sure if it’s —

Lea: Well, thanks, I'm not sure if it's —

Louis: When you don’t have a database, use someone else’s database.

Louis: When you don't have a database, use someone else's database.

Lea: (Laughs) Well, I think the good thing about that is that when you services like TwitLonger, for example, you depend on TwitLonger being around for your tweets to be readable; if TwitLonger decides that their business model is failing, for example, and shuts down like many services do, then you lose your long tweets and you won’t be able to do anything about them. With TwitPlus everything is in the URL, they will always be there, and even if TwitPlus goes down at some point, which I don’t see any reason why it should, but even if it happens it’s pretty trivial to recover the tweets since you have the URL, and it would even work locally, if you take the hash and you put it on the URL of your local TwitPlus installation it will still work fine, you’ll be able to read the tweet.

Lea: (Laughs) Well, I think the good thing about that is that when you services like TwitLonger, for example, you depend on TwitLonger being around for your tweets to be readable; if TwitLonger decides that their business model is failing, for example, and shuts down like many services do, then you lose your long tweets and you won't be able to do anything about them. With TwitPlus everything is in the URL, they will always be there, and even if TwitPlus goes down at some point, which I don't see any reason why it should, but even if it happens it's pretty trivial to recover the tweets since you have the URL, and it would even work locally, if you take the hash and you put it on the URL of your local TwitPlus installation it will still work fine, you'll be able to read the tweet.

Louis: It kind of reminds me a little bit of Tantek Celik’s idea about a URL shortner where you could sort of algorithmically reverse it and come up with the original URL without depending on a database to do the mapping.

Louis: It kind of reminds me a little bit of Tantek Celik's idea about a URL shortner where you could sort of algorithmically reverse it and come up with the original URL without depending on a database to do the mapping.

Lea: Yeah, it’s called — it’s part of the own your data movement and I’m pretty much a fan of it; I don’t like my data to depend on whether multiple companies business model is going to be successful or not. Of course in some cases you just can’t do otherwise, like, for example, I do use Twitter to post my tweets, but I think tweets are temporary anyway for the most part, and I use Disqus for my blog’s comments, but in general I try to avoid depending too much on third party services for my data.

Lea: Yeah, it's called — it's part of the own your data movement and I'm pretty much a fan of it; I don't like my data to depend on whether multiple companies business model is going to be successful or not. Of course in some cases you just can't do otherwise, like, for example, I do use Twitter to post my tweets, but I think tweets are temporary anyway for the most part, and I use Disqus for my blog's comments, but in general I try to avoid depending too much on third party services for my data.

Louis: Yeah, that’s something that’s come up on the show before, and I make that argument and then people call me paranoid. But, yeah, absolutely, and with respect to things even like Twitter I’ve often considered just coming up with a way of posting them through my blog and then having them syndicated out to Twitter, it’s just always been on the bottom of the to-do list.

Louis: Yeah, that's something that's come up on the show before, and I make that argument and then people call me paranoid. But, yeah, absolutely, and with respect to things even like Twitter I've often considered just coming up with a way of posting them through my blog and then having them syndicated out to Twitter, it's just always been on the bottom of the to-do list.

Lea: Yeah, well, doing something like Tantek it’s admirable what he did, but for me it would be a bit too far.

Lea: Yeah, well, doing something like Tantek it's admirable what he did, but for me it would be a bit too far.

Louis: Yeah.

路易斯:是的。

Lea: I kind of trust Twitter, it’s too big to easily go away.

Lea: I kind of trust Twitter, it's too big to easily go away.

Louis: Yep, too big to fail.

Louis: Yep, too big to fail.

Lea: Yeah, I guess.

Lea: Yeah, I guess.

Louis: We’ve already mentioned your website which is at lea.verou.me, you’ve also developed this little JavaScript library called Prefix Free, do you want to talk a little bit about that?

Louis: We've already mentioned your website which is at lea.verou.me, you've also developed this little JavaScript library called Prefix Free, do you want to talk a little bit about that?

Lea: I really like this script and it allows you to write CSS without any vendor prefixes, completely valid CSS3, and the vendor prefixes are added on runtime and they’re not predefined lists about which feature needs which prefix, everything is done through feature detection so it’s very future proof.

Lea: I really like this script and it allows you to write CSS without any vendor prefixes, completely valid CSS3, and the vendor prefixes are added on runtime and they're not predefined lists about which feature needs which prefix, everything is done through feature detection so it's very future proof.

Louis: Alright, so it’ll actually — it’ll try a vendor prefix and see if that exists and then if it does it’ll add it.

Louis: Alright, so it'll actually — it'll try a vendor prefix and see if that exists and then if it does it'll add it.

Lea: It does many feature detection tests when it starts, and then it keeps in the results in some arrays and it processes every CSS code on the page and it adds the prefixes only when they’re needed, only when prefix-free version is not supported and the feature is only supported with a prefix. So, for example, you want to do animations you write a keyframes rule without any prefix, and when Opera starts supporting CSS animations they will start working without you needing to do anything, not even upgrade, not even using a newer version of Prefix Free, just leave it there and it will work.

Lea: It does many feature detection tests when it starts, and then it keeps in the results in some arrays and it processes every CSS code on the page and it adds the prefixes only when they're needed, only when prefix-free version is not supported and the feature is only supported with a prefix. So, for example, you want to do animations you write a keyframes rule without any prefix, and when Opera starts supporting CSS animations they will start working without you needing to do anything, not even upgrade, not even using a newer version of Prefix Free, just leave it there and it will work.

Louis: Yeah, that’s fantastic, and it’s a fairly small library, I’m seeing it’s about 2 kilobytes of JavaScript, so not a big hit, and it’ll probably save you 2 kilobytes worth of vendor prefixes.

Louis: Yeah, that's fantastic, and it's a fairly small library, I'm seeing it's about 2 kilobytes of JavaScript, so not a big hit, and it'll probably save you 2 kilobytes worth of vendor prefixes.

Lea: Oh, yeah, totally. And the style sheets are so much easier to read and it saves you so much time. I didn’t want to use CSS pre-processors, but I didn’t want to depend on such proprietary syntax that CSS pre-processors require because each one of them has their own syntax, and you kind of become dependent on them. So, I always added my prefixes by hand and I had — every time I wanted to change something I had to change it like five times and I just got too sick of it. I had developed this script for my presentations because if you noticed on stage I always write prefix-less code. I had this script behind the scenes adding the necessary prefix, and then I thought why not use the same script on Web pages, so I adopted this to be used on Web pages, I actually did that during a conference in the airport in October (laughter), and actually I’m thinking of separating this into two components, if you actually see the code it’s already separated but they’re on the same file; one component is serving as a framework for many kinds of CSS polyfills, and the other part is Prefix Free, you know the part doing the detection and adding the prefixes and everything, because I think the base will be useful for many different kinds of polyfills, for example, I wanted to write a polyfill for the vm, vh and vw units, there’s these new CSS3 units that are only supported by IE and they’re about the viewport size, and at some point I needed to use them. So I wanted to write a polyfill for them, and I used the same base from the Prefix Free code, and it was just a few lines of code to add them, and if I didn’t use that it would be much, much bigger, and most CSS polyfills of this kind are just — just repeat the same things; they need to XHR the style sheet because there’s no way to access the link style sheet and get the unsupported features; if you access it through the CSS object model unsupported features are dropped, so every CSS polyfill needs to send XML http request so you get the style sheet and then do some kind of processing and convert it to a style element, and then you need to convert the URLs because they’re relative to a new root, right now they’re relative to the document and in the CSS file they’re relative to the CSS file, and stuff like that which is about the same in every CSS polyfill, and why write these things over and over again. It would be good if we had a framework for that.

Lea: Oh, yeah, totally. And the style sheets are so much easier to read and it saves you so much time. I didn't want to use CSS pre-processors, but I didn't want to depend on such proprietary syntax that CSS pre-processors require because each one of them has their own syntax, and you kind of become dependent on them. So, I always added my prefixes by hand and I had — every time I wanted to change something I had to change it like five times and I just got too sick of it. I had developed this script for my presentations because if you noticed on stage I always write prefix-less code. I had this script behind the scenes adding the necessary prefix, and then I thought why not use the same script on Web pages, so I adopted this to be used on Web pages, I actually did that during a conference in the airport in October (laughter), and actually I'm thinking of separating this into two components, if you actually see the code it's already separated but they're on the same file; one component is serving as a framework for many kinds of CSS polyfills, and the other part is Prefix Free, you know the part doing the detection and adding the prefixes and everything, because I think the base will be useful for many different kinds of polyfills, for example, I wanted to write a polyfill for the vm, vh and vw units, there's these new CSS3 units that are only supported by IE and they're about the viewport size, and at some point I needed to use them. So I wanted to write a polyfill for them, and I used the same base from the Prefix Free code, and it was just a few lines of code to add them, and if I didn't use that it would be much, much bigger, and most CSS polyfills of this kind are just — just repeat the same things; they need to XHR the style sheet because there's no way to access the link style sheet and get the unsupported features; if you access it through the CSS object model unsupported features are dropped, so every CSS polyfill needs to send XML http request so you get the style sheet and then do some kind of processing and convert it to a style element, and then you need to convert the URLs because they're relative to a new root, right now they're relative to the document and in the CSS file they're relative to the CSS file, and stuff like that which is about the same in every CSS polyfill, and why write these things over and over again. It would be good if we had a framework for that.

Louis: Yeah, that’s a great idea; I look forward to seeing what comes out of that. I guess one of the issues you’d have run into with something like this is dealing with cases where the syntax in one prefix version is different from the syntax in other prefix versions, so, for example, the older WebKit gradient syntax.

Louis: Yeah, that's a great idea; I look forward to seeing what comes out of that. I guess one of the issues you'd have run into with something like this is dealing with cases where the syntax in one prefix version is different from the syntax in other prefix versions, so, for example, the older WebKit gradient syntax.

Lea: The older WebKit gradient syntax is not a problem because you can just use the WebKit gradient syntax along with an un-prefixed linear gradient decoration because it’s not the same thing. But you actually made a very good point, what happens when the same feature works differently across different prefixes? You can work around this but by using a prefix version as well as the un-prefixed version, for example, you want to specify a different value for WebKit box shadow and a different value for box shadow, you can use the two values together, the only caveat to that is that you have to include the prefixed version after the un-prefixed version because the un-prefixed version might get a prefix on runtime if it’s only supported with a prefix, if it’s like — if we’re on an older version of WebKit. But another way to get around this is that Prefix Free also adds a class to the root element with the current prefix, so you can actually write different rules if that’s convenient in some cases. I’m hoping that won’t be abused for doing separate things for separate browsers, but it’s there just in case somebody needs something like that.

Lea: The older WebKit gradient syntax is not a problem because you can just use the WebKit gradient syntax along with an un-prefixed linear gradient decoration because it's not the same thing. But you actually made a very good point, what happens when the same feature works differently across different prefixes? You can work around this but by using a prefix version as well as the un-prefixed version, for example, you want to specify a different value for WebKit box shadow and a different value for box shadow, you can use the two values together, the only caveat to that is that you have to include the prefixed version after the un-prefixed version because the un-prefixed version might get a prefix on runtime if it's only supported with a prefix, if it's like — if we're on an older version of WebKit. But another way to get around this is that Prefix Free also adds a class to the root element with the current prefix, so you can actually write different rules if that's convenient in some cases. I'm hoping that won't be abused for doing separate things for separate browsers, but it's there just in case somebody needs something like that.

Louis: Right. Well, I mean it’s always useful to be able to know the context you’re in, and taking a cue from Modernizr for that kind of thing.

路易斯:对。 Well, I mean it's always useful to be able to know the context you're in, and taking a cue from Modernizr for that kind of thing.

Lea: Yeah, exactly.

Lea: Yeah, exactly.

Louis: Most of the time it’s fine to degrade and not worry too much about making things work exactly pixel-perfect, but sometimes you do run into an issue and it’s good to be able to have that finer control.

Louis: Most of the time it's fine to degrade and not worry too much about making things work exactly pixel-perfect, but sometimes you do run into an issue and it's good to be able to have that finer control.

Lea: Yeah. I just hope they exercise restraint with it.

Lea: Yeah. I just hope they exercise restraint with it.

Louis: (Laughs) Well, you can always hope but, uh, I guess when you put a tool out there you can never really know what’s going to be done with it and we’ll just wait and see. So I’ll look forward to seeing people play around with this and what can be done.

Louis: (Laughs) Well, you can always hope but, uh, I guess when you put a tool out there you can never really know what's going to be done with it and we'll just wait and see. So I'll look forward to seeing people play around with this and what can be done.

Lea: Yeah, well, people are already using it and so far the feedback is quite positive. There are some people that have a few arguments against it; I mentioned the one that I think holds more truth, the one about different implementations. The other ones can be answered quite easily and I’m already — I’m answering them in the project’s page, like, for example, you’re depending on JavaScript; no, you’re not depending on JavaScript, you’re only depending on JavaScript for a few CSS3 extensions, and if you design your page with progressive enhancement then it should be fine without JavaScript, people who disable JavaScript are not expecting a perfect experience anyway, and if you’re not designing it with progressive enhancement in mind you have much more serious problems like IE8, for example.

Lea: Yeah, well, people are already using it and so far the feedback is quite positive. There are some people that have a few arguments against it; I mentioned the one that I think holds more truth, the one about different implementations. The other ones can be answered quite easily and I'm already — I'm answering them in the project's page, like, for example, you're depending on JavaScript; no, you're not depending on JavaScript, you're only depending on JavaScript for a few CSS3 extensions, and if you design your page with progressive enhancement then it should be fine without JavaScript, people who disable JavaScript are not expecting a perfect experience anyway, and if you're not designing it with progressive enhancement in mind you have much more serious problems like IE8, for example.

Louis: Right, exactly. Thanks so much for taking the time to come on the show, and I’m glad we managed to work around all the scheduling issues and finally get it done, and the cool thing is a number of things I hadn’t seen your presentation when I initially contacted you about doing the interview and this animatable tool wasn’t out either, so just by virtue of delaying the interview we’ve had a lot more stuff to talk about.

Louis: Right, exactly. Thanks so much for taking the time to come on the show, and I'm glad we managed to work around all the scheduling issues and finally get it done, and the cool thing is a number of things I hadn't seen your presentation when I initially contacted you about doing the interview and this animatable tool wasn't out either, so just by virtue of delaying the interview we've had a lot more stuff to talk about.

Lea: Yeah, that’s true.

Lea: Yeah, that's true.

Louis: I’ll ask you the same question I asked Chris Coyier which is where does the time come from because when I see people like you and like Chris who come up with all of this work pretty much on a weekly basis I’m always is there some kind of secret day of the week that the rest of us don’t know about?

Louis: I'll ask you the same question I asked Chris Coyier which is where does the time come from because when I see people like you and like Chris who come up with all of this work pretty much on a weekly basis I'm always is there some kind of secret day of the week that the rest of us don't know about?

Lea: Uh, is that off-the-record (laughter)?

Lea: Uh, is that off-the-record (laughter)?

Louis: Alright, we’ll keep it a secret.

Louis: Alright, we'll keep it a secret.

Lea: Yeah, I guess those are results of me procrastinating a lot, and also my daily job is about a company I co-founded, and it’s around a Greek website that’s kind of popular in Greece and the revenue comes from advertising, so even if I don’t do anything for a while we still have revenue so I can devote some time on these experiments.

Lea: Yeah, I guess those are results of me procrastinating a lot, and also my daily job is about a company I co-founded, and it's around a Greek website that's kind of popular in Greece and the revenue comes from advertising, so even if I don't do anything for a while we still have revenue so I can devote some time on these experiments.

Louis: Well, I think we all, the Web at large and developers out there, win as a result of this because we get the chance to use all these cool tools in our work and see all these fun experiments.

Louis: Well, I think we all, the Web at large and developers out there, win as a result of this because we get the chance to use all these cool tools in our work and see all these fun experiments.

Lea: I hope so.

Lea: I hope so.

Louis: (Laughs) If your procrastination helps the rest of us then everybody wins.

Louis: (Laughs) If your procrastination helps the rest of us then everybody wins.

Lea: Except me (laughter).

Lea: Except me (laughter).

Louis: Alright, well, Lea thanks again so much for taking the time to come on the show, it’s been a pleasure. We got delayed a little bit by a washing machine (laughter) but, uh —

Louis: Alright, well, Lea thanks again so much for taking the time to come on the show, it's been a pleasure. We got delayed a little bit by a washing machine (laughter) but, uh —

Lea: I guess that must have been the most weird delay you ever had for this podcast.

Lea: I guess that must have been the most weird delay you ever had for this podcast.

Louis: It’s pretty good, yeah, usually it’s just time zone issues, but, so a backstory for the listeners, we were supposed to record this an hour ago but you’re in a hotel room and the cleaner turned on the washing machine and it’s really loud apparently so we had to wait to record until the cycle was done.

Louis: It's pretty good, yeah, usually it's just time zone issues, but, so a backstory for the listeners, we were supposed to record this an hour ago but you're in a hotel room and the cleaner turned on the washing machine and it's really loud apparently so we had to wait to record until the cycle was done.

Lea: Yeah.

Lea: Yeah.

Louis: Thanks for sticking around despite the delay.

Louis: Thanks for sticking around despite the delay.

Lea: Thank you for waiting.

Lea: Thank you for waiting.

Louis: And for taking the time to talk with me. No, it was good, I took the time to deploy a bug into production and then you came back on just before I could investigate or fix it, so perfect timing.

Louis: And for taking the time to talk with me. No, it was good, I took the time to deploy a bug into production and then you came back on just before I could investigate or fix it, so perfect timing.

Lea: Cool, I’m glad you weren’t just waiting for the dishwasher to finish.

Lea: Cool, I'm glad you weren't just waiting for the dishwasher to finish.

Louis: No, I had plenty of work to do. So if the listeners want to find you we’ve already mentioned your website which is at lea.verou.me, but on Twitter what else should people look you up on?

Louis: No, I had plenty of work to do. So if the listeners want to find you we've already mentioned your website which is at lea.verou.me , but on Twitter what else should people look you up on?

Lea: I’m @LeaVerou on Twitter and essentially I’m LeaVerou almost anywhere, you can find me on LinkedIn, on Facebook, on Zerb.ly, on Last.fm and most social networks, and I always use the same username. And actually on my blog there’s a list of some of the social networks I take part in on the sidebar, so they can find my work there, but I post almost everything on my blog, and for somebody interested in my work I guess the most relevant ones are Dribble and GitHub.

Lea: I'm @LeaVerou on Twitter and essentially I'm LeaVerou almost anywhere, you can find me on LinkedIn, on Facebook, on Zerb.ly, on Last.fm and most social networks, and I always use the same username. And actually on my blog there's a list of some of the social networks I take part in on the sidebar, so they can find my work there, but I post almost everything on my blog, and for somebody interested in my work I guess the most relevant ones are Dribble and GitHub.

Louis: Yeah, absolutely. Again, there’s tons of fantastic stuff up there, just a great sort of playground, for CSS3 goodies that are fun to just mess around with on the browser and see how well your browser supports it and see some of the more interesting things that can be done with background or patterns, with animations, and maybe give you some ideas and inspiration for the next website, so definitely recommend it.

路易斯:是的,绝对。 Again, there's tons of fantastic stuff up there, just a great sort of playground, for CSS3 goodies that are fun to just mess around with on the browser and see how well your browser supports it and see some of the more interesting things that can be done with background or patterns, with animations, and maybe give you some ideas and inspiration for the next website, so definitely recommend it.

Lea: Thank you for listening to me babbling for an hour.

Lea: Thank you for listening to me babbling for an hour.

Louis: (Laughs) It’s always great to hear what people who are out there doing kind of fun work have to say, yeah, like I said, it was my pleasure. So best of luck in all your travels, do you have a bit of time off from conferences coming up?

Louis: (Laughs) It's always great to hear what people who are out there doing kind of fun work have to say, yeah, like I said, it was my pleasure. So best of luck in all your travels, do you have a bit of time off from conferences coming up?

Lea: Oh, yeah, my next talk is going to be in February, and I don’t have anything scheduled until then so I’m resting a bit.

Lea: Oh, yeah, my next talk is going to be in February, and I don't have anything scheduled until then so I'm resting a bit.

Louis: That’s fantastic.

路易斯:太好了。

Lea: Taking some time off the conference frenzy.

Lea: Taking some time off the conference frenzy.

Louis: Alright. If any of our listeners happen to be available for the conference you’re speaking at in February, where is it and what is it?

路易斯:好吧。 If any of our listeners happen to be available for the conference you're speaking at in February, where is it and what is it?

Lea: It’s a conference in Finland, it’s called D-Day, it’s the first time they’re doing it but it sounds quite interesting, it has some good speakers, and I’m not talking about myself, I’m talking about like Vitaly Freidman from Smashing Magazine, and the website is dday.fi, and I’m kind of looking forward to it, the only thing I’m not looking forward to is the cold; even if you go to the website you’ll see people sitting in snow and even snow falling on their heads, it kind of scares me.

Lea: It's a conference in Finland, it's called D-Day, it's the first time they're doing it but it sounds quite interesting, it has some good speakers, and I'm not talking about myself, I'm talking about like Vitaly Freidman from Smashing Magazine, and the website is dday.fi , and I'm kind of looking forward to it, the only thing I'm not looking forward to is the cold; even if you go to the website you'll see people sitting in snow and even snow falling on their heads, it kind of scares me.

Louis: (Laughs) Yeah, February in Finland is probably going to be a little colder than you’re used to in Greece and California.

Louis: (Laughs) Yeah, February in Finland is probably going to be a little colder than you're used to in Greece and California.

Lea: Yeah.

Lea: Yeah.

Louis: Alright, well, if anyone happens to be in Finland, we don’t have a lot of listeners in Finland, but if you’re one of our Finnish listeners and you happen to be around for this conference, check it out because you’ll be able to see Lea give a talk there.

Louis: Alright, well, if anyone happens to be in Finland, we don't have a lot of listeners in Finland, but if you're one of our Finnish listeners and you happen to be around for this conference, check it out because you'll be able to see Lea give a talk there.

Lea: Yeah, I’ll be glad to see them there.

Lea: Yeah, I'll be glad to see them there.

Louis: Absolutely. Alright, well, thanks again, and as I said before enjoy your time off and look forward to seeing what other new things come out of your brain in your procrastination time.

路易斯:绝对。 Alright, well, thanks again, and as I said before enjoy your time off and look forward to seeing what other new things come out of your brain in your procrastination time.

Lea: Thank you so much.

Lea: Thank you so much.

Louis: Alright, thanks very much, Lea.

Louis: Alright, thanks very much, Lea.

Lea: Have a good day.

Lea: Have a good day.

Louis: You too.

Louis: You too.

And thanks for listening to this week’s episode of the SitePoint Podcast. I’d love to hear what you thought about today’s show, so if you have any thoughts or suggestions just go to Sitepoint.com/podcast and you can leave a comment on today’s episode, you can also get any of our previous episodes to download or subscribe to get the show automatically. You can follow SitePoint on Twitter @sitepointdotcom, that’s sitepoint d-o-t-c-o-m, and you can follow me on Twitter @rssaddict. The show this week was produced by Karn Broad and I’m Louis Simoneau, thanks for listening and bye for now.

感谢您收听本周的SitePoint播客。 我很想听听您对今天节目的看法,因此,如果您有任何想法或建议,请访问Sitepoint.com/podcast ,您可以对今天的节目发表评论,也可以下载我们以前的任何节目或订阅自动显示节目。 您可以在Twitter @sitepointdotcom (即站点点dotcom)上关注SitePoint ,也可以在Twitter @rssaddict上关注我。 本周的节目是由Karn Broad和我是Louis Simoneau制作的,感谢您的收听和再见。

Theme music by Mike Mella.

Mike Mella的主题音乐。

Thanks for listening! Feel free to let us know how we’re doing, or to continue the discussion, using the comments field below.

谢谢收听! 欢迎使用下面的评论字段让我们知道我们的状况,或者继续讨论。

翻译自: https://www.sitepoint.com/podcast-139-experimenting-with-css3-with-lea-verou/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值