通过JavaScript使Div居中并随网页大小改变而改变

yizhihongxing

要实现通过JavaScript使Div居中并随网页大小改变而改变,可以遵循以下步骤:

  1. 给该Div设置样式,使其垂直和水平居中,并将左右和上下的边距都设置为auto。例如:
.div-center {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
}
  1. 使用JavaScript获取该Div元素,并计算出居中需要的偏移量。例如:
var div = document.getElementById('div-center');
var divWidth = div.offsetWidth;
var divHeight = div.offsetHeight;
var screenWidth = window.innerWidth;
var screenHeight = window.innerHeight;
var leftOffset = (screenWidth - divWidth) / 2;
var topOffset = (screenHeight - divHeight) / 2;
  1. 将计算出来的偏移量动态赋值给该Div的样式中。例如:
div.style.left = leftOffset + 'px';
div.style.top = topOffset + 'px';
  1. 使用window对象的resize事件,监听浏览器窗口的变化,并重新计算并设置居中偏移量。例如:
window.addEventListener('resize', function() {
  var divWidth = div.offsetWidth;
  var divHeight = div.offsetHeight;
  var screenWidth = window.innerWidth;
  var screenHeight = window.innerHeight;
  var leftOffset = (screenWidth - divWidth) / 2;
  var topOffset = (screenHeight - divHeight) / 2;
  div.style.left = leftOffset + 'px';
  div.style.top = topOffset + 'px';
});

示例1:一个固定大小的Div元素居中

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>居中的Div</title>
  <style>
    .div-center {
      position: absolute;
      top: 50%;
      left: 50%;
      width: 400px;
      height: 300px;
      background-color: #eee;
      transform: translate(-50%, -50%);
    }
  </style>
</head>
<body>
  <div id="div-center" class="div-center">
    <h1>这是一个居中的Div</h1>
    <p>你可以通过调整窗口大小来测试居中是否正常</p>
  </div>

  <script>
    var div = document.getElementById('div-center');
    var divWidth = div.offsetWidth;
    var divHeight = div.offsetHeight;
    var screenWidth = window.innerWidth;
    var screenHeight = window.innerHeight;
    var leftOffset = (screenWidth - divWidth) / 2;
    var topOffset = (screenHeight - divHeight) / 2;
    div.style.left = leftOffset + 'px';
    div.style.top = topOffset + 'px';

    window.addEventListener('resize', function() {
      var divWidth = div.offsetWidth;
      var divHeight = div.offsetHeight;
      var screenWidth = window.innerWidth;
      var screenHeight = window.innerHeight;
      var leftOffset = (screenWidth - divWidth) / 2;
      var topOffset = (screenHeight - divHeight) / 2;
      div.style.left = leftOffset + 'px';
      div.style.top = topOffset + 'px';
    });
  </script>
</body>
</html>

示例2:一个自适应大小的Div元素居中

<!DOCTYPE html>
<html>
<head>
  <meta charset="UTF-8">
  <title>自适应大小的居中Div</title>
  <style>
    .div-center {
      position: absolute;
      top: 50%;
      left: 50%;
      max-width: 90%;
      max-height: 90%;
      background-color: #eee;
      transform: translate(-50%, -50%);
    }
  </style>
</head>
<body>
  <div id="div-center" class="div-center">
    <h1>这是一个自适应大小的居中Div</h1>
    <p>你可以通过调整窗口大小来测试居中是否正常</p>
  </div>

  <script>
    var div = document.getElementById('div-center');

    function centerDiv() {
      var divWidth = div.offsetWidth;
      var divHeight = div.offsetHeight;
      var screenWidth = window.innerWidth;
      var screenHeight = window.innerHeight;
      var leftOffset = (screenWidth - divWidth) / 2;
      var topOffset = (screenHeight - divHeight) / 2;
      div.style.left = leftOffset + 'px';
      div.style.top = topOffset + 'px';
    }

    centerDiv();

    window.addEventListener('resize', centerDiv);
  </script>
</body>
</html>

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:通过JavaScript使Div居中并随网页大小改变而改变 - Python技术站

(0)
上一篇 2023年6月11日
下一篇 2023年6月11日

相关文章

  • css 相对浏览器动态居中永远保持在屏幕正中

    要实现CSS相对浏览器动态居中,需要注意以下几点: 1.要居中的元素必须是块级元素,并且设置宽度。因为只有块级元素才能够设置宽度,设置宽度是为了让元素有一定的大小,方便元素进行居中。 2.要让元素水平居中,需要使用margin属性。可以通过margin-left和margin-right设置左右的空白间距,使得元素水平居中。当使用具体数值的时候,需要注意居中…

    css 2023年6月9日
    00
  • angular4+百分比进度显示插件用法示例

    首先,我们需要使用npm安装一个名为ngx-progressbar的Angular插件,并将其添加到我们的项目中。 npm install ngx-progressbar –save 在app.module.ts中导入和添加NgProgressModule。 import { NgProgressModule } from ‘@ngx-progressba…

    css 2023年6月10日
    00
  • 深入剖析CSS变形transform(3d)

    深入剖析CSS变形transform(3d) 什么是Transform Transform 是 CSS3 中非常强大的一个属性。它可以让我们对元素进行各种变形操作,例如平移、旋转、缩放、扭曲等等,同时它也支持 3D 移动和变形。 Transform 的使用 Transform 属性包括很多个子属性,常用的有 translate、rotate、scale、sk…

    css 2023年6月10日
    00
  • 详解Vue学习笔记进阶篇之列表过渡及其他

    详解Vue学习笔记进阶篇之列表过渡及其他 什么是Vue过渡 Vue过渡是在Vue中实现元素的插入、更新和删除动画的方式。通过设置过度效果,可以让页面产生丰富多彩且生动的效果。 Vue过渡的基本用法 在Vue中使用过渡效果并不难,只需要使用Vue的<transition>组件来包裹需要过渡的元素即可。下面是一个使用过渡效果的简单示例: <tr…

    css 2023年6月10日
    00
  • CSS中px em rem区别与使用

    当我们设计网页时,经常需要指定元素的大小,字体大小等,而CSS中提供了三种单位:px、em和rem。本篇攻略将详细讲解这三种单位的区别和应用场合。 px单位 px(Pixel)是像素单位,也是CSS中最常用的单位。指定某元素的大小时,使用的就是px。px的大小是相对于显示器屏幕分辨率而言的,即1px等于显示器上的一个物理像素点。 例如,我们定义一个宽度为20…

    css 2023年6月10日
    00
  • 浏览器兼容之旅第二站:各浏览器的Hack写法让浏览器达到一致的渲染效果

    针对“浏览器兼容之旅第二站:各浏览器的Hack写法让浏览器达到一致的渲染效果”,我们可以分为以下几个方面进行介绍: 一、Hack概述 Hack(或称为CSS Hack),是指为了解决不同浏览器对CSS属性的兼容性问题而采取的针对特定浏览器的非标准写法。Hack的出现虽然解决了一部分浏览器兼容问题,但也有一定的副作用,如会导致CSS样式的不完全合法,增加代码负…

    css 2023年6月9日
    00
  • 浅谈inline-block及解决空白间距

    当使用CSS布局时,我们经常使用display属性来控制元素的布局。其中一个display属性值是inline-block。那么什么是inline-block呢?在本篇攻略中,我们将探讨这个属性,并回答解决这个属性可能引发的空白间距问题的方法。 什么是inline-block? inline-block是CSS中的一个布局属性,它的作用是将元素设置为内联块级…

    css 2023年6月9日
    00
  • CSS3悬停效果案例应用

    CSS3 悬停效果是网页设计中常用的一种效果,可以为网页增加交互性和美观性。下面是一个完整攻略,包含了如何使用 CSS3 实现悬停效果的过程和两个示例说明。 CSS3 悬停效果的实现过程 1. 使用:hover 伪类 我们可以使用 CSS3 的 :hover 伪类来实现悬停效果。下面是一个示例: <div class="box"&g…

    css 2023年5月18日
    00
合作推广
合作推广
分享本页
返回顶部