当前位置:首页 > JavaScript

js 实现 图片居中

2026-02-03 05:08:24JavaScript

使用 CSS Flexbox 实现图片居中

Flexbox 是一种现代的布局方式,可以轻松实现图片居中。将图片容器设置为 Flex 布局,并通过 justify-contentalign-items 属性控制水平和垂直居中。

.container {
  display: flex;
  justify-content: center; /* 水平居中 */
  align-items: center;     /* 垂直居中 */
  height: 100vh;           /* 设置容器高度 */
}

img {
  max-width: 100%;         /* 防止图片溢出 */
}

使用 CSS Grid 实现图片居中

Grid 布局同样可以高效实现居中效果。通过 place-items 属性可以同时控制水平和垂直居中。

.container {
  display: grid;
  place-items: center;     /* 水平和垂直居中 */
  height: 100vh;
}

img {
  max-width: 100%;
}

使用绝对定位实现图片居中

通过绝对定位和 transform 属性,可以将图片精准定位到容器中心。

.container {
  position: relative;
  height: 100vh;
}

img {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  max-width: 100%;
}

使用 JavaScript 动态计算居中位置

如果需要通过 JavaScript 动态计算图片位置,可以通过获取容器和图片的尺寸,计算偏移量。

function centerImage() {
  const container = document.querySelector('.container');
  const img = document.querySelector('img');

  const containerWidth = container.offsetWidth;
  const containerHeight = container.offsetHeight;
  const imgWidth = img.offsetWidth;
  const imgHeight = img.offsetHeight;

  img.style.position = 'absolute';
  img.style.left = `${(containerWidth - imgWidth) / 2}px`;
  img.style.top = `${(containerHeight - imgHeight) / 2}px`;
}

window.addEventListener('load', centerImage);
window.addEventListener('resize', centerImage);

使用 text-align 和 line-height 实现简单居中

对于行内元素或简单布局,可以通过 text-alignline-height 实现水平或垂直居中。

.container {
  text-align: center;      /* 水平居中 */
  line-height: 100vh;      /* 垂直居中(需与高度一致) */
}

img {
  vertical-align: middle;  /* 确保垂直对齐 */
}

注意事项

  • 使用 Flexbox 或 Grid 时,确保浏览器支持这些特性。
  • 绝对定位方式需要容器有明确的尺寸(如 height: 100vh)。
  • JavaScript 动态计算方式适用于响应式布局,但可能增加性能开销。

js 实现 图片居中

标签: 图片js
分享给朋友:

相关文章

js实现vue

js实现vue

Vue.js 简介 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。其核心库专注于视图层,易于与其他库或现有项目整合。 实现 Vue.js 的基本步骤 安装 Vue.…

js实现轮播

js实现轮播

实现轮播图的基本思路 轮播图的核心逻辑是通过定时切换展示的图片或内容,通常结合左右滑动按钮和指示器(小圆点)增强交互性。以下是基于原生JavaScript的实现方法。 HTML结构 构建轮播图的H…

js实现分页

js实现分页

分页的基本实现思路 在JavaScript中实现分页功能通常需要结合前端和后端逻辑。前端负责渲染分页控件和处理用户交互,后端负责提供分页数据。 前端分页实现 纯前端分页适用于数据量较小的情况,可以直…

vue 实现图片

vue 实现图片

Vue 实现图片加载与展示的方法 在 Vue 中实现图片加载和展示可以通过多种方式完成,包括静态资源引用、动态绑定、懒加载等。以下是几种常见的方法: 静态资源引用 将图片放在项目的 public 或…

js实现类

js实现类

JavaScript 实现类的几种方式 JavaScript 是一种基于原型的语言,但在 ES6 之后引入了 class 语法糖,使得实现类更加直观。以下是几种常见的实现方式: 使用构造函数 传统…

js防抖和节流实现

js防抖和节流实现

防抖(Debounce)的实现 防抖的核心思想是在事件被触发后,延迟执行回调函数。如果在延迟时间内再次触发事件,则重新计时。适用于输入框搜索、窗口大小调整等场景。 function debounc…