首先談談!important問題的引起(盒模型問題):
在css標準中,乙個盒模型包括4個區,分別是:內容、內邊距(padding)、邊框(border)和外邊距(margin)。而width寬度的計算,css有它的標準。但是實際上,不同的瀏覽器的表現卻不同。比如,
firefox(ff)是準確按照css標準:width為內容的寬度,也就是說: 層的寬度 = width + padding(left and right) + border-width; 而ie則把width作為整個層的寬度: 內容的寬度 = width - padding - border-width;
ie的這種解析,被認為是乙個bug。但事實上,這種解釋也不無道理,人們在設計頁面的時候關注得更多的是盒子的大小,而不是內容的大小。正是因為瀏覽器的不同解析,給css的設計帶來一些困難。
針對這個問題,我們經常使用!important來區分firefox和ie6.0:
程式**: #content
firefox識別!important,而ie不識別,且!important的width優先順序高,因此ff理解為width: 400px,ie6.0理解為width: 414px,從而顯示就相同了。
但是問題出在ie7,ie7.0對!important有了識別能力,但是對盒模型的解析卻和ie6.0等一樣,從而造成很大的麻煩。也就是說,!important的方法在ie7.0下變得不適用了。 而一般的情況下,border的使用相對較少的,並且border-width一般較小,因此最主要的問題就出在padding上了。網上很多人總結的經驗是:padding要盡量少用,能用margin
的,就別用padding。這種說法是消極的,問題的解決不應該總是迴避。
盒模型問題的解決:
這樣問題就可以得到解決,ff,ie6.0以及ie7.0都會獲得相同的顯示效果。更重要的是,沒有使用任何css hack。
這種解決方法可以說是最終的方案,使用css hack的方法只是目前過渡階段的臨時方法。
理論上,這種方法應該適用於各種瀏覽器。
但是本人認為除非大型**,相容ff,ie6.0,ie7.0已經足夠,這裡也是主要針對這三個最主流的瀏覽器,ie更低版本,以及其他瀏覽器上的可行性有待驗證
《轉》關於房價
關於房價,如果短期有點看不清楚,有點不確定,我們拉長一點就會發現 全國人民,甚至全世界人民在內,都有這種感覺,就是永遠覺得房子貴,收入的 永遠追不上房價。房價一路飆公升,而且越漲越高。5 年前你覺得中國房價貴嗎,那時你買得起嗎?10 年前你覺得房價貴嗎,那時你買得起嗎?好了,現在我要問了,如果你現在...
轉 關於c 中namespace
namespace中文意思是命名空間或者叫名字空間,傳統的c 只有乙個全域性的namespace,但是由於現在的程式的規模越來越大,程式的分工越來越細,全域性作用域變得越來越擁擠,每個人都可能使用相同的名字來實現不同的庫,於是程式設計師在合併程式的時候就會可能出現名字的衝突。namespace引入了...
轉)關於Python中的yield
在介紹yield前有必要先說明下python中的迭代器 iterator 和生成器 constructor 一 迭代器 iterator 在python中,for迴圈可以用於python中的任何型別,包括列表 元祖等等,實際上,for迴圈可用於任何 可迭代物件 這其實就是迭代器 迭代器是乙個實現了迭...