CSS中相對(duì)定位和絕對(duì)定位的區(qū)別是什么,相信很多沒有經(jīng)驗(yàn)的人對(duì)此束手無策,為此本文總結(jié)了問題出現(xiàn)的原因和解決方法,通過這篇文章希望你能解決這個(gè)問題。
成都創(chuàng)新互聯(lián)公司是專業(yè)的安岳網(wǎng)站建設(shè)公司,安岳接單;提供成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行安岳網(wǎng)站開發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來合作!
CSS相對(duì)定位和絕對(duì)定位區(qū)別
CSS相對(duì)定位
CSS相對(duì)定位是一個(gè)非常容易掌握的概念。如果對(duì)一個(gè)元素進(jìn)行CSS相對(duì)定位,它將出現(xiàn)在它所在的位置上。然后,可以通過設(shè)置垂直或水平位置,讓這個(gè)元素“相對(duì)于”它的起點(diǎn)進(jìn)行移動(dòng)。
如果將top設(shè)置為20px,那么框?qū)⒃谠恢庙敳肯旅?0像素的地方。如果left設(shè)置為30像素,那么會(huì)在元素左邊創(chuàng)建30像素的空間,也就是將元素向右移動(dòng)。
#box_relative{ position:relative; left:30px; top:20px; }
如下圖所示:
注意,在使用CSS相對(duì)定位時(shí),無論是否進(jìn)行移動(dòng),元素仍然占據(jù)原來的空間。因此,移動(dòng)元素會(huì)導(dǎo)致它覆蓋其它框。
設(shè)置為CSS絕對(duì)定位的元素框從文檔流完全刪除,并相對(duì)于其包含塊定位,包含塊可能是文檔中的另一個(gè)元素或者是初始包含塊。元素原先在正常文檔流中所占的空間會(huì)關(guān)閉,就好像該元素原來不存在一樣。元素定位后生成一個(gè)塊級(jí)框,而不論原來它在正常流中生成何種類型的框。
CSS絕對(duì)定位
CSS絕對(duì)定位使元素的位置與文檔流無關(guān),因此不占據(jù)空間。這一點(diǎn)與CSS相對(duì)定位不同,CSS相對(duì)定位實(shí)際上被看作普通流定位模型的一部分,因?yàn)樵氐奈恢孟鄬?duì)于它在普通流中的位置。
普通流中其它元素的布局就像CSS絕對(duì)定位的元素不存在一樣:
#box_relative{ position:absolute; left:30px; top:20px; }
如下圖所示:
CSS絕對(duì)定位的元素的位置相對(duì)于最近的已定位祖先元素,如果元素沒有已定位的祖先元素,那么它的位置相對(duì)于最初的包含塊。
對(duì)于定位的主要問題是要記住每種定位的意義。所以,現(xiàn)在讓我們復(fù)習(xí)一下學(xué)過的知識(shí)吧:CSS相對(duì)定位是“相對(duì)于”元素在文檔中的初始位置,而CSS絕對(duì)定位是“相對(duì)于”最近的已定位祖先元素,如果不存在已定位的祖先元素,那么“相對(duì)于”最初的包含塊。
注釋:根據(jù)用戶代理的不同,最初的包含塊可能是畫布或HTML元素。
提示:因?yàn)镃SS絕對(duì)定位的框與文檔流無關(guān),所以它們可以覆蓋頁(yè)面上的其它元素??梢酝ㄟ^設(shè)置z-index屬性來控制這些框的堆放次序。
看完上述內(nèi)容,你們掌握CSS中相對(duì)定位和絕對(duì)定位的區(qū)別是什么的方法了嗎?如果還想學(xué)到更多技能或想了解更多相關(guān)內(nèi)容,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝各位的閱讀!