新聞中心
面試的時(shí)候問個(gè)css的position屬性能刷掉一半的人這是啥情況……其實(shí)這問題我本來打算的是可以順著一路扯到

normal flow、containing block、bfc、margin collapse,base line,writing mode,bidi,
這樣一路問下去的,奈何***個(gè)問題(親我真的只問了position有哪些取值和行為?。┚捅瘎×恕?/p>
position屬性常用的取值static、relative以及absolute和它們的基本行為是每個(gè)前端都應(yīng)該掌握的。這包括relative和absolute的定位原點(diǎn)。
fixed舊版本IE不支持,但是一個(gè)對(duì)技術(shù)有熱情的工程師也是應(yīng)該了解的。
有過研究工程師可以知道absolute的containing block計(jì)算方式跟正常流不同,當(dāng)然如果沒讀過標(biāo)準(zhǔn)的話,表述方式不一定是這樣。
對(duì)CSS布局有深入研究的工程師會(huì)知道position跟display、margin collapse、overflow、float這些特性相互疊加后的行為。
說句老實(shí)話,在狀態(tài)好的情況下,若是被問到這個(gè)題,我還能和他說道說道(很淺的那種),在狀態(tài)一般的情況下,我估計(jì)自己也直接悲劇了,那造成這個(gè)的是什么原因呢?
答案毫無疑問的是我CSS水平是很水的,當(dāng)項(xiàng)目經(jīng)驗(yàn)不夠的情況下,看書是不能記住一些東西的,所以還是需要項(xiàng)目實(shí)踐。
于是抱著我水我自豪的態(tài)度,我來試試他這道題水到底有多深,居然會(huì)刷掉一半的人。
思考過程
這個(gè)題若是單純提出position的幾個(gè)屬性,倒沒什么問題,但我們來看看他的發(fā)散:
normal flow(一般流)
containing block(包含塊)
bfc(我深刻的意識(shí)到我一定見過他,但可恥的忘的一干二凈了?。?/p>
margin collapse(搞不懂啊,應(yīng)該是float引起的元素坍塌吧?)
base line (基線對(duì)齊)
......
后面的就完全沒有印象了,完了我想說,大哥我們能說中文嗎。。。至少給點(diǎn)解釋吧,對(duì)于css菜鳥來說看題目都很吃力的。。。。(掩面而泣)
驚嘆
仔細(xì)閱讀題目并加以分析后,你會(huì)發(fā)現(xiàn)他這潭水是很深的,這道題快5分鐘可結(jié)束,慢可問上半個(gè)小時(shí),而且問完了CSS都可以忽略不計(jì)了。。。
為什么這么說呢?
① position主要用于頁面布局,對(duì)css布局熟悉的朋友能很好的運(yùn)用他布局,甚至拋棄float那個(gè)魔鬼(昨天我做了一道面試題就不用float布局,因?yàn)閒loat本身是不用于布局的,這么做的大哥,我不知道對(duì)不對(duì),但我認(rèn)為既然float不應(yīng)該用于布局,我們便應(yīng)該下意識(shí)的少用)。
② 在他發(fā)散過程中由將塊級(jí)元素與行內(nèi)元素提到了,甚至細(xì)分到了行內(nèi)元素的垂直對(duì)齊方式,更有可能發(fā)散到line-height上面,不可謂不深?。?/p>
③ 在以上能做好的都已經(jīng)不錯(cuò)了,然后這道題更是可以細(xì)致到各種應(yīng)用細(xì)節(jié),比如在IE7一下瀏覽器使用relative的z-index會(huì)有什么問題,比如在布局上你會(huì)使用float嗎,float為什么會(huì)引起元素坍塌,你如何解決元素坍塌......
......
然后的然后,他這道題真的發(fā)散開了就很大了,對(duì)于我這種水貨來說,看不懂啊,于是便只能在自己理解的方面做下說明,于是我們開始吧!
基本視覺格式化
凡是不能一蹴而就,我們一步步來,先了解點(diǎn)基礎(chǔ)的東西吧
我們?cè)谑褂肅SS過程中會(huì)發(fā)現(xiàn)很多“怪異”的現(xiàn)象,如果我們掌握了CSS中視覺表現(xiàn)模型是如何工作的了,那么是不是會(huì)更加接近真理呢?
基本框
CSS假定每個(gè)元素都有一個(gè)基本框,這個(gè)矩形框便是我們所說的元素框(在CSS3出現(xiàn)后圓形、團(tuán)原型也不是不可能哦)
各個(gè)元素框中心有一個(gè)內(nèi)容區(qū)(content area),這個(gè)內(nèi)容區(qū)域會(huì)有以下屬性:內(nèi)邊距,外邊距,邊框。我這里又引用下其他大哥的圖吧:
包含塊
因?yàn)槊總€(gè)元素都相對(duì)于其它包含塊擺放,所以包含塊就是一個(gè)元素的“布局上下文”,
- 刀狂劍癡葉小釵


咨詢
建站咨詢