前端响应式布局为什么是个坑?

发布时间:2024-08-06 20:00:15 浏览量:183次

为什么前端响应式布局有点坑?

响应式设计,就是一个网站,一套代码能在所有终端能够正常展示,并不是为每个终端做一个特定版本,响应式是为解决移动互联网浏览器而诞生的。

响应式设计怎么做?

1. 设置viewport:大多数移动端浏览器都将html页面的宽度作为可视区的视图以符合屏幕分辨率,所以我们需要利用meta设置viewport,将网页宽度设为设备宽度。

<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,minimum-scale=1,user-scalable=no" />

2. 使用媒体查询:浏览器会根据条件选择需要渲染的html和css内容,根据屏幕尺寸分为超小屏幕手机、小屏幕平板、中等屏幕桌面显示器、大屏幕大桌面显示器。

媒体查询有内部引入和外部引入两种方式。

注意:

  • 使用媒体查询时,将公共样式放在最前,媒体查询放在最后。
  • 按照屏幕从小到大的顺序设置媒体查询。
  • 元素宽度处理使用百分比。
  • 尝试给图片添加最大最小宽度以避免失真。

实例:展示图片列表的响应式布局

制作一个展示图片的列表,大屏展示一行4张图片,ipad一行展示3张图片,手机一行展示两张图片。

<meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0"><style>.list{ width:100%; max-width:1200px; padding:0; margin:0 auto;}.pic{ float:left; list-style:none; box-sizing:border-box; padding:10px; margin:15px 0px;}.picture{ width:100%; height:100px; background:#eaeaea;}@media screen and (max-width:768px) { .pic{  width:50%; }}@media screen and (min-width:768px) and (max-width:992px) { .pic{  width:33%; }}@media screen and (min-width:992px) { .pic{  width:25%; }}</style></head><body> <ul class="list">  <li class="pic"><div class="picture"></div></li>  <li class="pic"><div class="picture"></div></li>  <li class="pic"><div class="picture"></div></li>  <li class="pic"><div class="picture"></div></li>  <li class="pic"><div class="picture"></div></li>  <li class="pic"><div class="picture"></div></li>  <li class="pic"><div class="picture"></div></li>  <li class="pic"><div class="picture"></div></li> </ul></body></html>

运行后可以看到,浏览器宽度改变时,图片布局会自动调整适配各种屏幕尺寸。

响应式布局的原理类似于bootstrap框架,提高工作效率。不过,响应式设计也有一些劣势,比如兼容性、加载速度、用户体验等方面的问题。

响应式设计的优缺点

优点:

  • 面对不同分辨率设备灵活性强。
  • 快速解决多设备显示的适应问题。

缺点:

  • 响应式网站无法区分移动端,可能加载不必要的内容,浪费流量。
  • 兼容性困难,工作效率较低。
  • 仅适用于简单布局、信息、框架的网站。
  • 不利于百度关键词优化和排名。

建议最好分别制作移动端和PC端网站,以提高性能和用户体验。

火星时代教育致力于数字艺术教育,提供游戏设计、影视后期制作等课程培训,点击咨询了解更多。

热门课程推荐

热门资讯

请绑定手机号

x

同学您好!

您已成功报名0元试学活动,老师会在第一时间与您取得联系,请保持电话畅通!
确定