在CSS遮蓋層基礎上進行彈出層垂直置中

來源:互聯網
上載者:User

本篇是繼上篇《CSS實現遮蓋層》而來。在上一次的基礎上加上了彈出層的垂直置中。

需要:1. 彈出層固定高,或者通過js去計算出來的高。

具體實現: 1. 在彈出層處加一層類似遮蓋層的包裹;2.設定寬度,這個是必須的。3. 對彈出層使用:margin-left & margin-right: auto; (水平置中); 4. 對彈出層使用: top: 50%; margin-top: -height/2+'px'; 5. 就是這樣,沒有了。

Demo執行個體:

<!doctype html><html><head><title>CSS 實現遮蓋層</title><meta charset="gb2312" /><style>/* the style for layer or mask */body{_height:100%;}#mask, #layer{display: none;position:fixed;_position:absolute;top: 0;left: 0;width: 100%;height: 100%;z-index: 44;}#mask{z-index: 33;background-color: #101010;filter: Alpha(opacity=40);opacity: .4;}#layer .bd{position: relative;top: 50%;width: 200px;/* 自己設定了高度 *//*margin: -100px auto 0 auto;height: 200px; *//* 這個是設定值,與上面的-100px相呼應的 *//* 通過js去做處理的方式 */margin-left: auto;margin-right: auto;/**/background-color: #fff;}/* page show */#page{width:960px;margin:0 auto;height:1000px;text-align:center;background-color:#c00;}</style></head><body><div id="page">)))))))))))))CSS 實現遮蓋層測試(((((((((((((((</div><div id="mask"></div><div id="layer"><div class="bd"><p>看看是否是垂直置中了?????</p><p>sssssssssssssss<p>ssssssssssssss<p>ssssssssssss<p>ssssssssss<p>ssssssss<p>ssssss<p>sssss<p>sss<p>ss<p>s</div></div><script>(function(mask){var layer = document.getElementById('layer');// for IE 6if(document.uniqueID && !window.XMLHttpRequest){document.getElementsByTagName('html')[0].style.overflow = 'hidden';}mask.style.display = 'block';layer.style.display = 'block';/* js 擷取高度 */var bd = layer.firstChild, h;if(bd.nodeType==3)bd = bd.nextSibling;h = bd.clientHeight;bd.style.height = h + 'px';bd.style.marginTop = -h/2 + 'px';/**/})(document.getElementById('mask'));</script></body></html>

相關文章

Alibaba Cloud 10 Year Anniversary

With You, We are Shaping a Digital World, 2009-2019

Learn more >

Apsara Conference 2019

The Rise of Data Intelligence, September 25th - 27th, Hangzhou, China

Learn more >

Alibaba Cloud Free Trial

Learn and experience the power of Alibaba Cloud with a free trial worth $300-1200 USD

Learn more >

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。