响应式方案调研及前端开发管理思考

简介: 网易首页实现页面(字体)响应式风格的方式是在不同尺寸的视口中使用不同的容器类,如图 1所示。当视口大于等于1420px时,使用大尺寸容器类 (index2017_1200_wrap,width: 1200px),当视口小于 1420px时,使用小尺寸容器类(index2017_960_wrap,width: 960px)。

 网易首页响应式风格实现技术调研

网易首页实现页面(字体)响应式风格的方式是在不同尺寸的视口中使用不同的容器类,如图 1所示。当视口大于等于1420px时,使用大尺寸容器类 (index2017_1200_wrap,width: 1200px),当视口小于 1420px时,使用小尺寸容器类(index2017_960_wrap,width: 960px)。容器类的切换依赖于JavaScript 监听,如图 2所示,并未使用CSS3的媒介查询。

网易首页在发生视口改变时,如果引起了字体和布局的响应式变化,则页面会有所卡顿。

fd5e87872586151c68d323712a0a9d6fa19104c6

 CSS3之rem兼容性调研

使用rem作为单位时的浏览器兼容如图 3所示。需要注意的是,IE9 / IE10 不支持font属性简写时使用rem指定字体大小,IE9 / IE1 / IE11不支持伪元素的line-height属性使用rem作为单位。

0f1ad024fc637113836c6282f0da8cfeea77246d

测试代码如下:


<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <title>Document</title>
  <style type="text/css">
    html{
      font-size: 20px;
    }
    .bigger{
      font-size: 2rem;
    }
    .biggest{
      font-size: 4rem;
    }
    .font-shorthand{
      font: italic bold 5rem/1.2 Arial, sans-serif;
    }
    .padding-shorthand{
      border: 1px red solid;
      margin: 3rem;
      padding: 5rem;
    }
    .pseudo-class{
      line-height: 6rem;
    }
    .pseudo-class:hover{
      cursor: pointer;
      font-size: 5rem;
    }
    .pseudo-element:after{
      content: '这是伪元素元素';
      line-height: 20rem;
      font-size: 5rem;
    }
  </style>
</head>
<body>
  <div>原生字体</div>
  <div class="bigger">较大字体</div>
  <div class="biggest">最大字体</div>
  <div class="font-shorthand">font简写</div>
  <div class="padding-shorthand">margin 和 padding 简写</div>
  <div class="pseudo-class">伪类</div>
  <div class="pseudo-element">伪元素</div>
</body>
</html>

网站技术方案改造

改造已有项目 VS 搬迁到新项目

  改造已有项目的优势: 

   1.开发内容归属明确。 
   2.部署结构无需变化。

 改造已有项目的不足:

      1.历史负担较大。
      2.需要新增一套前端公共资源,引起代码冗余,增加维护成本。 

 采用新项目开发的优势: 

      1.历史负担小。 
      2.可是使用新框架进行开发、发布,流程更加可控。 
      3.可以避免setting.js的选择加载,提高加载效率。

 采用新项目开发的不足: 

     1.新项目的归属问题有待商榷。 
     2.项目过多可能增加管理工作量。
     3.系统部署更加复杂。

响应式风格的实现

方案一:rem + 媒体查询 方案 (推荐)

方案描述:使用媒体查询设置特定视口尺寸下根元素的字体大小,使用rem为单位设置具有响应式风格的元素的属性,使用less的混入功能实现低级浏览器降级的需求。

优势:响应速度快,代码量小,应对未知变化(比如视口大小的划分从两档变为三档)的能强,增加pc端使用rem的团队经验。

不足:必须采用IE8对应的降级策略,可能有未知的坑。

方案二:固定class + 媒体查询 方案

方案描述:使用媒体查询,在特定的视口宽度下为特定的公共样式适用特定的字体大小、行高等属性,使用css3-mediaqueries-js等方案处理IE8的兼容问题。

优势:响应速度较快,基本兼容IE8,虽然需要两套样式可公共样式代码量小,应对未知变化(比如视口大小的划分从两档变为三档)的能较强。

不足:需要做响应式风格的元素需要包含特定的公共样式名(类名),增加了代码量和维护工作量。

方案三:可变容器方案 网易目前使用

方案描述:在不同的容器下定义两套样式,使用JavaScript监听视口尺寸变化,当视口尺寸的变化达到临界值时,变换顶级容器。

优势:完全兼容IE8

不足:需要两套样式,维护工作量较大,视口大小判断不够准确,对于视口变化的响应不及时,页面在响应缩放时会略有卡顿,应对未知变化(比如视口大小的划分从两档变为三档)的能力差。

分屏加载

对于内容较多,特别是图片较多的页面,使用分屏加载技术,避免出现首页初始化时大量加载静态资源,导致响应缓慢的问题。

关于前端开发管理的思考

在开发工作进行前和进行中是否考虑加入技术评审环节应当加强文档管理,包括项目的版本记录,项目所使用到的资源(静态资源、模块、公共类等)记录等。  



原文发布时间为:2018年06月27日
原文作者:浩瀚动酷
本文来源: 掘金  如需转载请联系原作者


相关文章
|
14天前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端框架的比较
【4月更文挑战第9天】在移动设备和多样屏幕尺寸盛行的时代,构建能够适应不同视口的响应式Web界面变得至关重要。本文深入探讨了几种流行的前端框架——Bootstrap、Foundation和Tailwind CSS,分析它们在创建响应式设计中的优势与局限。通过对比这些框架的栅格系统、组件库和定制化能力,开发者可以更好地理解如何选择合适的工具来优化前端开发流程,并最终实现高性能、跨平台兼容的用户界面。
|
3月前
|
存储 JavaScript 前端开发
探索主流前端框架的响应式原理!
探索主流前端框架的响应式原理!
|
1月前
|
Web App开发 前端开发 JavaScript
构建响应式Web界面:现代前端开发的最佳实践
【2月更文挑战第15天】 在多设备浏览时代,响应式Web设计成为前端开发者的必备技能。本文将深入探讨实现响应式界面的核心概念、技术栈以及工具,帮助读者掌握从布局到交互的全方位解决方案。通过灵活运用CSS框架、媒体查询及JavaScript,开发者可以创建出适应不同屏幕尺寸和分辨率的网站。文章不仅涵盖理论分析,还包含实际案例,确保读者能够将知识应用于实际项目中。
|
1月前
|
开发框架 Dart 前端开发
构建响应式Web界面:Flutter的跨界前端技术
【2月更文挑战第23天】随着移动互联网的飞速发展,响应式Web设计成为现代前端开发的重要趋势。在众多框架中,Google推出的Flutter以其高效的渲染性能、跨平台能力及丰富的组件生态,为前端开发者带来了新的选择。本文将深入探讨如何利用Flutter进行高效、美观的响应式界面构建,同时剖析其与传统前端技术的差异和优势。
|
1月前
|
Web App开发 编解码 前端开发
构建响应式Web界面:现代前端开发的实用指南
【2月更文挑战第22天】 随着移动互联网的兴起,响应式网页设计已成为前端开发者必须掌握的核心技能之一。本文将深入探讨如何通过灵活运用HTML5、CSS3和JavaScript等技术,构建出能够适应不同屏幕尺寸和设备的Web界面。文章不仅涉及理论概念,还包含具体实践案例,旨在帮助读者理解并应用响应式设计的核心原则,从而提升网站的用户体验和访问效率。
|
1月前
|
Web App开发 前端开发 JavaScript
前端技术探索与应用:构建高性能响应式网页
本文将介绍前端技术的最新发展和应用,重点探讨如何构建高性能响应式网页。通过深入解析前端框架、优化技巧以及调试工具等方面的内容,帮助读者提升网页的交互体验和加载速度,实现用户友好的界面设计。
|
1月前
|
缓存 前端开发 开发者
构建响应式Web界面:现代前端开发的实用指南
【2月更文挑战第19天】 在多设备浏览的时代,为不同屏幕尺寸和分辨率优化网站变得至关重要。本文将深入探讨响应式Web设计的核心概念、关键技术和实现策略,旨在引导前端开发者通过灵活布局、媒体查询和现代化工具,打造出能够适应各种终端的界面。我们将从基础理论出发,逐步过渡到实战技巧,最后讨论当前趋势与未来展望,以帮助读者构建出高效、美观且用户友好的响应式Web界面。
|
1月前
|
编解码 前端开发 JavaScript
构建高效响应式Web界面:现代前端开发的最佳实践
【2月更文挑战第18天】 在多设备浏览的时代,创建一个既高效又具有适应性的响应式Web界面已成为前端开发者的核心任务。本文将深入探讨实现流畅响应式体验的关键策略,包括灵活的布局设计、图像优化技巧以及性能考量。通过实例分析和技术深度剖析,我们将揭示如何利用HTML5、CSS3和JavaScript的最新特性,为不同尺寸的设备提供无缝的用户体验。文章不仅聚焦于代码实现,还将讨论开发流程中的协作与测试最佳实践,旨在为前端开发人员提供一个全面的指南,帮助他们在构建响应式Web界面时做出明智的技术选择。
45 4
|
1月前
|
前端开发 JavaScript 开发者
构建响应式Web界面:现代前端开发实践
【2月更文挑战第17天】 随着移动设备用户群体的激增,为各种屏幕尺寸和分辨率构建兼容且优雅的Web界面变得至关重要。本文将深入探讨响应式设计的核心概念,并通过实际案例分析展示如何利用HTML5、CSS3以及JavaScript框架创建流畅的用户体验。我们将着重讨论媒体查询、弹性布局和网格系统等技术的应用,并分享优化响应式网站性能的最佳实践。通过阅读本文,开发者将获得设计和实现适应不同设备的前端项目所需的知识和技能。
|
1月前
|
编解码 前端开发 JavaScript
构建响应式Web界面:现代前端开发的最佳实践
【2月更文挑战第16天】 在当今快速发展的数字时代,用户通过多种设备访问互联网已成为常态。因此,为不同屏幕尺寸和分辨率优化Web界面变得至关重要。本文将深入探讨如何采用最新的前端技术栈实现响应式Web设计,确保无论是在桌面、平板还是手机上,用户都能获得一致的高质量体验。我们将讨论使用CSS框架、灵活布局、媒体查询以及现代JavaScript框架等技术来创建流畅、可扩展且维护性高的响应式Web界面的策略和最佳实践。