zoukankan      html  css  js  c++  java
  • div在浏览器窗口中居中

    让div相对于浏览器窗口居中。

    方案一:纯粹使用CSS实现

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>测试文件</title>
    <style>
    #test {
        /*准备一个长200px 宽200px的div,背景设置成黄色*/
        width: 200px;
        height: 200px;
        background-color: #FC0;
        /*下面是核心代码*/
        margin: auto;
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        right: 0;
    }
    </style>
    </head>
    
    <body>
    <div id="test"> </div>
    </body>
    </html>

    上面这套方案是比较完美的方案,即便缩放浏览器窗口也能保证div居中。

    方案二:利用Javascript实现

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="utf-8">
    <title>测试文件</title>
    <style>
    #test {
        width:200px;
        height:200px;
        background-color:#FC0;
        position:fixed;
    }
    </style>
    <script>
    window.onload = function(){
        var screen_width = window.screen.availWidth; //获取屏幕宽度
        var screen_height = window.screen.availHeight; //获取屏幕高度
        var X = (screen_width - 200)/2;
        var Y = (screen_height - 200)/2;
        var div = document.getElementById("test");
        div.style.left=X + "px";
        div.style.top=Y + "px";
    };
    </script>
    </head>
    
    <body>
    <div id="test"></div>
    </body>
    </html>

    几个关键点说明下:

    position:fixed 决定div是相对于浏览器窗口居中,而不是相对于一般意义上的父窗口居中。

    必须使用window.onload保证在DOM加载完毕后才执行js,<script>标签的defer属性理论上也能实现此效果,但defer属性只有IE浏览器支持,而且,我用了下,没效果。

  • 相关阅读:
    Git忽略提交规则
    vue-echarts, vue 图表数据处理; axios 跨域代理
    css 画图
    span 空标签 width 设置无效 解决办法
    css 属性备忘录
    js 操作数组的方法 split()
    js 取整,四舍五入 Math.ceil()
    js 强制类型转换 parseInt,parseFloat,number
    dom级别和对应事件级别;事件流
    mac 使用命令行向 github 提交代码
  • 原文地址:https://www.cnblogs.com/dige1993/p/4605612.html
Copyright © 2011-2022 走看看