通用垂直居中方法兼容各浏览器-改进
来源:广州中睿信息技术有限公司官网
发布时间:2012/10/21 23:25:16 编辑:admin 阅读 331
之前写了一篇“拍脑门”得来的在各浏览器都能垂直居中的方法,要兼容各大浏览器,真的不得不借助脚本(JQuery已经使写脚本跟写CSS差不多了),大体思路就是取得要被居中元素的高度和

之前写了一篇“拍脑门”得来的在各浏览器都能垂直居中的方法,要兼容各大浏览器,真的不得不借助脚本(JQuery已经使写脚本跟写CSS差不多了),大体思路就是取得要被居中元素的高度和其容器的高度,计算根据两个高度差计算出一个top来,随手写来,测试全部通过,不过事后一样,之前的脚本应该改良一下,不多说,直接给代码:

之前的实现方法:

    <script src="scripts/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(
function () {
            FixIt_Vertically(
"div1");
        });
        
function FixIt_Vertically(id) {

            var myheight = $("#" + id).outerHeight();
            
var myfatherheight = $("#" + id).parent().height();
            
var mytop = (myfatherheight - myheight) / 2;
            $(
"#" + id).css("position""relative").css("top", mytop + "px");
        }
    
</script>

改良后的代码:

    <script src="scripts/jquery.js" type="text/javascript"></script>
    <script type="text/javascript">
        $(document).ready(
function () {
            FixIt_Vertically(
"vertically");
        });
        
function FixIt_Vertically(theclass) {
            $("." + theclass).each(function () {
                myheight 
= $(this).outerHeight();
                myfatherheight 
= $(this).parent().height();
                mytop 
= (myfatherheight - myheight) / 2;
                $(
this).css({ "position""relative""top": mytop });
            });
        }
    
</script>

 

看出来了吧?改进的地方就是把原来的id改成了class,这样,只要给每一个要垂直居中的元素加上一个vertically类(class="vertically"),就OK了。

附:

实际使用中再发现什么问题我再来改。

感谢@吝啬你的温柔



联系我们CONTACT 扫一扫
愿景:成为最专业的软件研发服务领航者
中睿信息技术有限公司 广州•深圳 Tel:020-38931912 务实 Pragmatic
广州:广州市天河区翰景路1号金星大厦18层中睿信息 Fax:020-38931912 专业 Professional
深圳:深圳市福田区车公庙有色金属大厦509~510 Tel:0755-25855012 诚信 Integrity
所有权声明:PMI, PMP, Project Management Professional, PMI-ACP, PMI-PBA和PMBOK是项目管理协会(Project Management Institute, Inc.)的注册标志。
版权所有:广州中睿信息技术有限公司 粤ICP备13082838号-2