面试之css篇章

面试之css篇章

css选择器的优先级

  • 顺序如下: !important > 行内样式 > id选择器 > 类名选择器 > 标签选择器 > *通配符
  • 类名:包含伪类等!

为什么使用scss、less预处理器

  • scss在webpack编译的时候就被loader转化成css
  • 然后scss里面有着 变量 、函数、mixin等抽离代码,可以简化代码以及做统一样式管理

谷歌浏览器字体如何设置小于12px

  • 使用 transform:scale() 缩放的形式 去设置小于12px的字体
& > div:nth-child(1) {
    position: relative;
    font-family: PingFangSC-Regular;
    color: #666666;
    letter-spacing: -0.24px;
    text-align: left;
    width: 30px;
    span {
      position: absolute;
      left: -15px;
      top: -5px;
      width: 60px;
      height: 34px;
      display: block;
      font-size: 20px;
      transform: scale(0.5);
    }
  }

html5有哪些新特性

  • 01:语义化标签
    • main、header、footer、section、nav、aside等标签
  • 02:新增视频 和音频 标签
  • 03:新增Canvas绘图
  • 04:新增本地存储localStorage、sessionStorage
  • 05:新增 Web Worker、WebSocket

css3有那些新特性

  • 01:box-shadow 盒子阴影
  • 02:text-shadow 文本阴影
  • 03:border-radius 盒子圆角
  • 04:transform 转换
    • 001:transform:translate() 平移
    • 002:transform:scale() 缩放
    • 003:transform: rotateY(180deg); 旋转
    • 004:transform: skew(180deg) 倾斜
  • 05:CSS3 的渐变效果 (Gradient )

css盒模型

  • 标准模式下,一个块的总宽度= width + margin(左右) + padding(左右) + border(左右)
  • 怪异盒模型,一个块的总宽度 = width(padding border) + margin
  • 注意点:控制盒模型的 css属性为 box-sizing属性
    • content-box:就是标准盒模型
    • border-box:就是怪异盒模型(IE盒模型)

利用css 实现盒子居中

  • 01:弹性盒,对父容器设置为弹性盒,子容器 设置 margin: auto即可
  • 02:使用定位 结合 平移 方式,就是父容器定位 relative,子容器设置absolute,并且使用平移去移中
  • 03:已知宽高时,直接父容器定位 relative,子容器设置absolute,子容器 margin:auto即可
  • 04:

01:弹性盒

<template>
  <div>
    <div class="father">
      father
      <div class="son">son</div>
    </div>
  </div>
</template>

<style lang="scss" scoped>
.father {
  display: flex;
  width: 200px;
  height: 200px;
  .son {
    color: red;
    margin: auto;
  }
}
</style>

02:使用定位 结合 平移

  • 可以设置未知 子容器盒子宽高的
    <div class="father">
      father
      <div class="son">son</div>
    </div>
  .father {
  position: relative;
  width: 200px;
  height: 200px;
  background: #ccc;
  .son {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    /* width: 40px;
    height: 40px; */
    color: red;
  }
}

03:使用定位(已知宽高)

  • 已知的盒子宽高的
<template>
  <div>
    <C />
    <div class="father">
      father
      <div class="son">son</div>
    </div>
  </div>
</template>
<style lang="scss" scoped>
.father {
  display: flex;
  position: relative;
  width: 200px;
  height: 200px;
  background: #ccc;
  .son {
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    margin: auto;
    width: 40px;
    height: 40px;
    color: red;
  }
}
</style>

04:使用margin(已知宽高)

    <div class="father">
      father
      <div class="son">son</div>
    </div>

.father {
  width: 200px;
  height: 200px;
  .son {
    margin: 50px;
    width: 100px;
    height: 100px;
    color: red;
  }
}

z-index的作用

  • z-index 属性设置元素的堆叠顺序,设置的层级高的显示再最上层
  • 注意点:就是使用 z-index 必须是有定位的,否者不起效果
  • 属性
    • auto——默认。堆叠顺序与父元素相等。
    • number——设置元素的堆叠顺序。
    • inherit——规定应该从父元素继承 z-index 属性的值。

BFC

  • BFC:就是一个独立的渲染区域,( 块级格式化上下文 )
  • BFC布局规则
    • 不会重叠 float浮动的盒子
    • 再独立的区域渲染,不会影响外盒子
    • 重新计算高度,浮动的元素也参与运算
    • margin 以相距最大的那个算
    • 上下排列,块级显示
  • BFC的触发规则
    • html标签
    • float不为node
    • position:为fixed | absolute
    • overflow:不为默认值(visible)
  • BFC作用:
    • 解决高度塌陷
    • 实现两栏自适应布局

:after与 ::after的区别

  • :after是伪元素

  • ::after是伪类

  • 两者的写法是相似的,只不过的:after是css2的写法,::after是css3的写法,相对而已,css2的写法兼容性会好一些

  • 常见伪类

  • “:link”、“:hover”、“:active”、“:focus”、“:lang()”、“not()”、“:first-child”、“:last-child”

css中,怎么设置左侧固定200px,随着右侧高度自适应

  • 解析:
    • 就是左侧固定200px,但是右侧宽是自适应的,可高可低,随着右侧的高变化,其左侧的也随着高变低
  • 解决:
    • 给左侧添加自适应
 padding-bottom:3000px;
  margin-bottom:-3000px;

href 与 src的区别

  • href:
    • 就是引入外部文档建立链接,再引入文档的时候,浏览器一边加载文件,一边执行渲染,两者不耽误,效率会高一些
    • 注意点:这也就是不建议使用@import的原因
  • src:
    • 引入外部的img等,或者js语法等操作,引入这些的时候,浏览器会停止当前线程的渲染,而去加载这些外部文件的渲染,再执行后续的渲染流程

FOUC(无样式内容闪烁)

  • 就是浏览器一加载的时候,短暂显示样式失效,这是由于使用了 @import 形式导入css等
  • @import 形式导入css
    • 这导入css的时候,会先加载这个css,再继续加载后面的的代码(浏览器)
  • css置于底部,或者css样式放置再不同的位置
    • 最终解决方法:再head头部之中 使用 link的形式引入css
    • 优点:就是不会阻塞浏览器的加载,浏览器一边加载css一边加载html等

常见的浏览器内核和前缀有哪些? 微信的浏览器内核是什么

Chrome => -webkit 谷歌 苹果 webkit

Opera => -o 欧朋浏览器 blink

Mozilla => -moz 火狐浏览器 Gecko

Microsoft => -ms IE浏览器 Trident

微信的浏览器内核为 -webkit

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值