于Web設計與開發者來說,靈感相當重要。這就像寫文案,有些時候一點點素材或者靈感,都可以做出優秀文案。而常逛頂尖的Web設計與開發博客,也許會給你帶來不一樣的思緒。W3Cschool為您精選15個頂尖Web設計與開發博客,喜歡的趕緊來看看!
1.A List Apart
這是一個很老牌的網站,是由Jeffrey Zeldman所創建。關于Jeffrey Zeldman,那可是大有來頭,他是最早的一批Web設計師,還被稱為萬維網的標準之王。這個網站創建于1988年,到現在已經非常成熟,主要包括UX、科技、工具、商業等內容。
官網:http://alistapart.com/
2.SpeckyBoy
這個最早是一個私人的博客,之后經過漫長的發展,已經成為WEB設計雜志,它的訂閱者已經超過35000。不僅如此,這個網站還提供手機APP功能。
官網:https://speckyboy.com/
3.The next web
The next web是荷蘭的一個博客網址,它的主要內容涵蓋Web以及科技相關的領域。2014年的時候,它宣布和騰訊合作,因此推出中文網站。
官網:http://thenextweb.com/
4.Vandelay Design
Vandelay Design算是工具類的網站,偶爾也提供免費資源,例如說WordPress 主題以及字體等方面。
官網:http://www.vandelaydesign.com/blog/
5.Smashing Magazine
Smashing Magazine不僅提供在線文章,還提供電子書。它的內容主要是移動端的設計以及Photoshop等工具使用教程。
它是2006年創建的,算是最好的一個設計博客,有很多Web設計以及開發方面高質量的文章,主要內容包括HTML5、CSS、JavaScript、Photoshop、Wordpress、壁紙和網站可用性。
官網:https://www.smashingmagazine.com/
6.Six Revisions
Six Revisions是2008年創辦,創辦人是Jacob Gube ,主要發布Web設計以及開發方面技巧和教程等。
官網:http://sixrevisions.com/
7.Hongkiat
Hongkiat是2007 年創建的一個網站,最早的目標是提供開發教程、分享工具和開發、設計技巧。之后還增加科技、創意以及商業三個欄目。
官網:http://www.hongkiat.com/blog/author/com/
8.Web Designer Depot
在Web Designer Depot,你可以看到全世界的設計師的心得以及分享的教程。主要的內容是職場感悟、商業分析、移動端設計、字體以及響應式設計等。
官網:http://www.webdesignerdepot.com/
9.InstantShift
InstantShift時面向Web設計師以及開發者,屬于雙向社區,它的內容主要包括 WordPress、Web 設計、CSS、工具分享、教程、字體等,很多Web開發人員都最喜歡去這個網站
官網:http://www.instantshift.com/
10.51CTO
這個博客專注于javaWeb開發,涵蓋jsp、jquery、hibernate、struts2、生活雜文等方面,無論是學技術,還是享受生活,這里都有你要的內容。
官網:http://www.51cto.com/
11.PSD Tuts
PSD Tuts是一個非常不錯的Photoshop教程博客,它屬于Tuts+網站群,是尋找有關Photoshop圖形設計和效果技術教程的好地方。
官網:http://www.uuuu.cc/kuzhan/CSSkuzhan/11808.html
12.We Function
we function這個設計博客非常棒,作者經常發布有用的Web設計以及開發方面的一些資源和教程。不僅如此,還有Wordpress主題等。
官網:http://wefunction.com/
13.Smashing Apps
Smashing apps的主要好處是,向Web設計以及開發者分享有用的一些免費在線工具。此外,還分享很多其它免費教程以及資源,感興趣可以去看一下哦。
官網:http://www.smashingapps.com/
14.Fuel Your Creativity
顧名思義,Fuelyourcreativity是重點關注創意的一個設計博客,它主要涵蓋創意工具、技術發展趨勢、免費資源等。
官網:http://www.pageinsider.com/es.fuelyourcreativity.com
15.Abduzeedo
Abuzeedo的創建人是Fabio sasso,在2006年創建,屬于最流行的設計博客,內容涵蓋關于設計教程、壁紙和訪談。
官網:http://abduzeedo.com/
上面W3Cschool為您精選的頂尖Web設計與開發博客,不知道你們喜歡嗎?如果你們覺得這些不夠經典,你們喜歡逛的技術博客不是這些,可以給小編留言,小編會適時完善!
公眾號:w3c技術教程
年年初,我終于決定將自己的網站從基于 PHP 的 CMS 移植到基于 JavaScript 的靜態網站生成器(SSG)了。原因如下:
當我決定使用靜態站點生成器和 JavaScript(排除了 Jekyll 和 Hugo)后,就只剩下兩個差別頗大的選項了。
根據官方網站的說法,“Gatsby 是一個基于 React 的免費開源框架,可幫助開發人員構建速度飛快的網站和應用”。它有一個由 GraphQL 支持的數據層,并將所有內容輸出到靜態文件,使你可以在幾乎任何地方托管它。
當我第一次聽說我可以編寫 React 并使用這個很酷的 GraphQL 新玩意兒,同時還能輸出不需要 JavaScript 的靜態頁面時,我很想嘗試它一下。我是這么想的:“這聽起來像是漸進增強,但用不著什么投入”。不幸的是,就像大多數聽起來過于美好的事情一樣,經過一些調查我發現它就是個坑。用戶首次訪問 Gatsby 網站時會發生這些事情:
這里就有些不對勁——Gatsby 需要你以 React 組件的形式再加載一次頁面;在完成多出來的這一步之前,所有需要 JavaScript 的元素(例如按鈕、菜單、自定義輸入)實際上都不能交互。
哪怕你的網站沒有任何互動元素(鏈接除外,即使沒有 Gatsby,它們也無需 JavaScript 即可工作),你的用戶也必須下載這部分 JavaScript,僅僅是為了將你的網站變成單頁應用程序(SPA);SPA 是有自己的缺點的,我們稍后再提。
這種多出來的操作看來是違背我轉向 SSG 的初衷(提高頁面速度)的。華麗的 Gatsby 網站在 2,000 美元的 MacBook 上可能很快,但對于使用 3G 連接和廉價智能手機的用戶來說,它顯示是能顯示出來,但是沒有響應;用戶等待加載 JavaScript 的過程要持續 15 秒。電池和數據流量也得跟著往下掉了。
如果瀏覽器需要解析 296kb 的 JavaScript 代碼才能顯示出博客文章的列表,這就不是什么"漸進增強”,而是用錯了工具。從網站 /Web 應用的大致區別來看,React 是用于構建 Web 應用的,這種應用需要有響應用戶輸入或實時獲取數據的交互式 UI;而博客只是一個網站而已。
單頁應用程序這種網站放棄了傳統的 Web 導航方法,即通過加載新的 HTML 文檔來加載新內容;相反,它使用 AJAX 和 History API 之類的 JavaScript 特性來切換到新內容上,而不會觸發頁面加載。它的目標是提高感知的性能,并使網站看起來更像“原生”應用(從應用商店下載的那種)。不再需要整頁重新加載的問題在于,瀏覽器和輔助技術將頁面加載用作觸發某些有用行為的信號,包括宣布新頁面的標題或將鍵盤焦點重置到文檔的開頭。
如果你在開發關注可訪問性的單頁應用程序,那么你可能會試著使用 JavaScript 來模擬瀏覽器的行為。Gatsby 試圖通過包含一個 RouteAnnouncer 組件來為你解決這個問題。它使用一個 ARIA live region 來宣布頁面的 title 或 h1,以對使用屏幕閱讀器軟件的用戶提示頁面跳轉行為。但這種方法也存在問題:它在配置和本地化方面仍然存在很多未解決的 issue。
我們已經看到,單頁應用程序在導航方面存在固有的可訪問性問題,但要注意的是,使用前端框架也會在其他方面帶來可訪問性問題。在 2020 年 2 月對 100 萬個首頁的調查中,WebAIM 發現使用 React 的網頁的可訪問性錯誤比平均水平高 5.7%;而使用 Vue 的網頁則高出 25%。這并不一定意味著框架一定會導致這些錯誤,但是更多的 JavaScript 與更差的可訪問性之間存在很強的相關性。
很有可能,你構建的第一個網頁的性能要比之后構建的許多頁面都要好得多——它由一個 HTML 文件和一些 CSS 組成,也許還有一些未優化的圖像,但它們并不會阻止頁面加載。如果你也有我這樣的經歷,那么開始添加 JavaScript 的那一刻,你的網頁性能就開始急劇下降了。并非所有字節都是一樣的:與同等大小的 JavaScript 文件解析、編譯和執行所需的時間相比,圖像解碼和渲染到屏幕所需的時間要少得多。
JavaScript 是一種強大的語言,可以完成一些令人難以置信的事情,但是在開發中你很容易過早開始使用它,其實本來用 HTML 和 CSS 就夠了。應該看看最小功能原則:在你充分利用功能較弱的語言(HTML)之前,請不要使用功能更強大的語言(JavaScript)。在我看來,將博客變成 JavaScript 單頁應用程序會帶來不必要的復雜性。
這篇文章并不是要批判 Gatsby 而寫的。它的背后有一些聰明的頭腦,他們已經承認了本文中提到的許多問題,并試圖解決它們。靜態渲染和水化的頁面還是比完全客戶端渲染的 React 應用(如 create-react-app 生成的頁面)要好得多,后者沒有 JavaScript 就沒法用。我確實不太滿意 Gatsby 的宣傳手法,他們說 Gatsby 適合任何類型的網站。客戶端 JavaScript 是有成本的,開發人員應該意識到這一點。
這使我陷入了一個兩難境地:使用 Gatsby 開發網站是絕妙的體驗;但是開發體驗(DX)應該永遠排在用戶體驗(UX)之后。那么如何在構建 Gatsby 網站時避免那些因為大量使用 JS 而帶來的固有問題呢?當然,我們應該盡量刪掉那些 JavaScript。所幸 Gatsby 社區內做出了很多努力來構建更、,更輕量級的網站:
首先,使用 gatsby-plugin-preact 將 React 換成 Preact 可以節省幾千字節。我在 Component Gallery 上用了它,立刻將 JavaScript 負載減少了約 30kb。
如果你想用更激進的方法,可以使用一個插件來從你的 Gatsby 網站刪除所有 Gatsby JavaScript。
你可以繼續編寫 react 組件和 GraphQL,甚至可以使用 CSS-in-JS 庫(只要它輸出 CSS 或內聯樣式),而無需向瀏覽器發送任何 JavaScript。只要扔掉所有客戶端 JavaScript 就可以解決 Gatsby 的大多數問題。Gatsby Starter Low Tech 博客使用 no-javascript 插件和其他一些技術(包括將所有圖像轉換為灰度),來幫助你創建一個輕量且節能的博客。
這時候我感覺有點不對勁——使用一個會大量推送客戶端 JavaScript 的框架,卻要刪除所有 JavaScript 代碼,這似乎是一種很復雜的網站構建方式。我想看看是否可以不用客戶端 JavaScript 來構建功能完善的博客,這樣就用不著什么插件來刪除它了。于是我轉向了另一個選項:
Eleventy 鼓勵你按照自己的意愿構建網站。你可以使用自己最熟悉的技術,它只負責生成頁面。Eleventy 為你提供了十種可以任意搭配的模板語言選項,包括 markdown、nunjucks 和 liquid;這意味著我可以從 Craft 中復制并粘貼舊的模板,更改文件擴展名,并做一些細微的調整就能運行在 Eleventy 中。用不著針對什么新的打包器來調整前端構建流程,我只需放入現有的 webpack 文件和 src 文件夾即可。使用并發包,我可以在 Eleventy 的 serve 過程中同時運行構建腳本。
像 Gatsby 一樣,Eleventy 也有一個插件生態系統(雖然很小,但增長迅速)。我挑選了一些不需要添加客戶端 JavaScript 也能添加功能的插件:
在帖子中顯示代碼段時,通常會包含特定于語言的語法高亮顯示。有一些 JavaScript 庫可以做到這一點,其中最流行的似乎是 Prism——你可以在客戶端中運行它,但由于我們使用的是 JavaScript SSG,因此可以在構建時運行它,并將語法高亮顯示所需的 HTML 元素和 CSS 類直接烘焙到文檔中——這樣就無需在瀏覽器中下載這個庫了。
eleventy-plugin-embed-tweet 也可以在構建時而非客戶端運行 JavaScript。Twitter 的默認嵌入代碼迫使用戶下載大量 JavaScript 才能顯示一條推文。這個插件可以在構建時獲取并渲染推文,這樣只需少量 HTML 和 CSS 即可,根本不需要額外的 JavaScript。
與其他新技術一樣,Eleventy 缺少某些更加成熟的工具所提供的功能。例如,在 Eleventy 中沒有一種優雅的方法來生成響應式圖像。相比之下,Gatsby 中出色的 gatsby-image 插件可以生成延遲加載和響應式的圖片元素,并能在加載全分辨率文件后在低分辨率或 SVG 版本的圖像間平滑切換。Eleventry 還有一些讓我感到困惑的事情:我有一陣子一直搞不懂它的分頁功能,認為它只是將帖子分頁到指定大小的一些組中,之后才意識到它可以動態生成全新的頁面;我還發現自己在同一文件中混用了模板語言:你可以隨意在 markdown 文件中包含 nunjucks 標簽,或將基于 yaml 的 frontmatter 換成 JavaScript,但這會破壞語法高亮顯示、linting 和自動格式化。
如果你還是選擇了 Gatsby,我也不會怪你——有時候使用一個 opinionated 的框架也不錯,并且如果你想要快速完成工作,這是一個可靠的解決方案。只是要注意它的性能成本,以及所有與 JavaScript 相關的潛在可訪問性問題。
我選擇使用 Eleventy 來構建自己的網站,但我知道這種方法并不適合所有人——完全按照自己的意愿來構建某些東西可能是很麻煩的事情。但你也用不著完全學我——與 Gatsby 類似,Eleventy 也有許多入門項目可以用作基礎。其中一些工具,例如 Andy Bell 的 Hylia 入門套件可以在幾分鐘內搞定一個網站。它甚至預配置了 Netlify CMS,因此你無需編寫任何代碼即可編輯網站內容。
我學到了什么呢?使用 Eleventy 可以輕松構建不帶 JavaScript 的博客,但總會有一些功能需要客戶端 JavaScript 的:
我是否會在不久的將來在網站上加入 JavaScript 呢?答案可能是否定的:我上面列出的功能并不是那么重要的。我并不是推薦大家都刪除自己網站上的所有 JavaScript 文件,但從現在開始,在構建網站時我會嘗試將 JavaScript 視為可選的額外功能,而不是體驗的基本組成部分。我鼓勵你也這樣做。
關注我并轉發此篇文章,私信我“領取資料”,即可免費獲得InfoQ價值4999元迷你書!
論什么語言,學Web開發必做的項目——個人博客。
本次項目基于Python的知名Web框架Django,從數據庫到視圖邏輯、再到模板語法,完整的走了一遍MTV開發流程。
markdown非常適合寫博客、新聞類文章,也快成為了開發者寫開發文檔的標配了。所以本博客項目的文檔內容,數據庫存儲的數據,也就是markdown格式內容,在前端顯示需要轉成HTML語法。
開發環境:Python3.6+pycharm+Django
1:安裝Django
conda install django
python的包管理工具,anaconda的安裝及配置,詳見博客http://www.jianshu.com/writer#/notebooks/19640626/notes/20743107
IDE工具pycharm的安裝,詳見博客http://www.jianshu.com/writer#/notebooks/19640626/notes/20767808
2:創建Django項目
創建一個項目,名稱為blogs
django-admin.exe startproject blogs
3:進入項目目錄,啟動項目
python manage.py runserver
訪問http://127.0.0.1:8000,提示worked,證明正常運行
4:生成APP
python manage.py startapp blog
命令執行完成后,在工程目錄下會生成blog目錄
注意:app的名稱不能和項目名稱一樣
5:添加URL路由
在urls.py文件中,編寫如下代碼:
6:在settings文件中安裝blog的app
7:新建相關文件夾
在blog目錄下,新建templates、static兩個文件夾(文件夾名字千萬不能錯),templates文件夾中,存放html文件;static文件夾存放資源文件,該文件夾中新建css、img、js三個文件夾,存放對應的資源文件。利用pycharm在templates文件目錄下新建一個blog.html的空html文件
6:編寫響應函數
安裝markdown,pip install markdown
響應函數如下所示:
7:在數據庫中創建默認表格
python manage.py migrate
8:創建超級管理員的用戶名和密碼
python manage.py createsuperuser,然后逐步設置用戶名和密碼,密碼至少8個字符
訪問127.0.0.1:8000/admin,輸入設置好的用戶名和密碼,如下所示:
9:新建博客模型
10:把model轉換成中間件
python manage.py makemigrations
11:生成數據庫表
12:在admin.py文件中注冊數據庫表,使其在管理頁面中顯示
13:增加數據
14:在前端頁面調研后臺數據顯示
15:運行效果如下
完整代碼下載地址:https://gitee.com/TianYaBenXiong/django_blog
*請認真填寫需求信息,我們會在24小時內與您取得聯系。