1、絕對(duì)定位元素溢出父元素如何隱藏
通常应狱,為了讓DIV子元素超出部分隱藏共郭,都是在父元素設(shè)置overflow:hidden,這樣即可防止子元素?fù)伍_(kāi)父元素疾呻,使子元素能夠溢出隱藏落塑!
而絕對(duì)定位的元素若超出其父元素的邊界,要想將溢出的部分隱藏罐韩,則憾赁,想隱藏在哪個(gè)祖先里,該祖先必須同時(shí)設(shè)置position:relative/absolute/fixed和overflow:hidden的值散吵。
2龙考、絕對(duì)定位常見(jiàn)誤區(qū):
絕對(duì)定位元素相對(duì)的元素是它最近的一個(gè)祖先,該祖先滿足:position的值必須是:relative矾睦、absolute晦款、fixed,若沒(méi)有這樣的祖先則相對(duì)于<html>元素(或者枚冗,body元素)進(jìn)行定位缓溅。偏移值由其top、bottom赁温、left坛怪、right值確定。
通常我們常聽(tīng)說(shuō):CSS絕對(duì)定位在沒(méi)有其他有除static定位的包含塊的情況下是以<html>元素進(jìn)行定位股囊,如果要想相對(duì)當(dāng)前元素的父元素來(lái)定位袜匿,父元素一定要設(shè)置position:relative。
前面一句是沒(méi)有問(wèn)題的稚疹,在沒(méi)有父元素設(shè)置定位的話居灯,默認(rèn)就是以<html>元素來(lái)定位的,但要想相對(duì)父元素定位内狗,父元素除了設(shè)置相對(duì)定位(relative)怪嫌,設(shè)置absolute也是可以的。
正確的理解姿勢(shì)是:
1.相對(duì)定位:相對(duì)于塊級(jí)元素(或行內(nèi)塊)自身位置進(jìn)行定位柳沙;
2.絕對(duì)定位:絕對(duì)定位的盒子是相對(duì)于離它最近的一個(gè)已定位的盒子進(jìn)行定位的(默認(rèn)是body)岩灭;
注意:css描述的絕對(duì)定位概念,沒(méi)有說(shuō)明是離他最近的一個(gè)已相對(duì)定位的盒子進(jìn)行定位的偎行,所以離他最近的盒子的定位可以是相對(duì)定位(relative)和絕對(duì)定位(absolute)的川背,但是在開(kāi)發(fā)中贰拿,一般是父盒子設(shè)置相對(duì)定位的,但是不代表只能是相對(duì)定位熄云。
舉個(gè)例子:
//CSS部分
<style>
.father{
width: 300px;
height: 300px;
background-color: orange;
position: absolute;
top:50%;
left:50%;
margin-top: -150px;
margin-left: -150px;
}
.son{
width: 100px;
height: 100px;
background-color: pink;
position: absolute;
left:0;
top:0;
}
</style>
//html部分
<div class="father">
<div class="son"></div>
</div>
.father元素絕對(duì)定位是相對(duì)body的膨更,這個(gè)沒(méi)問(wèn)題,主要看.son元素缴允,他自身設(shè)置絕對(duì)定位荚守,父元素.father也有絕對(duì)定位,但這個(gè)子元素是相對(duì)于有絕對(duì)定位的父元素來(lái)定位的练般,而不是body矗漾。