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

yizhihongxing

要实现未知宽高的元素在指定元素中垂直水平居中显示,我们可以使用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日

相关文章

  • 简单的cookie计数器实现源码

    讲解“简单的cookie计数器实现源码”的攻略如下: 1. 简单介绍cookie 在实现cookie计数器之前,需要先介绍一下cookie。Cookie(也叫HTTP Cookie),指的是服务器发送到用户浏览器并保存在本地的一小块数据,会在浏览器下次向同一服务器再发起请求时被携带上,用于标记用户在Web站点上的活动。因为cookie是存储在浏览器本地的,所…

    css 2023年6月10日
    00
  • 三谈Iframe自适应高度代码

    下面是详细讲解“三谈Iframe自适应高度代码”的完整攻略: 1. 什么是Iframe自适应高度代码 Iframe自适应高度代码是为了解决一个Iframe高度无法自适应其内容高度的问题而产生的。在实际开发中,常常遇到一个问题,就是如果Iframe中的内容高度超过了Iframe的高度,那么就会出现滚动条,这样就无法完美地展示Iframe中的内容。因此,我们需要…

    css 2023年6月10日
    00
  • css3实现图片遮罩效果鼠标hover以后出现文字

    实现图片遮罩效果并在鼠标hover时出现文字可以通过CSS3的伪元素和hover伪类实现。下面是具体步骤: 步骤一:HTML代码 首先,需要在HTML中添加一张图片和对应的文字。例如: <div class="image-box"> <img src="img/pic1.jpg"> <di…

    css 2023年6月10日
    00
  • 学习YUI.Ext 第四天–对话框Dialog的使用

    学习YUI.Ext 第四天–对话框Dialog的使用 YUI.Ext的对话框(Dialog)是一个常用的UI组件,用于展示弹窗,并可通过配置来进行自定义。本文将详细讲解Dialog的使用。 基础使用 创建一个空的Dialog Dialog的基本使用非常简单,只需要创建一个空的Dialog并显示即可。 const dialog = new Ext.Windo…

    css 2023年6月10日
    00
  • Three.js+React实现3D文字悬浮效果

    下面是实现“Three.js+React实现3D文字悬浮效果”的完整攻略。 准备工作 在进行这个项目之前,需要了解React和Three.js的基础知识,建议先学习React和Three.js的相关知识并熟悉它们的使用方式。 具体的准备工作如下: 安装必要的工具和依赖,包括Node.js、Webpack、Babel、React、Three.js等; 创建一个…

    css 2023年6月10日
    00
  • HTML超链接标签(a标签)详解

    HTML超链接标签<a>用于添加链接到网页上,并可以链接到其他网页、文档、图像、音频、视频等。 基本语法 <a href="链接地址">链接文本</a> 其中, href 属性表示链接地址,可以是绝对路径或相对路径,也可以是外部网址。链接文本是可选的,可以是文字、图片等。 示例代码: 超链接到外部网址:…

    Web开发基础 2023年3月15日
    00
  • 详解网站中图片日常使用以及优化手法

    详解网站中图片日常使用以及优化手法 简介 图片是网站中极为重要的组成部分,可以起到美化网站、凸显重点、增加品牌形象等多种作用。但是,过多或过大的图片也可能会导致网站加载速度缓慢、影响用户体验。因此,在使用图片的过程中,需要注意图片的大小、分辨率、格式以及加载方式等多个方面来进行优化。 图片格式 常见的图片格式有JPEG、PNG和GIF。不同的格式有不同的特点…

    css 2023年6月11日
    00
  • CSS hack用法案例详解

    CSS hack用法案例详解 在CSS中,hack是指通过一些特殊的技巧来解决浏览器兼容性问题的方法。本攻略将详细讲解CSS hack的用法,包括基本原理、使用方法和示例说明。 1. 基本原理 CSS hack是通过一些特殊的技巧来解决浏览器兼容性问题的方法。由于不同的浏览器对CSS的解析方式不同,因此在编写CSS时可能会出现一些兼容性问题。为了解决这些问题…

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