纯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日

相关文章

  • 简要讲解CSS中的类型选择器、ID选择器、类选择器

    当我们需要为HTML元素添加CSS样式时,可以使用选择器来指定要添加样式的元素。在CSS中,有三种常用的选择器:类型选择器、ID选择器、类选择器。 类型选择器 类型选择器可以通过指定HTML元素的名称来选择元素。例如,下面的代码将选择所有的\ 元素,并为它们添加红色字体颜色: p { color: red; } ID选择器 ID选择器是根据HTML元素的ID…

    css 2023年6月9日
    00
  • Angular动画实现的2种方式以及添加购物车动画实例代码

    Angular动画是Angular框架中一个非常重要且强大的特性,可以帮助我们轻松实现各种动画效果,提升界面交互的体验。本文将详细介绍Angular动画实现的两种方式,并提供添加购物车动画实例代码,方便大家上手操作。 Angular动画实现的2种方式 Angular动画可以使用两种方式来实现:通过使用Angular内置的动画模块和使用第三方动画库。 1. 使…

    css 2023年6月10日
    00
  • CSS 网页布局中的图文列表实现代码

    下面我会详细讲解“CSS 网页布局中的图文列表实现代码”的完整攻略。 标题 图文列表的基本实现思路 通过CSS实现图文列表主要涉及两个方面的布局: 图片和文字的横向布局 多个图文列表的纵向布局 下面我将分别讲解这两个方面的实现方式和代码。 图片和文字的横向布局 首先让我们来看一下图片与文字横向布局的示例代码: /* 图片与文字的横向布局 */ .img-te…

    css 2023年6月10日
    00
  • 分析对比华为虚拟化CSS与H3C虚拟化IRF2技术

    分析对比华为虚拟化CSS与H3C虚拟化IRF2技术 背景介绍 随着云计算与大数据时代的到来,虚拟化技术成为IT业界的热门话题。华为和H3C作为国内知名的网络设备厂商,分别推出了华为虚拟化CSS和H3C虚拟化IRF2技术。本文将对这两种技术进行详细的分析对比,希望能给读者带来一些参考。 技术原理 虚拟化CSS和虚拟化IRF2其实都是对网络设备中的虚拟化技术进行…

    css 2023年6月10日
    00
  • 使用Vue-cli 3.0搭建Vue项目的方法

    使用Vue-cli 3.0搭建Vue项目的方法 Vue-cli 3.0是一款非常强大的Vue.js项目脚手架工具,可以帮助我们快速搭建起一个具备Vue.js开发所需的基础配置的项目框架。本文将详细介绍如何使用Vue-cli 3.0搭建Vue项目的方法。 步骤一:安装Vue-cli 3.0 要使用Vue-cli 3.0,首先需要在本地安装Node.js环境。安…

    css 2023年6月10日
    00
  • 手把手教你用纯css3实现轮播图效果实例

    让我来为您详细讲解“手把手教你用纯css3实现轮播图效果实例”的攻略。 手把手教你用纯CSS3实现轮播图效果实例 1. 前言 轮播图是现代网站中常见的一种元素。在这篇文章中,我们将使用CSS3实现一个轮播图。使用CSS3来实现轮播图可以减少网站的请求次数,而且使动画效果更加流畅。 2. HTML结构 要创建一个轮播图,我们需要一个图片列表和一个导航列表,其中…

    css 2023年6月9日
    00
  • 浅谈由position属性引申的css进阶讨论

    下面是“浅谈由position属性引申的css进阶讨论”的完整攻略。 1. position属性的基本用法 position属性可以控制元素在文档中的位置,它的值包括static、relative、absolute和fixed四种。其中,static为默认值,元素按照正常文档流排列,而relative、absolute和fixed是相对于元素原来的位置进行定…

    css 2023年6月9日
    00
  • WEB标准之CSS 打造自己的reset.css

    下面是详细讲解“WEB标准之CSS 打造自己的reset.css”的完整攻略: 什么是reset.css reset.css是一种技术,它的作用是将所有HTML标签的样式都重置为浏览器默认的样式,避免不同浏览器之间对同一HTML标签样式的差异。 为什么需要reset.css 不同的浏览器对同一HTML标签的默认样式可能不同,例如IE与Chrome对于h1标签…

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