目錄:css
文章背景:這是一次內部交流會的PPT,經過文字的方式記錄下來,分享給更多的同窗,同時也因爲我的能力水平還有很大的成長空間,也想借此機會再深化學習一下,因此這事利人利已,千秋萬代。因爲我的知識範圍有限,不免有遺漏或不當之處,歡迎拍磚。這次交流會作了一些新的創新或嘗試,咱們嘗試從最簡單的基礎來彌補其它交流會的缺陷,主張以興趣爲導向,以實戰來學習,以交流來成長,以你們共同參與互動的方式,讓前端入門學習進階提升更爲便捷或有趣,主張適當的方法大於過分的時間投入。並且以一個完整系列的形式,完成前端從淺到深,從入門到進階的這樣一個學習過程,在必定程度上綁定了交流人員的粘合度。html
至因此選擇新浪,除了如下羅列的幾個特色以外,最重要的是css前端的學習都須要有一個量或質的變化的過程,而新浪剛好是這方面的一個特例、表明或巔峯,頁面很長,數據量最多,版式又較爲簡單,絕不誇張的說,只要瞭解新浪的這種種玩法,之後相似的基本都沒有困難。並且前端雖然沒啥技術含量,但比較難控制,不少人都玩很差。因此我推薦這種「倒序法」,倒着學習的思路,可以迅速的抽絲剝繭,很快的把握問題的核心關鍵點,而後投入精力去攻克,這樣學習起來可能更容易一些。前端
先去看看新浪這個通過歷史或數據洗禮的網站,而後學習着重構一遍,達到:認識代碼,熟悉代碼,瞭解代碼,組織代碼,最後達到控制代碼。一個巨大的靜態頁面的控制也是須要技巧或經驗來支撐的。下面的分享就此思路逐漸展開。而後咱們的分享側重於,經驗思路,像一些技術的細節,可能不怎麼關注,爲了上下文的必要,只是略提一下,因此這個分享教程並非最全面的,有些東西仍是須要本身去掌握。css3
其實縱觀當前前端的趨勢,每一個行業或業務特色比較明顯的頁面類型的都有一個頂尖數據量比較大的業界表明衝在前面,後面的同窗在慢慢的靠近。好比新聞類是:新浪,騰訊,網易,搜狐;電商類:淘寶,京東,天貓,噹噹,亞馬遜,易迅;還有其它通訊類,醫藥類,金融類,政府類,飲食類,訂餐服務類,旅遊類,機票預訂類,還有其它銀行,汽車,二手車,房產,社區,交友,娛樂,軍事,體育,遊戲,文學,視頻等等。
對於分類我在下面這篇文章中也早有羅列,有興趣的猛戳。
web前端開發分享-css,js提升篇web
計劃接下來在時間或能力容許的範圍內想從新學習梳理或深刻了解一下這些類型網站佈局的特色或難點,以此來達到我的學習方便他人的目的。固然事情可能沒有咱們想象的那麼悲觀,雖然有上面不少類型的網站。其實按通常的規律,經過一兩個類型的學習,掌握基礎知識或學習的方法以後,剩下就是積累解決問題的經驗或深刻彌補知識密度。咱們的目的不是爲了一個一個的深刻這些海量的網站,而是經過學習這種線上通過大數據洗禮的界面的思路或風格,以此達到前端入門成長的目的。經過平常可見的實例,來跟苦悶的理論知識結合,從而生而動,動而活的學習。我想,這確定是一條不同的成長之路。面試
頁面總體看起來很複雜,其實無悲是如下幾種結構形式:編程
因爲JavaScript是另一個話題,因此咱們此次討論的範圍主要在html,css兩方面,抽絲剝繭,先從簡單入手,後期在探討JavaScript相關問題。
通常html,css兩塊,難點在css上,但大部分兼容問題出錯卻出在html結構上。也就是說,兼容性問題的根本是因爲經驗不足開發者寫的html結構不合理形成的,細節後邊會有介紹。那怎麼樣的佈局纔算是合理的結構?這是咱們此次交流的核心,就是解構新浪的結構,以此來提升本身的佈局能力,主要是提升如何合理佈局的能力。固然,他的佈局不是沒有問題,裏邊的小問題,這將會在後期慢慢披露。形成這些問題的緣由我的猜想多是歷史緣由,也多是版本緣由,無論怎麼說,這毫不是我的致使的。一個bug的成型背後有複雜的緣由,有時間的,也有空間的。後端
Float佈局,說清float,得先了解什麼是塊元素,什麼是內聯元素。float佈局其實就是塊元素,內聯元素的佈局,只是裏邊的規律比較難掌握,過於靈活。
另外頁面上的東西是面性的,所謂面着是點構成線,線構成面,因此面裏邊的東西能夠劃分爲小方塊,這就是塊元素最初的物理參考來源,因爲小方塊是一個完美的形態,爲了咱們佈局的需求,也爲了處理問題的方便,因此抽象拆分爲兩種:塊元素或內聯元素。其實這跟編程語言的數據類型很像,數據類型出現的目的就是方便咱們更好的還原現實世界中的問題模型。 瀏覽器
Position佈局:
position的出現是爲了補充float不能解決的一些佈局難題,float佈局的特色是在一個平面內進行有限範圍內的佈局,而position佈局他的幾個屬性基本都不受傳統屬性的約束,大部分都在通常頁面默認的佈局以外,從而使css的靈活性更爲加強。
position總共有這麼多inherit, static, relative, fixed, absolute, initial,sticky(firefox)。
爲何要了解這麼多,並且好幾個貌似不是通用的。一方面是爲了擴充知識面,另一方面爲了應對bt的面試。
CSS position Property
position:sticky介紹 安全
另外其它的教程推薦:
如下幾種的區別主要在語義化方面,真正呈現的表現形式能夠一致,沒有大的區別。有時候因爲ul,li結構的複雜,我經常使用dl,dd來實現一些差別化的列表。
全部頁面上的字體有兩塊能夠全局控制:
body{color:red;}
a,a:link,a:visited{color:blue}
還有一處是局部樣式的控制,但有時候每每是兩部分均可能起做用,即全局+局部,css的疊加特性的展示,因此在調試時要仔細觀察。
.nav a,.nav a:link{color:red;}
通常面試必考題目,有人說過於理論,其實css不考這個也沒其它可考的,另外這裏邊細節仍是有不少,仔細看區別仍是挺大的。
這裏邊列出只是經常使用的尤爲測重於pc端的,css3.0又添加了很多,因此這塊不敢大意,東西還很多。
CSS 選擇器參考手冊
下面的實例不一一詳解了,有時候答案給的太快,對學習沒一點好處。學習的過程就是:艱難的獲取答案的過程。
1. 通配符選擇符 : *
2. 類選擇符:.
3. 包含選擇符:.a .b
4. 子選擇符:.a > .b
5. 相鄰選擇符:.a + .b
6. 屬性選擇符:body
7. ID選擇符:#
8. 選擇符的組合關係:.a,.b
body,h1
9. 僞類及僞對象選擇符::after
::after
圖片是拖垮頁面加載性能的主要對象,因此圖片是否切好是關係頁面性能的主要指標,如何在保持頁面質量的前提下又能快速的加載,這中間的平衡是須要時間去沉澱的。主要的區別在於格式。
圖片的
透明有兩種,一種是單層透明,另一種是雙層透明。
CSS背景顏色屬性值轉換
- 單層透明:功能差別透明處理。
filter:progid:DXImageTransform.Microsoft.gradient(enabled='true',startColorstr='#99000000',endColorstr='#99000000');background:rgba(0,0,0,.6);
- 優勢:能夠用一層就能夠實現透明
- 缺點:須要計算。
- 雙層透明:用外相對裏絕對的思路實現差別透明。
filter:alpha(opacity:80);opacity:0.8);
- 優勢:代碼簡單,實現快捷。
- 缺點:層透明內容透明。
總結:寫出來的內容對現場分享作了有效的補充,可是沒有現場共同交流的快樂或記憶,是比較冰冷或易忘的,因此從業人員多交流是一個值得提倡推廣的事情。
最後建議你們必定要享受這個編碼的過程,前端是一個創造性的崗位,你的創造正在改變着世界,應該爲這個職業感到驕傲或自豪。
未完待續...,下期更精彩。
前端開發qq羣:389875212 ,禁止閒聊,非喜勿進~!