前端圈有个梗:在面试时,问个css的position属性能刷掉一半人,其中不乏工作四五年的同学。在公司一直有参与前端的基础面试,深感这个梗不是个玩笑。

然而,我觉得实际比例可能会更高,甚至很多面试官自己也未必真正掌握。因为大部分前端同学,可能不知道初始包含块的概念,或知道但对这个概念理解有误。

造成这种现象的原因主要有两方面,一方面是在介绍这个知识点时,网上有谬误的文章太多,国内外亦如此(MDN也名列其中),导致很多同学被误导(我一开始也是),而且这种错误被代代相传;另一方面可能是我们平时不太注重概念的定义、自身对待知识的态度还不够严谨、缺乏验证精神和系统总结的习惯。

一次偶然的机会,我发现了这种谬误,并找到了W3C组织对初始化包含块的官方定义,也为了让刚入前端圈的同学少走一些弯路,在此我想借本文分享给大家(详述请见5.5. 包含块章节),也系统分享一下,本人在前端布局基础方面积累的浅薄经验。(因为是系统概述,所以篇幅会比较长,希望各位读者有心理准备)

 什么是前端布局基础?

前端布局方案主要有三种:

传统布局方案(借助浮动、定位等手段)

flex布局方案

grid布局方案

这些方案都能够解决布局问题,而且每个方案都有各自的理论基础,那么哪一个方案的基础理论可以称得上是前端布局基础?要回答这个问题,我们还得深入去了解这三种方案的特性。

传统布局方案,需要使用者熟练掌握元素的分类及布局特性、浮动原理和定位原理等众多基础知识,方能在解决各类前端布局问题时游刃有余,这不仅学习成本大,而且实现的复杂度也高,实现的CSS代码也不够精简、优雅。但由于其基础知识来源于CSS2,所以浏览器兼容性最好,对于用户是友好的。

flex布局方案,正是为了解决传统布局方案的种种不便,而提出的一种新型改进方案,它不再需要借助浮动和定位等布局手段,而是通过父元素(flex box)单方面配置相关的CSS属性来决定子元素的布局规则,且在大多情况下无需子元素(flex item)参与,就能完成子元素间的布局问题,不仅学习成本低(公司之前有几个后端工程师亦能快速上手),且大大简化了布局的实现复杂度,CSS代码也更加精炼。美中不足的是IE10才开始支持,且需要使用-ms-前缀(IE11无需)。

虽然现今的手机多使用的是现代浏览器,对flex支持度较好,然而并不是每一款手机都如此:笔者曾在一个移动端项目采用过flex布局方案,然而公司的测试同学在华为荣耀5的自带浏览器,检测到无法支持flex布局,我们能够跟测试的同学说,是这款华为手机的浏览器有问题吗?显然不能。于是故笔者在项目早期就及时放弃了flex布局方案,改用传统布局方案实现,避免了后面大规模的改动。

grid布局方案,是由微软提出,相对于传统布局方案和flex布局方案,它是一种二维布局方案,在IE10开始支持,但需要使用-ms-后缀(IE11+不再需要)。

总的来说,这三类方案都能基本解决日常的前端布局问题,且从易用性、灵活性和强大性来说,flex布局和grid布局更是未来的趋势。但是从当前各版本浏览器在用户市场上的使用情况和各方案的浏览器兼容性来看,传统布局方案对用户最友好,具有一定的不可替代性,所以我觉得,传统布局方案是最应该先掌握好的,尤其是对于在to B企业工作的前端同学来说。

所以本文将详细介绍的前端布局基础,指的是围绕着传统布局方案的众多CSS知识,其主要内容来源于CSS2规范。

为什么要学好前端布局基础?

页面写多了的前端同学,我想应该都会有这样一个深刻的感受:在编写页面时,经常会遇到不同场景的布局问题,我们不仅需要针对特定的场景选定可实现的布局实现方案,而且需要考虑未来可能发生的变化。

而要做好这一点,就需要扎实的前端基础作为依托。

所以在我看来,学好前端布局基础,其目的是为了在面对不同场景的布局问题时,能够提出一种合理的布局方案:既能解决问题,又能最大程度地拥抱变化。

量化布局方案的合理性

前面提到过的解决问题、拥抱变化,仅仅是合理布局方案的两大核心目标,如果想要让目标更好地落地,我们仍需要一些量化合理性的原则,来提升对目标的方向感,以让目标变得更加可执行。

说到量化解决问题这个目标,对于即写即呈现的前端代码来说,我们可以很直观地判断一种方案是否可行,所以不需要太多的量化手段,我们主要是要量化拥抱变化这个目标。

要想量化拥抱变化这个目标,我们首先得清楚变化有哪些。笔者根据过往的开发经验,将变化分为两大类:一是布局需求的变化,二是运行环境的变化。

而针这这两类变化,我提出如下量化原则:

一、对于布局需求的变化,可以做到:

方便快速定位需修改的位置

能够不花或用最少的修改成本应对变化

二、对于运行环境的变化,可以做到:

在不同浏览器均有正确或良好的显示

如果一个方案能够体现以上几点原则,我认为可以称得上是一个合理的方案。最后,我将布局实现方案的合理性归纳为:方案在满足正确性的前提下,其实现逻辑规范、实现职责分明且拥有良好的浏览器兼容性。

下面我们正式开始介绍与传统布局方案相关的布局基础知识。

前端布局基础要点

 CSS标准盒模型(或W3C盒模型)

一个web页面是由众多html元素拼凑而成的,而每一个html元素,都被解析为一个矩形盒,而CSS盒模型就是这种矩形盒的解构模型。CSS盒模型,它由内到外、被四条边界Content edge、Padding edge、Border edge和Margin edge划分为四个区域:Content area、Padding area、Border area和Margin area,在形状上,Content area(又称content-box)是实心矩形,其余是空心环形(空心部分是Content area)。

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

短视频/直播电商部门岗位职责及绩效考核指标管理实施办法|短视频运营岗位职责,直播电商部门管理,直播电商部门绩效考核,短视,频/,直播,电商,部门,岗位职责,绩效,考核,指标,管理,实施办法
短视频/直播电商部门岗位职责及绩效考核指标管理实施办法
在线药店设计书(范文)|在线药店设计书,在线药店设计,在线药店,在线,药店,设计书,范文
在线药店设计书(范文)
x升电子有限公司商务网站项目设计书|商务网站项目设计书,商务网站项目,商务网站,瑞升电子有限公司,x升,电子,有限公司,项目,设计书
x升电子有限公司商务网站项目设计书
必通网上考试书店项目设计书(范文)|必通网上考试书店项目设计书,网上考试书店项目设计书,网上考试书店项目设计,网上考试书店项目,必通,网上,考试,书店,项目,设计书,范文
必通网上考试书店项目设计书(范文)
(有详细评估的范文)E-WORK网络实习平台及线下实习教育|网络实习平台,线下实习教育,E-WORK网络实习平台,详细,评估,范文,work,网络,实习,平台,线下,教育
(有详细评估的范文)E-WORK网络实习平台及线下实习教育
(范文)网上内衣店项目设计书|内衣店项目设计书,网上内衣店项目设计书,内衣店项目设计,范文,网上,内衣,项目,设计书
(范文)网上内衣店项目设计书
**鞋业公司  开拓电子商务和校园市场  营销策划方案|鞋业营销策划,鞋业营销策划方案,**,鞋业,公司,开拓,电子商务,校园,市场,营销策划,方案
**鞋业公司 开拓电子商务和校园市场 营销策划方案
视频伪原创处理:短视频搬运处理方法步骤及图文视频深度创作处理|视频搬运方法,视频搬运技巧,视频伪原创,图文视频技巧,搬运,视频,处理,步骤,图文,原创,短视频搬运,短视,方法,深度,创作
视频伪原创处理:短视频搬运处理方法步骤及图文视频深度创作处理

历史上的今天:04月20日

SEO优化怎么做(分享9大策略和技巧)

SEO优化怎么做(分享9大策略和技巧)在互联网时代,这是网站推广的公司至关重要。网站优化是网站建设的重要环节。第一个网站的构建,它揉详细,合理的优化策略是非常重要的。那么,什么是优化如何有效的网站?今天将共享优化策略九。1.关键字策略识别主题(核心关键词)的网站是至关重要的。当关键字是确定的,整个网站将不得不解决这个核心关键词。2.域名政策包括在域名关键字,连字符“-”突出关键字是一种很常见的域名

松耦合型在线学习团队带队经验分享

松耦合型在线学习团队带队经验分享应王可老师的邀请,让我分享一下带队的经验。但也正好借此机会回顾一下这段时间的经历。希望能对大家有所帮助。在参与组长竞选的过程上,更多的还是抱着重在参加的态度,老师在决定组长人选前,单独与我进行了沟通。看到老师的慎重选择,以及班里有各路学霸和精英, 这让我感到组长的担子挺重的。怎样通过组队的方式让大家能够坚持学习下来?会遇到什么样的问题?而且大家素未谋面,时间和节奏也

SEO优化怎么做如何提高效果(怎样快速定位客户)

SEO优化怎么做如何提高效果(怎样快速定位客户)在做SEO的过程中,我们总是会沉浸在“盲目进行时”很长一段时间里,总是停不下来脚本去思考,我们近期的SEO优化工作,是否是徒劳,而仍然日复一日的坚持!因此,我们认为SEO人员在特定周期内,开启网站优化工作的时候,我们应该多加思考。那么,SEO人员,如何做好网站SEO优化工作?根据以往SEO优化的经验,将通过如下内容阐述:1、竞争分析竞争对手是自己最好

微淼商学院筑梦队在线学习团队带队经验分享

微淼商学院筑梦队在线学习团队带队经验分享—————87 班筑梦队队长张小花应牛老师的邀请,让我分享一下带队经验,我借此机会,回顾这八周以来的学习和成长历程,希望对大家有所帮助。在一开始参与组长竞选时,我没考虑太多,只想通过组长的担子,来倒逼自己认真学完这个课程,但当我当上组长后,看到群里的同学们,学霸级水平、职场精英,尤其在起队名时,贡献的多个创意都让我觉得,可能就我水平最低,这让我觉得压力很大,

社区营销组长手册

社区营销组长手册班级架构图:组长手册:指导思想:利他是最好的利己!我们为什么要设立组长呢?因为一个班级有90多人,在实际教学过程中,老师无法顾及到每位同学的学习进度和效果,为了保证更好的学习效果,所以需要组长来协助,及时跟进跟进每位小组成员的学习进度,了解小组内每位同学在学习过程中是否遇到了困难和问题,组长可以解决的,及时解决;解决不了的,和老师反馈,寻求帮助。组长的意义在哪里呢?我们希望组长能做

热门专题

安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
云南网站建设|云南网站制作,网站建设,云南网站开发,云南网站设计,云南网页设计,云南网站建设公司,云南网站建设
云南网站建设
开放大学|开放大学报名,开放大学报考,开放大学,什么是开放大学,开放大学学历,开放大学学费,开放大学报名条件,开放大学报名时间,开放大学学历,开放大学专业
开放大学
安徽开放大学|安徽开放大学报名,安徽开放大学报考,安徽开放大学,什么是安徽开放大学,安徽开放大学学历,安徽开放大学学费,安徽开放大学报名条件,安徽开放大学报名时间,安徽开放大学学历,安徽开放大学专业
安徽开放大学
昆明网站建设|昆明网站建设,昆明网站开发,昆明网站建设公司,昆明网站建设价格,昆明网站设计,昆明网站制作,网页设计,高端网站建设,高端网站设计
昆明网站建设
大理科技管理学校|大理科技管理学校,大理科技,大理科技中等职业技术学校,大理科技管理中等职业技术学校,大理科技学校
大理科技管理学校
小程序开发|微信小程序,小程序开发,小程序,小程序制作,微信小程序开发,小程序公司,小程序开发公司,分销,三级分销系统,分销系统
小程序开发
云南巨榕教育投资集团有限公司|云南巨榕教育投资集团有限公司,巨榕教育集团,巨榕教育
云南巨榕教育投资集团有限公司

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部