關(guān)于position:relative的另一方面理解

最近一次寫(xiě)頁(yè)面遇到一個(gè)問(wèn)題,如圖:

![0D$)Y6]%%)(189VO1LEFW@W.png](http://upload-images.jianshu.io/upload_images/2304571-8fd84a948b792693.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)
為了解決相連位置邊框變粗的問(wèn)題,對(duì)每個(gè)單元格<li>采用了margin-left:-1px;的方式;得到了如下效果:

F{TFNXW)@GD%V$HCDH5$3PD.png

然后再在選中的li上設(shè)置position:relative;就能完美解決這個(gè)問(wèn)題了!

5(2K0(CUPAL1{8QDP`$YJPC.png

這里也就不解釋方案了,單獨(dú)的去看看position:relative;的作用;
首先,
當(dāng)采用了margin-left:-1px之后,右邊框沒(méi)有顯示設(shè)置效果。
我的理解是,左移了1px之后,邊框更類似于重疊在了一起,而后面的li左邊框覆蓋了前面對(duì)象的右邊框。
然后,
當(dāng)在選中元素上添加position:relative之后,該元素右邊框就沒(méi)有被覆蓋了。
此處position:relative的作用是,為了避免某一元素被其他文檔流中的元素覆蓋。

html代碼如下:
<ul class="filterUl clearfix">
<li class="filterActive">不限</li>
<li>二星/經(jīng)濟(jì)</li>
<li>三星/舒適</li>
<li>四星/高檔</li>
<li>五星/豪華</li>
</ul>
CSS代碼如下:
.filterUl{ width: 100%; font-size: 0; padding-left: 4px; } .filterUl li{ display: block; font-size: 8px; float: left; border:1px solid #eee; line-height: 35px; height: 35px; box-sizing: border-box; text-align: center; margin-left: -1px; width:20%; } .filterUl>.filterActive{ border-color:#3BB711; background: #E8FFEF; position:relative; }
一個(gè)有意思的情況,如果兩個(gè)相鄰的盒子里都各有一個(gè)position:relative,移動(dòng)到同一個(gè)位置,誰(shuí)覆蓋誰(shuí)呢?
上例中也是相鄰的元素設(shè)置position:relative,由于顏色不利于區(qū)分,便重新寫(xiě)了例子,使這個(gè)問(wèn)題更明顯、更便于深入。

[@P44~)P$@}(]5I{{82%V4D.png

若都設(shè)置相對(duì)定位relative,其中一個(gè)不寫(xiě)top/right/bottom/left,則‘沒(méi)寫(xiě)的’就會(huì)被‘寫(xiě)了的’覆蓋,
若均設(shè)置了都寫(xiě)了top/right/bottom/left就按照文檔流,后面的覆蓋前面的。
同理,若都沒(méi)寫(xiě)top/right/bottom/left,僅寫(xiě)了position:relative,也按照文檔流,后面的覆蓋前面的。
http://jsbin.com/hovobumazu/edit?html,css,output

以上為個(gè)人理解,歡迎大家討論!
轉(zhuǎn)載請(qǐng)注明出處;

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 問(wèn)答題47 /72 常見(jiàn)瀏覽器兼容性問(wèn)題與解決方案? 參考答案 (1)瀏覽器兼容問(wèn)題一:不同瀏覽器的標(biāo)簽?zāi)J(rèn)的外補(bǔ)...
    _Yfling閱讀 14,104評(píng)論 1 92
  • 各種純css圖標(biāo) CSS3可以實(shí)現(xiàn)很多漂亮的圖形,我收集了32種圖形,在下面列出。直接用CSS3畫(huà)出這些圖形,要比...
    劍殘閱讀 9,977評(píng)論 0 8
  • 1、垂直對(duì)齊 如果你用CSS,則你會(huì)有困惑:我該怎么垂直對(duì)齊容器中的元素?現(xiàn)在,利用CSS3的Transform,...
    kiddings閱讀 3,289評(píng)論 0 11
  • 學(xué)習(xí)CSS的最佳網(wǎng)站沒(méi)有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_閱讀 1,172評(píng)論 0 1
  • 西子湖畔 斷橋守候
    乘格帆閱讀 330評(píng)論 2 4

友情鏈接更多精彩內(nèi)容