返回

前端面试开胃菜,5个经典问题瞬间查漏补缺

前端

前端面试中,经常会遇到各种各样的问题,这些问题涵盖了HTML/CSS、JavaScript、算法、项目经历等各个方面。为了帮助您快速查漏补缺,为面试做好准备,本文整理了5个前端面试高频题,希望能对您有所帮助。

1. 未知宽高,如何实现图片自适应?

在很多情况下,我们无法确定图片的宽高,因此需要使用CSS来实现图片自适应。实现方法有很多种,以下列举其中一种:

img {
  max-width: 100%;
  height: auto;
}

这种方法会使图片的宽度始终不超过其容器的宽度,而高度则根据图片的实际比例自动调整。

2. 如何实现元素的垂直居中?

元素的垂直居中是指元素在父元素中垂直方向居中。实现方法有很多种,以下列举其中一种:

.parent {
  display: flex;
  align-items: center;
  justify-content: center;
}

.child {
  margin: auto;
}

这种方法会使元素在父元素中水平和垂直方向都居中。

3. 如何实现元素的水平居中?

元素的水平居中是指元素在父元素中水平方向居中。实现方法有很多种,以下列举其中一种:

.parent {
  text-align: center;
}

.child {
  display: inline-block;
}

这种方法会使元素在父元素中水平居中,但不会垂直居中。

4. 如何实现元素的固定定位?

元素的固定定位是指元素在页面中始终保持在指定的位置,无论页面如何滚动,元素都不会移动。实现方法有很多种,以下列举其中一种:

.fixed-element {
  position: fixed;
  top: 0;
  left: 0;
}

这种方法会使元素始终固定在页面左上角。

5. 如何实现元素的拖拽?

元素的拖拽是指用户可以通过鼠标将元素拖动到另一个位置。实现方法有很多种,以下列举其中一种:

const draggableElement = document.querySelector('.draggable-element');

draggableElement.addEventListener('mousedown', (event) => {
  // 获取元素的初始位置
  const initialX = event.clientX;
  const initialY = event.clientY;

  // 获取元素的初始位置
  const elementX = draggableElement.offsetLeft;
  const elementY = draggableElement.offsetTop;

  // 监听鼠标移动事件
  document.addEventListener('mousemove', (event) => {
    // 计算鼠标移动的距离
    const deltaX = event.clientX - initialX;
    const deltaY = event.clientY - initialY;

    // 更新元素的位置
    draggableElement.style.left = `${elementX + deltaX}px`;
    draggableElement.style.top = `${elementY + deltaY}px`;
  });

  // 监听鼠标松开事件
  document.addEventListener('mouseup', () => {
    // 移除鼠标移动事件监听器
    document.removeEventListener('mousemove');
  });
});

这种方法会使元素可以被鼠标拖动。

以上是5个前端面试高频题,希望能对您有所帮助。在面试中,您可能会遇到更多的问题,因此需要不断地学习和积累经验,才能在面试中脱颖而出。