絕對定位才是WEB的精髓

2022-09-25 11:54:12 字數 2131 閱讀 4701

若是你從未碰到過此問題,並且非得用純css來實現,我想你一時半了也是束手無策吧。這裡不討論如何實現的細節,網上關於此問題的解決方法也是層出不窮,但都有共同點:複雜,取巧。

且不論純css的實現是否有意義,光是其css的**就違背的html的思想:用簡單的方法實現複雜的效果。這裡的簡單不僅僅是指**上的簡短,更重要的是體現一種容易實現的解決方案。顯然,先前提到的方案裡,用純css是最不容易實現的。當然,你已有現成的例子或許更加簡單,但更多的時候面對的是一些從未經歷過的問題,如果非得用純***實現的話,豈不是事倍功半。事實上,html裡包含的每個特徵都是為了簡化開發者的工作量而設計的。css,js,flash。。。以至於未來的html5,新的特徵不僅僅是為了豐富內容,更多的是為了簡化原先的實現!

仍舊是垂直居中的問題,我們拋棄純css,用js輔助css實現,會發現總體**並沒有增加多少;相反,每條每句都是那麼容易的理解,完全可以拋棄那一堆hack,以及一些晦澀的,沒有注釋根本沒法琢磨的css**。最終呈現在使用者眼裡的都是一樣的效果,又何不選擇一條實現簡單容易的方法,而要走崎嶇不平的山路呢?

有些人認為純***的實現是一種水平的體現,我認為是完全錯誤的觀點。你用純css製作了各種各樣的特效,說明這方面積累的比較多,你需要了解每個瀏覽器的怪異特徵,並逐一測試,還需不時的關心瀏覽器公升級過後這些特徵是否發生了變化。然而,配合利用js來實現,其解決方法就要簡單明瞭的多。

且不論渲染效率誰快誰慢,光是開發效率後者要高的多,即便是渲染要慢些,那也僅僅是忽略不計的那一丁點(事實上是不會比純css的慢)。此前也常常在網上看見不少人發帖提問,***效果用純css怎麼實現。大家於是開始琢磨,但不是這個瀏覽器有問題,就是那個瀏覽器不相容。最後終於出現正確答案,一大堆亂七八糟的cswww.cppcns.coms,甚至還加了無用的元素,僅僅是為了影響周圍一些變化。大家看了也是一知半解,但測試了下的確可以,於是紛紛發帖佩服,表示高深,很強大。

然而,回過頭仔細想想,把各種瀏覽器的怪異現象利用的淋漓盡致,究竟是一種高明呢,還是一種退步?在過去,ie獨佔天下的時候,web的開發時一件很輕快的事,程式設計客棧因為即使我們不按標準去做,但只要ie裡執行正常就可以了。那個時候應該有不少和我一datvbkkeb樣,連document.getelementbyid這樣基礎的東西都不知道,因為ie裡不需要。與其說是web開發,不如說是ie開發。然而,隨著各種瀏覽器的不斷冒出,web開發已不再像過去那樣輕快了,相反是件頭疼的事,我們需要花大量的時間在與內容毫不相干的事上,甚至連總結差異也成了web開發的一部分。每個瀏覽器雖然大致相同,但細節方面卻各有所異。過去ie的頁面在其他瀏覽器裡或許變得支離破碎,原因也很簡單,無非兩個:1.我們本來就沒有按照標準去做,2.其他的瀏覽器沒有嚴格按標準去實現。

說到底,web的最終釋義無非就是「標準」 二字。若是所有的的瀏覽器都遵循標準,所有的開發者也都按照標準開發,那麼就能實現「一次開發,到處瀏覽」。雖然後者可以做到,但是前者是幾乎是不可能的,至少在近幾年裡。更何況如今為了製作與眾不同的效果,幾乎是挖遍了每個瀏覽器私有的特效,這對web一統就更困難了。正因為出現了如此的局面,也成就了如今大紅大紫的flash,以至於越來越強大。因為它的確是做到了「一次編譯,到處執行」的理念。

用最簡單的辦法,讓各個瀏覽器表現出一致的布局特性,無疑就是用絕對定位。曾有人說過,用絕對定位做網頁的不是最菜的就是最高的。新手不了解css複雜的布局特徵,於是把所有的都變成了絕對定位,方便在編輯器裡拖來拖去,想放哪就放哪。當然這樣出來的html是極度臃腫的,靈活性也是相當的差,但是惟獨有乙個優點:所有的瀏覽器裡都是一致的布局。隨著新手程式設計客棧慢慢成長,也開始熟悉使用css主流的布局,以至到了跨瀏覽器裡測試的那天,才發現要相容所有的瀏覽器是何等的麻煩。然而絕對定位也是最高端的,因為它配合指令碼可以實現豐富的效果,google的個性化首頁,qq空間的可拖動專案欄。。。越來越多的創意布局展現出來,無不用到了絕對定位。我也曾經考慮過,通過指令碼讓整個**都是由絕對定位元素構成,這樣顯然是可以大量減少累贅的布局**,伺服器僅需提供指令碼檔案和內容資料,讓客戶端自己來生成,甚至是乙個門戶**。當然,這個想法似乎是誇張到了極點。

不過即便是用經典的div/css做網頁,也不代表絕對定位的不可行。對於區域性的一些效果,用了絕對定位就會比純css實現的簡單多了,相容性也更好了,就是用到了指令碼,但這算是乙個不完美嗎?為何非得為了乙個純理念而在一棵樹上吊死呢? html的本質就是:最簡單的方法實現它。(2011/3/13)

本文標題: 絕對定位才是web的精髓

本文位址: /web/css/30433.html

css的相對定位 絕對定位

相對定位 relative 絕對定位 absolute 相對定位 relative 相對於原來位置移動,元素設定此屬性之後仍然處在文件流中,不影響其他元素的布局 絕對定位 absolute 1.在父元素沒有設定相對定位或絕對定位的情況下,元素相對於根元素定位 即html元素 是父元素沒有 2.父元素...

絕對定位與相對定位的區別

相對定位是普通流定位,相對定位的元素出現在它在普通流該出現的位置,普通流你可理解為文件流就行了。這個佔空間的。絕對定位它的位置和文件流無關且不佔空間。關於position屬性 position 開放分類 html css web標準 網頁設計 bottom right top z index lef...

相對定位和絕對定位的區別

先說相對定位 跟它的名一樣,相對嘛,要有乙個參照物,但這個參照不是別的,是它自己呢,也就是說沒設相對定位的位置,那你會問了,設沒設都在那個位置為什麼要設呢,因為只有設定了才能使 top,left這些生效,也就是設了才能相對自己原來的位置偏移,原來的位置保留著,偏移後會把其它的層遮罩住。再說絕對定位 ...