寫前端頁面的時候,是先把html骨架寫好再寫css,還是一邊寫html,一邊寫css?
01-14
我有一點疑問,就是我感覺寫前端的頁面的時候,先寫html骨架再寫css修飾,是不是會跟快點?譬如一開始就把頁面上的所有的圖片和文字放進去(根據PSD圖判斷應該有的html骨架),然後再從上往下給html添加類。
我以前都這樣寫:
第一步,先寫整頁框架,例如左右分欄,上下分欄,頭尾等的html結構。然後寫對應的樣式。第二步,拆分模塊,一個一個模塊寫html,然後寫css,並且套到對應的整體結構中。第三步,細節調整,整體聯調樣式。
js呢,其實也可以按照模塊寫。
這樣做的一個好處是,你一個人的工作完全可以無縫拆成多個人的工作。所以當主導一個很重的頁面的改版的時候,這種方式讓多人協作受益良多。
多寫,不在於方式在於姿勢。
先寫骨架並把類寫好,然後再去寫CSS。
以我自己為例,我們公司的設計不是一次交活的,設計團隊會先給出一個大概得布局,開發團隊根據布局先把骨架寫好,然後等設計團隊完成所有的設計並給出文檔後再具體調整樣式。
瀉藥這個問題有意思,我想了想以前寫頁面的時候。開始的時候好像比較喜歡邊寫 html 邊寫 css,到後來慢慢的喜歡把某一塊的 html 寫完,再寫 css 了,類似填天窗……
先寫框架HTML,Component可以簡單拿div, span, 甚至img代替一下,因為設計會變。
然後寫框架層的CSS,如果能用bootstrap, pureCSS等也可以,點到為止,不要實現任何視覺設計的元素,因為設計會變。
記得一定要跟設計組要一份單獨的組件的visual style guide,因為設計變化的時候,layout和visual只需要更新各自就行了。
最後的最後,再單獨寫一份css定義visual design。因為產品敲定/交付/上線以後,設計會變!!!
『橫切,豎切,切得快准狠就是好切。---匿名 』
在切圖前,需要做的一些準備工作: 你需要有一個屬於你自己Grid System,如果你是Sass Person,可以使用Susy或者Jeet Grid System ,後者更加輕量級一點。 Jeet Scss Example
.col-7-12{
@include column(12/12);
.push-7 {
@include unshift();
}
.pull-7 {
@include unshift();
}
}
.col-5-12{
@include column(12/12);
.push-5 {
@include unshift();
}
.pull-5 {
@include unshift();
}
}
你需要有所了解BEM, 存貨:
http://bem.github.io/bem-method/html/all.en.htmlBEM 101 | CSS-Tricks 很多圖友在切圖時,不知道如何命名class,BEM很好的規範了如何給class起名和HTML結構。 製作純靜態頁面的話,Jade對你很有幫助Jade - Template Engine
使用類似於Normalize.css: Make browsers render all elements more consistently. 的東東幫你重置browser rendering。
以上準備完畢就可以切圖了。推薦使用Atom, Brackets, Sublime等
開始切圖 1. 遵循BEM規範,建立對應HTML tag以及 classes,同時把預先準備好的grid system填補上去, Example HTML:
&
&
&
&
&
&
&
&
&
&
&
&- &Pricing&&
&- &Features&&
&- &Blog&&
&- &Sign in&&
&- &Join us!&&
&
&
&
因為有了BEM規範了HTML class,所以在寫CSS的時候會輕鬆許多,如果使用CSS preprocessor效果更加。
2. 已經有了基本的HTML Skeleton以及對應的grid system,下一步就是CSS拉。 為了提高效率和增加重複使用率,可以使用Sass的mixin和extend功能, Example Scss:
@mixin serif($normal:false, $heading: false){
@if $normal {
font-family: "font-name", Georgia, serif;
} @else {
font-family: "alt-font-name", Helvetica, Arial, san-serif;
}
@if $heading {
font-weight: 700;
} @else {
font-weight: 400;
}
}
3.使用PerfectPixel PerfectPixel by WellDoneCode 等瀏覽器插件,增加網頁精確度以及優化CSS。
總結:
切圖前最好也相對了解整個網站和產品的Structure,這樣可以更好的構建HTML和規範BEM。慢慢切多了就會總結一套對自己行之有效的方法。希望以上對你有幫助。
我反正是兩個一塊寫的,有時候心情好,順便實現一點簡單的js
HTML 和 CSS 一般是同時寫的。
先拆分成大塊的布局,然後逐步拆分細化,最後精確到像素。
學習開發:混起來寫,逐步看效果。最後重構一遍。成熟開發:(js和後端api框架)&>特定項目html&>相應css&>相應js&>相應後端邏輯,依次。
瀉藥,
1、花點時間審稿很重要,一看結構二看公私有樣式。
2、心中有數先出結構;3、樣式後續
首先,寫CSS通用架構。
包括:1 元素統一配置,padding margin display等,抹平瀏覽器差異。2 布局和柵格系統。3 資源,字體圖標什麼的。然後,根據頁面設計,提取從通用的風格樣式,作為主題樣式。再之後,是一些強調性樣式,如特殊顏色字體設么的。
到此為止,都是公共樣式,在項目開始時就應該完成。
最後,是頁面專有樣式,根據頁面設計寫。
按照這樣的流程,拿到一個頁面後首先考慮的是頁面結構的劃分,標題 導航 正文 側欄等
然後考慮的是布局,盡量用公共CSS實現,一般來說柵格系統套用都可以做到。風格樣式也盡量用項目的主題實現。最後剩下的部分才是需要寫的CSS。
最後的結論是,從整個項目來說,是先有的CSS樣式,後有的具體HTML頁面。
但是就單個頁面來說,的確是先寫HTML,後寫CSS。如果沒有事先寫好的公用CSS,個人傾向於先寫公用CSS,再寫頁面。
額。。邀請也要按照基本法
上面這麼多答案還不滿意么。。。
好吧,我說個不一樣的:
工程型項目的時候,會先寫CSS / LESS,設計稿中很多東西和框架是完全不同的,比如框架中定義的留白是20px,而實際工程中邊距是15px,甚至手機留白按照百分比計算(0.5%),而同樣的頁面PC留白是固定像素,這樣的話需要在設計稿出來的時候進行分析的時候統一處理
於是我們有了所謂的預處理,包括但不限於以下樣式:
* { font-family : "黑體", sans-salf; ... } // 全局樣式,通常會進行字體設置
h1 ~ h6 { font-size : xx; } // 文字樣式,通常會進行響應式的調整
ul { list-style : none; } // 最常用的去除所有無序列表前綴
a { color : #333; } // 系統默認的藍色鏈接樣式實在是太煞風景
... { ... } // 以及更多
啊,以上只是舉個例子,更有甚者。。。
好吧,稍微有點跑題,這已經不僅僅是寫一個頁面的事情了。。。摺疊我吧
個人愛好。
我喜歡看一下交互圖,然後腦海中大概分析下怎麼解決。然後 把html 結構寫出來後 再去補充css。 不過中間會有折回。。。比如 上訴的正常的方法是分析-&>找到一個解決辦法-&>寫html-&>寫css-&>寫js。
經常 寫css時發現,這種css不好 或者 不通用 或者 不能解決問題。
這時候就去從新 分析-&>,,,,,,,這是我的個人愛好,,
先寫html,然後用我寫的這個工具生成less html2less
我通常,在大致框架構思好以後,用PS做出來,然後寫代碼慢慢調整。
先不是寫代碼,是分析設計,哪些模塊有通性可重用,怎麼分割怎麼起名,以後有什麼拓展的可能性…打好以上腹稿,我會先寫HTML,從全局框架到分割好的小模塊,從通用模塊如頁頭頁腳到比較獨特的模塊,從首頁列表頁內容頁同類型的一起寫,不同後台需要的結構可能還不一樣…然後寫CSS,一邊寫一邊會檢查HTML結構有沒有疏漏,兼容性能不能做好,有的話進行調整。先寫比較通用的標籤的樣式,再細化到不同模塊,覆蓋插件的初始樣式。然後魔法就來了,有些模塊只要覆蓋個別樣式就能完成。通常會最後寫JS,同時會寫因為操作dom所需要的一些CSS樣式,這時HTML就基本不需要動了。
當然是先寫html 然後再css 這個叫分治法
先布局,然後每一個區域寫完html就寫相對應的css
這個得有區分,根據具體項目以及在項目中所處的位置。
一個人寫頁面的時候,如果是大型項目,先寫css框架,以及一些公用的樣式, @felixgrey 說的就不錯;讓後,分模塊寫css,再寫html;如果是小頁面,建議先考慮布局,可以先在紙上畫清楚,然後寫css,再寫html;當然,如果為了鍛煉自己的布局能力,你也可以把小頁面當做大項目來寫。
團隊合作的話,就不是先寫哪樣,後寫哪樣啦。是先得商量,將整個項目設計的前端頁面拆開,然後確定寫的順序。如果你習慣了,而且效率不錯,就別執拗於順序了。都一樣。但重要的是,一定得分模塊。
熟練了閉著眼睛寫。
推薦閱讀: