本文僅用於學習和交流,不用於商業目的。非商業轉載請註明做譯者、出處,並保留本文的原始連接:http://www.ituring.com.cn/art...css
Lea Verou
W3C CSS工做組特邀專家,設計CSS語言的委員之一,此前曾在W3C擔任開發者代言人。目前,她在麻省理工學院從事人機交互領域的研究。她仍是一位博客做家,並常常在國際性的技術會議上擔任講師;她建立的多個開源項目廣受開發者歡迎。
前端
**-圖說-**
來自CSS一姐的我的網站(http://lea.verou.me),也多用於各類公衆場合,例如本書的做者介紹部分。瀏覽器
**-圖說-** Lea的運動照,愛游泳。
**-圖說-** Lea本身設計的圖標,常見各類公衆場合,包括本書的封面。
《CSS揭祕》是CSS一姐Lea Verou的最新做品,堪稱「近年來最重要的CSS技術書,挖掘了不少有用的CSS技術點! 」微信
從實踐須要出發,Lea爲咱們揭示了47個不爲人知的CSS技巧,主要內容包括背景與邊框、形狀、視覺效果、字體排印、用戶體驗、結構與佈局、過渡與動畫等。本書將帶領讀者按部就班地探尋更優雅的解決方案,攻克天天都會遇到的各類網頁樣式難題。 網絡
本書的讀者對象爲前端工程師、網頁開發人員。 前端工程師
做品選讀:本書讚譽架構
很是榮幸可以邀請到暢銷書《CSS 揭祕》的做者Lea Verou,進行一期圖靈專訪。請問Lea寫這本書的初衷是什麼?讀者應該怎樣閱讀本書?工具
市面上有不少CSS的書,有全面講解CSS各方面知識的,也有專一介紹某一方面的。可是,沒有一本書教會讀者怎樣運用CSS創造性地思考、解決問題,也沒有一本書能夠跳過最開始的簡介部分。佈局
歸納來說,這彷佛是學習新知識時的一個廣泛問題:大多數圖書只會提供陳腐、老掉牙的解決方案,卻不會嘗試向讀者介紹如何得到本身的解決方法。說到CSS方面的書,做者們老是想固然地認爲讀者都是些「技術小白」,也就想固然地架構起內容。《CSS 揭祕》這本書呢,尊重語言和讀者,沒有簡化內容。CSS高級開發人員以及真正理解CSS是如何工做卻想進一步提升知識的人,會從本書中獲益最多。學習
《CSS揭祕》封面的右下角有一個相似海盜標誌的Logo,而這個標誌一樣也出如今你的我的網站上。這個標誌的背後含義是什麼?對我本身而言,你好像挺欣賞海盜元素的,透過批判性思惟能從「醜陋」當中發現「美善」?
這是我我的的Logo,已經用了好多年了。它自己並無什麼特殊的含義,不用太認真對待。括號({ })表示代碼,做爲語法元素常常出如今CSS和JavaScript裏。兩把交叉刀表明海盜、編碼界的海盜。在西方文化當中,海盜並不必定表示壞的意思,他們也能夠表示某方面的「大牛」。這也是我想要傳達的意思。
咱們通常認爲,男權社會中男性的地位要高於女性。做爲女性,你又來自互聯網技術不太發達的希臘。是什麼緣由讓你成爲一位世界範圍內普遍知曉的開發人員?一我的的出身是否能夠決定她/他的成就?
值得慶幸的是,網絡的普及,讓出身和人們所能達到的高度之間不存在必然聯繫。我見過有的人把本身封閉在某個網絡的小角落裏,只跟本身國家的人交流、工做,但這是他們的選擇。只要把英語說好,沒有人能限制他們成就的廣度和深度。我但願任何想在國際舞臺上作出一些事情的人要專一於提升本身的英語水平,而不只僅是他們的HTML、CSS和JavaScript。無論你的技術知識有多好,若是不能很好地表達本身,沒有人會知道。
講一個我本身的有趣故事,開始建立我的博客lea.verou.me以前,我曾用希臘語建立過一個博客,很遺憾徹底地、完全地失敗了。在希臘,不多有人會對前沿的css技術感興趣,這也就能夠解釋爲何希臘的開發人員掙得那麼少,還經常被他們的客戶刁難。我很慶幸本身沒有放棄,開始建立用英語編寫的國際博客,否則個人生活確定是另外一番樣態。
希臘目前可能還存在一些針對女性的性別歧視,但並不明顯,否則我可能會被影響到。實際上,有時候希臘在性別平等方面比其餘西方國家更進步。我最近在我的博客上寫了一篇博文(http://lea.verou.me/2015/12/m... ),文章裏講到在個人職業生涯裏,我我的尚未真正經歷過任何的性別歧視。因此,我喜歡作這一行:)
除了寫書分享知識之外,你還分享了好多的開源項目。可是,據我所知,有些人是不肯意分享代碼示例的。他們承認展現出來設計良好的做品,卻不肯意分享設計藍圖。你怎麼看待?
代碼共享是一種回饋社會的行爲。不管從事什麼行業,咱們都離不開開源項目的幫助。想象一下,若是每一個人的邏輯都如出一轍,咱們的專業會千篇一概。使用了別人分享的成果卻不肯意分享本身的代碼,在我看來,有點「小自私」。的確,其餘行業的文化可能有所不一樣,從業人員不肯意分享工做。
我很喜歡技術行業的開放分享文化,欣賞開發人員之間分享知識、互相幫助的活動。他們熱衷於分享代碼或者回答Stack Overflow技術問答網站上的問題。換作是我,我同樣會這麼作。另外,當個人工做能夠幫助到別人、被他人使用時,我很是高興。這就是爲何我選擇這個領域的緣由。
開源代碼也意味着其餘人能夠參與進來,爲項目作貢獻,最終項目的質量也更高。好比說,我發佈Bliss的時候,尚未測試,如今它有一整套testsuite幫助調試bug。還有許多項目,好比PrismJS是由社區共同維護的。我本身沒有時間維護它們,若是不是開源,項目只會爛尾。
演講時,現場展現代碼編寫過程應該算是開源的最高形式。難道你沒有想過代碼漏洞或者拖延會影響公共演講嗎?一般你怎麼爲會議演講作準備?
現場展現代碼編寫以前,我會一遍一遍地演示代碼,這一點很是重要。代碼要儘量短,儘可能減小犯錯的機會,並且通常狀況下,觀衆也沒法消化一張幻燈片上好多行的代碼量。我見過有人曾用100行的代碼啓動IDE ,在開始演示代碼編寫以前,不少觀衆早已失去了興趣。
儘管你竭盡量避免犯錯,現場展現代碼編寫總避免不了失誤的發生。出發前,我還在飛機上調試漏洞,除非能當即修復,否則我只能暫且放下問題。沒有人但願在現場展現時跟代碼漏洞較勁。我我的經歷中,只要演講者能很快調試好代碼,聽衆大都很理解。
下面咱們來聊聊CSS。和CSS相比,JavaScript的新增特性從生成到普遍應用歷時幾天,而CSS的新增特性要經歷長達幾年的週期。因此,有人建議多增長一些CSS polyfill。你怎麼看待這個問題?
這樣作確定會縮短新特性的週期。按照這種思路,PostCSS 運用CSSNext大大縮短了CSS新增特徵的週期,但並非全部的新特性均可以提早處理。對於更多的動態特性,好比自定義屬性的新unit,目前polyfill就沒法進行填充或轉譯,但大多數的JS API卻能夠很容易地被轉譯。Houdini API可以很好地解決這個難題,讓咱們像編寫JS polyfill 同樣輕鬆編寫CSS polyfills。
Houdini 是W3C的一個新增工做組,他們的最終目標是讓瀏覽器支持CSS特性。若是真能成功的話,這無疑是CSS發展史上最使人興奮的時刻。你認爲Houdini 的目標可行嗎?
Houdini確定會讓CSS polyfill成爲可能,這的確使人興奮,我也很期待。不過我擔憂開發人員把Houdini 看成柺杖,不讓瀏覽器實現某些功能。他們認爲開發人員經過Houdini API總能編寫出應對問題的庫。我不但願CSS由於Houdini 的工做就中止進一步發展,我也不肯意看到CSS成爲一個依賴大量庫解決基本問題的「地獄」。
運用JavaScript代碼編寫HTML解決了不少問題,因此一些React.JS開發人員嘗試把CSS和JavaScript兩種語言結合起來,解決CSS存在的問題。你怎麼看待JavaScript代碼編寫CSS的現象。
我認爲,這主要是那些並不真正瞭解CSS,只想用JS代碼解決一切問題的JavaScript開發人員的想法。「若是你只有一把錘子,看什麼都是釘子。」這樣作,只能讓他們喪失掉大部分的潛在合做夥伴:有一半的HTML 和CSS 開發人員對JS不感冒。
不過,CSS工做組的成員也認識到CSS在範疇和封裝方面的問題,正在積極討論解決方案。
CSS已經從網頁設計延伸到了出版行業,例如O’Reilly 已經開始嘗試把CSS運用到出版流程。你認爲CSS能勝任出版行業的要求麼?基於出版行業的要求,W3C以後會對CSS作出相應的規範麼?
CSS從一開始就是要設計成一門文檔樣式語言的,把CSS運用到出版行業也是必然的。實際上,CSS 之父 Bert Bos和Hakon Wium Lie,在11年前也就是2005年的時候,就運用CSS排版了《CSS:網頁設計》這本書(http://alistapart.com/article...)
固然, CSS要想和現有工具InDesign同樣靈活,還須要不少工做要準備。在過去的幾年裏,咱們已經取得了很大的進步。不過,網頁比出版社的資源廣,因此他們的聲音更容易被CSS工做組瞭解到。出版行業是一個嚴肅的行業,咱們會認真考慮添加的每個新功能。
更多精彩,加入圖靈訪談微信!