具有流体响应性的版式

多年来,流体布局一直是前端开发的常规部分。但是,流体排版的概念相对较新,尚待充分探索。到目前为止,大多数开发人员对流体排版的想法只是使用Viewport单位,也许有一些最小和最大尺寸。在本文中,我们将把它带到另一个层次。我们将研究如何使用受支持的浏览器功能和一些基本代数在多个断点和预定义的字体大小之间创建可扩展的流畅字体最好的部分是您可以使用Sass来自动执行所有操作。在本文中,我们将把它带到另一个层次。我们将研究如何使用受支持的浏览器功能和一些基本代数在多个断点和预定义的字体大小之间创建可扩展的流畅字体最好的部分是您可以使用Sass来自动执行所有操作。与创意设计师一起设计网页设计时,通常会收到多个Sketch或Photoshop画板/布局,每个断点一个。在该设计中,元素(如h1标题)通常在每个断点处具有不同的大小。例如:

这是很好的第一步,但是您只能将其限制font-size为设计人员在提供的断点处指定的范围。如果您问:“ font-size850像素宽的视口应该什么?” ,设计师会怎么说呢?在大多数情况下,答案是它应该在24像素至34像素之间。但是现在,根据您的CSS,它仅为24px,这可能不是设计人员所设想的。

此时,您的选择是计算该大小应为多少并添加另一个断点。那很容易。但是其他所有决议呢?font-size800px宽应该什么那900px呢?935px呢?显然,设计人员不会为每个可能的分辨率提供完整的布局。即使它们做到了,您是否应该font-sizes为设计人员所需的所有不同点添加数十个(或数百个)断点当然不是。

您的布局已经随着视口的宽度而流畅地缩放。如果您的版式可以根据您的布局合理地缩放,那会不会很好?我们还可以做些什么来改善这一点?

视口救援单位?

视口单位是朝正确方向迈出的又一步。它们使您的文本可以根据布局灵活地调整大小。如今,浏览器支持功能非常强大。

但这仅在您的创意画板考虑到这一点时有效。设计师是否选择了恰好是每个画板宽度2%的文字大小?当然不是。让我们计算vw每个断点所需值:

22px大小@ 576px宽= 22 / 576 ×100 = 3.82vw 24px大小@ 768px宽= 24 / 768×100 = 3.13vw 34px大小@ 992px宽= 34 / 992 ×100 = 3.43vw

它们很接近,但不尽相同。因此,您仍然需要使用媒体查询在文本大小之间进行转换,并且仍然会有跳转。考虑一下这怪异的副作用:

@ 767像素,视口宽度的3.82%为29像素。如果视口宽1像素,则font-size突然下降到24px调整视口大小的动画演示了这种不良的副作用:

统计线性回归?

等待。什么?是的,这是一篇有关CSS的文章,但是一些基本的数学方法可以为解决我们的问题提供很好的解决方案。

首先,让我们在图表上绘制分辨率和相应的文本大小:

在这里,您可以看到设计师在定义的视口宽度下指定的文本大小的散点图。x轴是视口宽度,y轴是font-size看到那条线?这就是趋势线这是一种font-size根据提供的数据查找任何视口宽度的插值的方法

趋势线是所有这些的关键

如果您可以font-size根据这一趋势线进行设置,那么您将拥有一个可以在所有分辨率上平滑缩放的h1,这些分辨率接近匹配设计师的预期。首先,让我们看一下数学。直线由以下公式定义:

如何在CSS中使用它?

好的,这在数学上变得越来越沉重。我们如何在前端Web开发中实际使用这些东西?答案是CSS calc()再次,很好地支持了一种相当新的CSS技术

/// least-squares-fit
/// Calculate the least square fit linear regression of provided values
/// @param {map} $map - A Sass map of viewport width and size value combinations
/// @return Linear equation as a calc() function
/// @example
///   font-size: least-squares-fit((576px: 24px, 768px: 24px, 992px: 34px));
/// @author Jake Wilson <jake.e.wilson@gmail.com>
@function least-squares-fit($map) {

  // Get the number of provided breakpoints
  $length: length(map-keys($map));

  // Error if the number of breakpoints is < 2
  @if ($length < 2) {
    @error "leastSquaresFit() $map must be at least 2 values"
  }

  // Calculate the Means
  $resTotal: 0;
  $valueTotal: 0;
  @each $res, $value in $map {
    $resTotal: $resTotal + $res;
    $valueTotal: $valueTotal + $value;
  }
  $resMean: $resTotal/$length;
  $valueMean: $valueTotal/$length;

  // Calculate some other stuff
  $multipliedDiff: 0;
  $squaredDiff: 0;
  @each $res, $value in $map {

    // Differences from means
    $resDiff: $res - $resMean;
    $valueDiff: $value - $valueMean;

    // Sum of multiplied differences
    $multipliedDiff: $multipliedDiff + ($resDiff * $valueDiff);

    // Sum of squared resolution differences
    $squaredDiff: $squaredDiff + ($resDiff * $resDiff);
  }

  // Calculate the Slope
  $m: $multipliedDiff / $squaredDiff;

  // Calculate the Y-Intercept
  $b: $valueMean - ($m * $resMean);

  // Return the CSS calc equation
  @return calc(#{$m*100}vw + #{$b});

}


返回观点列表
本文标签:

相关专题

  • 品牌官网设计
    品牌官网设计

    杭州派迪科技为高端客户提供品牌官网咨询策划,品牌官网设计,品牌官网建设开发服务,以国际化视野和标准为基础,为各行业领军品牌提供高端企业网站定制、策划、设计、互动与制作

    查看详情
  • 大策略营销门户网站
    大策略营销门户网站

    杭州派迪科技有自己的营销型网站CMS系统,适合白帽SEO网站。特别对大策略的营销型门户网站制作有一定的经验,曾经为上海天擎外贸行业网站、浙江兆龙营销型门户、先临三维门户营销网站提供全程的技术支持及SEO优化指导

    查看详情
  • 集团/上市公司网站
    集团/上市公司网站

    杭州派迪科技为杭州本地集团公司提供网页设计、制作、开发服务,为集团公司网站建设提供了响应式、营销型、品牌型、门户型网站建设需求,欢迎广大集团公司客户咨询

    查看详情
  • 外贸网站建设
    外贸网站建设

    杭州派迪科技为高端客户提供外贸网站咨询策划,外贸官网设计,外贸官网建设开发服务,以谷歌搜索引起算法为基础,为各行业外贸公司提供高端企业外贸网站定制、策划、设计、互动与制作

    查看详情
  • 企业网站建设
    企业网站建设

    高端专业、令人印象深刻的用户界面、易于访问——企业网站必须反映一切,因为派迪科技在这里提供帮助,凭借精湛的技术、丰富的经验、与客户的持续沟通以及对每一个细节的关注,我们确保在快速的周期时间内提供优质的服务。

    查看详情
  • 半定制网站
    半定制网站

    杭州派迪科技模板网站建设专题_各行业方案专题栏目提供各行业产品适合的网站建设方案,帮助企业了解派迪科技建站效果等信息,您可以通过本站了解各行业网站建设方案,如需要获取本行业定制网站建设方案,可以联系在线客服或拨打电话咨询

    查看详情

体验从沟通开始,让我们聆听您的需求!

开始您的数字化品牌体验! 15158117070 期待您的来电!

[ 网站建设×品牌官网设计×大策略营销门户×微信小程序开发×微信公众号开发]

派迪业务总监微信号

派迪业务总监微信号

了解最新项目报价

派迪产品经理微信号

派迪产品经理微信号

免费获取项目策划

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》

Cookie 偏好

如果您想详细了解我们如何使用cookie请访问我们的 《隐私政策》

管理cookie偏好

基本 cookies

始终允许

这些 cookies 是网站运行所必需的,不能在我们的系统中关闭。它们通常仅针对您所做的相当于服务请求的操作而设置,例如设置您的隐私首选项、登录或填写表格。您可以将浏览器设置为阻止或提醒您有关这些 cookies 的信息,但网站的某些部分将无法运行。这些 cookies 不存储任何个人身份信息。

性能 cookies

始终允许
这些 cookies 使我们能够计算访问量和流量来源,以便我们可以衡量和改进我们网站的性能。它们帮助我们了解哪些页面受欢迎和不受欢迎,并了解访问者如何在网站上移动。这些 cookies 收集的所有信息都是汇总的,而且是匿名的。如果您不允许这些 cookies,我们将不知道您何时访问了我们的网站,也无法监控其性能。

功能性 cookies

这些 cookies 收集信息用于分析和个性化您的定向广告体验。您可以使用此拨动开关来行使选择不获取个人信息的权利。如果您选择关闭,我们将无法向您提供个性化广告,也不会将您的个人信息交给任何第三方。

定位 Cookies

这些 cookies 可能由我们的广告合作伙伴通过我们的网站设置。这些公司可能会使用它们来建立您的兴趣档案,并在其他网站上向您展示相关广告。它们不直接存储个人信息,而是基于唯一标识您的浏览器和互联网设备。如果您不允许使用这些 cookie,您将体验到较少针对性的广告。

我们正使用 cookies 来改善您的访问体验

派迪科技非常重视您的个人隐私,当您访问我们的网站www.hzpady.com时,请同意使用所有cookies 。

如果您想详细了解我们如何使用cookies请访问我们的 《隐私政策》