字节-飞书-校招 · 第 1 轮 · 一面
← 已是第一轮 · 返回本次面经 · 第 1 轮 → 本轮要点: 本次面试主要考察前端基础知识和实际应用能力。 本轮共 20 道题。答案默认折叠,便于先自行作答。 1. 实现一个宽度自适应的搜索框。 题目要点 CSS布局能力: 面试官希望确认候选人对CSS的布局方式(如Flexbox、Grid或传统布局)的掌握程度,以及如何实现元素的响应式和自适应。 响应式设计: 考察候选人是否能考虑不同屏幕尺寸下的用户体验,并运用CSS媒体查询、视口单位等技术实现宽度自适应。 HTML结构: 确认候选人是否能编写语义化且结构清晰的HTML代码。 参考答案 1.1 原理说明 宽度自适应的搜索框是指搜索框的宽度能够根据其父容器的宽度或视口宽度自动调整,以适应不同的屏幕尺寸和设备。实现这种效果通常依赖于CSS的弹性布局(Flexbox)或网格布局(Grid),结合相对单位(如百分比、vw/vh)或弹性单位(如flex属性)。其核心思想是让元素能够"伸缩自如",而不是固定尺寸。 1.2 核心用法 + 示例代码 以下是使用Flexbox实现宽度自适应搜索框的示例: <div class="search-container"> <input type="text" class="search-input" placeholder="请输入搜索内容"> <button class="search-button">搜索</button> </div> .search-container { display: flex; width: 100%; /* 占据父容器的全部宽度 */ max-width: 600px; /* 设置最大宽度,防止过宽 */ margin: 20px auto; /* 居中显示 */ border: 1px solid #ccc; border-radius: 5px; overflow: hidden; /* 防止内容溢出 */ } .search-input { flex-grow: 1; /* 占据剩余空间 */ padding: 10px; border: none; outline: none; /* 移除聚焦时的边框 */ font-size: 16px; } .search-button { padding: 10px 15px; background-color: #007bff; color: white; border: none; cursor: pointer; font-size: 16px; } .search-button:hover { background-color: #0056b3; } /* 媒体查询,适应小屏幕 */ @media (max-width: 768px) { .search-container { max-width: 90%; } } 场景说明: ...