乐趣区

关于css:20K前端程序员的面试秘籍学会Offer拿到手软

兴许很多人感觉大前端这个概念很新,但实际上这个概念曾经呈现好几年了。

2017 年,过后以饿了么为代表的一些企业开始提出大前端的概念。2018 年,InfoQ 举办了首届寰球大前端技术大会(GMTC),在大会中将前后端拆散、跨平台和 PWA 等技术设立了专场。去年 5G 风口下,前端岗位的外延和内涵不断扩大。

往年,大前端趋势曾经愈发显著,层出不穷的跨平台技术,BATJ 大厂均已布局小程序、挪动端,拿 offer 须会多端开发。这些都在通知咱们,大前端的浪潮曾经来了!

不少人问我到底什么是大前端,简略来说,大前端是一种变动状态多过于固定的职责范畴,是“前端”职责范畴的延长。

说起大前端流行后,所带来的影响曾经初见端倪,企业开始缩减人力老本,前端岗位竞争越发强烈。一些自媒体也开始看衰挪动端开发,“挪动端饭碗要被抢了”,“据说原生开发没人要了”,这些舆论频繁呈现在各大社群中,给泛滥挪动端程序员造成了极度的不安。

面试诚然有技巧,但绝不是伪造与吹流弊,通过一段短时间沉下心来闭关修炼,出山收割,步入大厂,薪资翻番,岂不爽哉?

修炼准则

想必大家很腻烦口试和考查知识点。因为其实在平时实战中,考究的是开发效率,很少会去刻意记下一些细节和深挖知识点,脑海中都是一些扩散的知识点,无奈系统性地关联成网,始终处于似曾相识的状态。不晓得多少人和博主一样,至今每次写阻止冒泡都须要谷歌一番如何拼写。????。
以如此的状态,定然是无奈在面试的战场上纵横的。其实面试就犹如考试,大家回忆下高考之前所做的事,无非就是 了解 和 系统性关联记忆。本秘籍的知识点较多,花点工夫一个个了解并记忆后,天然也就死记硬背,无所畏惧。
因为本秘籍为了便于记忆,疾速达到应试状态,相似于温习常识纲要。知识点会尽量的精简与提炼常识脉络,并不去开展深刻细节,八面玲珑。有趣味或者有疑难的童鞋能够自行谷歌下对应知识点的具体内容。????

CSS

  1. 盒模型
    页面渲染时,dom 元素所采纳的 布局模型。可通过 box-sizing 进行设置。依据计算宽高的区域可分为:
  • content-box (W3C 规范盒模型)
    border-box (IE 盒模型)
    padding-box (FireFox 已经反对)
    margin-box (浏览器未实现)

Tips: 实践上是有下面 4 种盒子,但当初 w3c 与 mdn 标准中均只反对 content-box 与 border-box;

  • BFC
  • 块级格式化上下文,是一个独立的渲染区域,让处于 BFC 外部的元素与内部的元素互相隔离,使内外元素的定位不会相互影响。
  • IE 下为 Layout,可通过 zoom:1 触发
  • 触发条件:

    根元素
    position: absolute/fixed
    display: inline-block / table
    float 元素
    ovevflow !== visible

  • 规定:
    属于同一个 BFC 的两个相邻 Box 垂直排列
    属于同一个 BFC 的两个相邻 Box 的 margin 会产生重叠
    BFC 中子元素的 margin box 的右边,与蕴含块 (BFC) border box 的右边相接触 (子元素 absolute 除外)
    BFC 的区域不会与 float 的元素区域重叠
    计算 BFC 的高度时,浮动子元素也参加计算
    文字层不会被浮动层笼罩,盘绕于四周
  • 利用:
    阻止 margin 重叠
    能够蕴含浮动元素 —— 革除外部浮动 (革除浮动的原理是两个 div 都位于同一个 BFC 区域之中)
    自适应两栏布局
    能够阻止元素被浮动元素笼罩

3. 层叠上下文
元素晋升为一个比拟非凡的图层,在三维空间中 (z 轴) 高出一般元素一等。

  • 触发条件

    根层叠上下文(html)
    position

  • css3 属性
  • flex
    transform
    opacity
    filter
    will-change
    -webkit-overflow-scrolling
  • 层叠等级:层叠上下文在 z 轴上的排序

    在同一层叠上下文中,层叠等级才有意义
    z-index 的优先级最高

  1. 居中布局
  • 程度居中

    行内元素: text-align: center
    块级元素: margin: 0 auto
    absolute + transform
    flex + justify-content: center

  • 垂直居中

    line-height: height
    absolute + transform
    flex + align-items: center
    table

  • 程度垂直居中

    absolute + transform
    flex + justify-content + align-items

  1. 选择器优先级
  • !important > 行内款式 > #id > .class > tag > * > 继承 > 默认
    选择器 从右往左 解析

6. 去除浮动影响,避免父级高度塌陷

  • 通过减少尾元素革除浮动

    :after /
    : clear: both

    创立父级 BFC
    父级设置高度

7.link 与 @import 的区别

  • link 性能较多,能够定义 RSS,定义 Rel 等作用,而 @import 只能用于加载 css
    当解析到 link 时,页面会同步加载所引的 css,而 @import 所援用的 css 会等到页面加载完才被加载
    @import 须要 IE5 以上能力应用
    link 能够应用 js 动静引入,@import 不行
  1. CSS 预处理器(Sass/Less/Postcss)
  • CSS 预处理器的原理: 是将类 CSS 语言通过 Webpack 编译 转成浏览器可读的真正 CSS。在这层编译之上,便能够赋予 CSS 更多更弱小的性能,罕用性能:
  • 嵌套
  • 变量
  • 循环语句
  • 条件语句
  • 主动前缀
  • 单位转换
  • mixin 复用

面试中个别不会重点考查该点,个别介绍下本人在实战我的项目中的教训即可~

9.CSS 动画

  • transition: 过渡动画
    transition-property: 属性
    transition-duration: 距离
    transition-timing-function: 曲线
    transition-delay: 提早
    罕用钩子: transitionend
  • animation / keyframes

    animation-name: 动画名称,对应 @keyframes
    animation-duration: 距离
    animation-timing-function: 曲线
    animation-delay: 提早
    animation-iteration-count: 次数

  • infinite: 循环动画
    animation-direction: 方向
    alternate: 反向播放
    animation-fill-mode: 静止模式
    forwards: 进行时,保留最初一帧
    backwards: 进行时,回到第一帧
    both: 同时使用 forwards / backwards
    罕用钩子: animationend
  • 动画属性: 尽量应用动画属性进行动画,能领有较好的性能体现
    translate
    scale
    rotate
    skew
    opacity
    color

教训

通常,CSS 并不是重点的考查畛域,但这其实是因为当初国内业界对 CSS 的专一不够导致的,真正精通并专一于 CSS 的团队和人才并不多。因而如果能在 CSS 畛域有本人的见解和教训,反而会为相当的加分和怀才不遇。

退出移动版