前端面试题(二)—— 响应式设计
一、什么是响应式设计
- 是一种网站或应用程序设计方法
- 页面的布局、内容、以及功能在不同的设备和屏幕尺寸下都能够自动适应
- 确保用户无论在何种设备上都能够获得一致且友好的体验
二、如何实现响应式设计
1、流式布局
使用百分比、em或rem等相对单位定义页面的宽度和其他尺寸,元素随着浏览器窗口大小的变化而自动调整。
2、媒体查询
通过使用媒体查询,可以根据设备的特性(如屏幕宽度、设备类型等)应用不同的样式
@media 媒体类型 and (媒体特性) { /* 在此处定义针对特定媒体类型和特性的样式规则 */ }
- 媒体类型:all(所有设备), screen(屏幕设备), print(打印设备), speech(语音合成器)
- 媒体特性:width, height, aspect-ratio, orientation(方向), orientation(分辨率), pointer(设备是否有鼠标), hover(是否支持hover), color(颜色位数)
例子:
@media screen and (max-width: 768px) { /* 在屏幕宽度小于或等于768px时应用的样式 */ } @media (orientation: portrait) { /* 在纵向方向时应用的样式 */ } @media screen and (min-resolution: 300dpi) { /* 在分辨率大于或等于300dpi时应用的样式 */ } @media (hover: hover) { /* 在设备支持悬停效果时应用的样式 */ }
3、弹性图片和媒体
使用max-width属性或百分比来设置图片和媒体的大小
4、Flexbox和Grid布局
5、渐进增强
从小屏幕设备开始设计和开发,逐渐增加对大屏幕设备的支持
三、总结
页面显示正确是前端的基础工作,为了实现多种设备的一致良好体验,需要结合多种方法。若是不同设备上样式差别较多,PC 端和 mobile 端使用两套代码也是常见的一种解决方式。