纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示

要实现未知宽高的元素在指定元素中垂直水平居中显示,我们可以使用CSS的Flex布局,或者是使用JavaScript来计算元素的宽高并动态设置CSS样式。

以下是一种使用JavaScript实现的方法:

  1. 获取当前元素和指定的父元素
const parentElement = document.getElementById('parent');
const element = document.getElementById('element');
  1. 获取元素的宽高
const width = element.offsetWidth;
const height = element.offsetHeight;
  1. 设置元素的位置
element.style.position = 'absolute';
element.style.top = `${parentElement.offsetHeight / 2 - height / 2}px`;
element.style.left = `${parentElement.offsetWidth / 2 - width / 2}px`;

完整代码如下:

const parentElement = document.getElementById('parent');
const element = document.getElementById('element');

const width = element.offsetWidth;
const height = element.offsetHeight;

element.style.position = 'absolute';
element.style.top = `${parentElement.offsetHeight / 2 - height / 2}px`;
element.style.left = `${parentElement.offsetWidth / 2 - width / 2}px`;

通过这种方式,我们可以把任何未知宽高的元素垂直水平居中显示在指定的父元素中。

以下是两个示例说明:

示例1: 将一个未知宽高的图片垂直水平居中显示在一个div中

HTML代码:

<div id="parent">
  <img id="image" src="example.jpg" alt="example">
</div>

JavaScript代码:

const parentElement = document.getElementById('parent');
const element = document.getElementById('image');

const width = element.offsetWidth;
const height = element.offsetHeight;

element.style.position = 'absolute';
element.style.top = `${parentElement.offsetHeight / 2 - height / 2}px`;
element.style.left = `${parentElement.offsetWidth / 2 - width / 2}px`;

示例2:将一个未知宽高的Youtube视频嵌入一个div中,并垂直水平居中显示

HTML代码:

<div id="parent">
  <iframe id="video" width="560" height="315" src="https://www.youtube.com/embed/dQw4w9WgXcQ" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" allowfullscreen></iframe>
</div>

JavaScript代码:

const parentElement = document.getElementById('parent');
const element = document.getElementById('video');

const width = element.offsetWidth;
const height = element.offsetHeight;

element.style.position = 'absolute';
element.style.top = `${parentElement.offsetHeight / 2 - height / 2}px`;
element.style.left = `${parentElement.offsetWidth / 2 - width / 2}px`;

通过上述两个示例,我们可以看到如何使用纯JS代码来实现任何未知宽高的元素在指定元素中垂直水平居中显示。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:纯js代码实现未知宽高的元素在指定元素中垂直水平居中显示 - Python技术站

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

相关文章

  • 海量经典的jQuery插件集合

    海量经典的jQuery插件集合是一个包含了大量优秀的jQuery插件的开源项目,可以帮助开发者更加高效地开发网页和应用程序。以下是详细的攻略: 1. 获取插件集合 首先你需要获取插件集合,可以通过访问GitHub项目页面来获取。在项目页面中有两种方式可以获取源代码: 克隆项目:通过Git工具在命令行中执行git clone https://github.co…

    css 2023年6月11日
    00
  • js实现滚动条滚动到页面底部继续加载

    JS如何实现滚动条滚动到页面底部继续加载数据 随着Web技术的不断发展,越来越多的网站需要实现无限滚动( Infinite scrolling )功能,即在页面滚动到底部时不刷新页面,而是继续加载更多的内容。这一功能已经成为现代网页设计的标配。本文将向您介绍如何使用JavaScript来实现无限滚动的功能。 一、window对象的scroll事件 使用Jav…

    css 2023年6月10日
    00
  • HTML表格布局实际使用详解

    HTML表格布局是HTML编写中重要的一部分,可以用于展示大量的数据,并且可以方便地对数据进行排版和布局。下面为大家详细讲解HTML表格布局实际使用的攻略。 HTML表格的基础语法 HTML表格的基础语法如下: <table> <tr> <th>表头1</th> <th>表头2</th>…

    css 2023年6月10日
    00
  • CSS中calc(100%-100px)不加空格不生效

    下面是详细讲解CSS中calc(100%-100px)不加空格不生效的攻略。 问题概述 当我们在 CSS 中使用 calc() 函数计算元素的属性值时,需要注意的是减号两侧必须要有空格分隔符,如 calc(100% – 100px),否则计算无法生效。比如,我们把减号和百分号紧挨着写成 calc(100%-100px) 是无法正确计算的。 解决方法 为了让 …

    css 2023年6月9日
    00
  • html5的新增的标签和废除的标签简要概述

    HTML5(Hyper Text Markup Language 5)是HTML(Hyper Text Markup Language)的第五个版本,它对之前版本的语言规范做了很多改进和增强。在HTML5中,新增了很多标签来帮助Web开发者更好地构建现代化、丰富多彩的网站。同时,也废除了一些不太常用、有性能问题或者安全隐患的标签。 新增标签 \<can…

    css 2023年6月10日
    00
  • jQuery子元素过滤选择器用法示例

    来一起学习一下 jQuery 子元素过滤选择器吧! 什么是子元素过滤选择器? 在 jQuery 中,子元素过滤选择器是用来选择指定父元素下的某个特定子元素的选择器。它可以选择某个父元素下的所有子元素或者对符合特定条件的子元素进行过滤。 如何使用子元素过滤选择器? 以 > 符号作为子选择器操作符。例如,选择所有 class 为 test 的直接子元素,可…

    css 2023年6月10日
    00
  • 这是今年前端最常见的面试题,你都会了吗(推荐)

    下面是“这是今年前端最常见的面试题,你都会了吗(推荐)”的完整攻略。 什么是这道面试题 这道面试题是前端开发中经常遇到的异步编程问题,主要考察了解 JavaScript 中异步编程的基础机制和常用方法。 面试题的解法 1. 回调函数 这是最早、也是最常见的一种异步编程方法。通过传递回调函数,异步函数执行完成后调用回调函数来处理返回结果。 下面是一个例子: f…

    css 2023年6月10日
    00
  • JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)

    下面是“JS+CSS实现鼠标经过弹出一个DIV框完整实例(带缓冲动画渐变效果)”的攻略: 实现思路 本例中,我们需要通过鼠标事件监听和CSS动画实现,实现当鼠标经过一个元素时,弹出一个DIV框,并带有缓冲动画渐变效果。具体的实现步骤如下: 使用CSS定义一个弹出DIV框,并设置其初始状态为不可见。 监听需要触发弹出的元素的鼠标移入事件,并在事件处理函数中,使…

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