在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>

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.