当前位置:首页 > 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 实现水平或垂直居中。

js 实现 图片居中

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

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

注意事项

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

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

相关文章

js实现轮播图

js实现轮播图

基础轮播图实现 使用HTML、CSS和JavaScript实现一个简单的自动轮播图。HTML结构包含一个容器和多个图片项。 <div class="slider"> <div…

js实现全屏

js实现全屏

实现全屏的基本方法 使用JavaScript实现全屏功能主要依赖Element.requestFullscreen()方法。现代浏览器均支持此API,但不同浏览器可能需要添加前缀。 // 触发全屏…

js实现图片预览

js实现图片预览

使用FileReader API实现图片预览 通过FileReader对象读取用户选择的图片文件并显示预览: const input = document.getElementById('image…

js实现换肤

js实现换肤

使用CSS变量实现换肤 通过CSS变量可以轻松实现主题切换功能。CSS变量在根元素中定义,通过JavaScript动态修改这些变量值。 :root { --primary-color: #349…

js实现图片滚动效果

js实现图片滚动效果

使用CSS动画实现图片滚动 通过CSS的@keyframes和animation属性实现无缝滚动效果。将图片容器设置为横向排列,通过动画平移位置。 <style> .scroll-c…

节流js实现

节流js实现

节流(Throttle)的实现原理 节流是一种限制函数执行频率的技术,确保函数在一定时间间隔内最多执行一次。适用于高频触发事件(如滚动、输入、窗口调整等)的场景。 基础实现方式 使用时间戳判断是否执…