前端CSS面试常见题

边界塌陷

  1. 盒模型有两种:W3C盒模型和IE盒模型,区别在于宽度是否包含边框

  2. 定义:同时给兄弟/父子盒模型设置上下边距,理论上边距值是两者之和,实际上不是

  3. 注意:浮动和定位不会产生边界塌陷;只有块级元素垂直方向才会产生margin合并

  4. margin计算方案

  • margin同为正负:取绝对值大的值
  • 一正一负:求和
  1. 父子元素边界塌陷解决
  • 父元素可以通过调整padding处理;设置overflow hidden,触发BFC

  • 子元素可以设置display inkine-block ;overflow hidden ;也可以设置浮动和定位

css中的bfc

文档流

  1. 分为定位流、浮动流、普通流
    普通流就是bfc中的fc
  2. fc是格式化的上下文,是页面中一块渲染区域,决定了其子元素如何布局
    常见有 bfc ifc gfc ffc

bfc

是格式化上下文,web页面中盒模型布局的css渲染模式,是一个独立的渲染区域或隔离的独立容器

如何产生bfc

  1. 浮动元素 float:left/right
  2. 定位: absolute/fixed
  3. display: inline-block
  4. overflow: hidden/scroll/auto (除了visible之外的其他值)

bfc特性

  1. 内部盒子垂直方向顺次放置
  2. 垂直方向距离由margin决定
  3. bfc区域不会和float区域重叠
  4. 计算bfc高度,浮动元素也参与计算
  5. 容器中子元素不影响外面的元素·

csshack

条件hack

  1. 调整页面的兼容性,用判断的形式调用不同的样式表
  2. 产生兼容性原因:浏览器内核不同,对css解释方式不同
  3. 写法
html 复制代码
<!-- [if IE] -->
代码块
<![endif]  -->

src和href的区别

  1. 请求资源类型不同

    href表示超文本引用,建立当前元素和文档之间关联

    src将指向的资源下载并应用到文档中

  2. 作用结果不同

    href用于文档和资源之间建立联系

    src用于替换当前内容

  3. 浏览器解析方式不同

    href会并行下载,并不停止对当前文档处理

    src会暂停其他资源的下载和处理,直到该资源加载完毕

浏览器内核

浏览器内核也称渲染引擎,解释网页语法并渲染到网页上

内核主要有Trident(IE)、Webkit(Safari Chrome)、Gecko(firefox)、Presto(opera)

兼容性问题

主要存在与IE浏览器与其他浏览器之间

  1. csshack
  2. 边界塌陷问题
  3. 示例
  • ie9以下不支持媒体查询
  • ie9以下不支持flex布局
  • ie8及更早版本不支持:nth-child等选择器

felx和grid优劣对比

  1. flex非常适合处理单轴线布局,grid更适合二维布局
  2. flex对于需要同时处理行和列的复杂布局不够强大
  3. grid布局项目尺寸不灵活,flex更灵活
  4. flex更简单易用
相关推荐
9号达人1 天前
优惠系统演进:从"实时结算"到"所见即所得",前端传参真的鸡肋吗?
java·后端·面试
是一碗螺丝粉1 天前
React Native 运行时深度解析
前端·react native·react.js
Jing_Rainbow1 天前
【前端三剑客-9 /Lesson17(2025-11-01)】CSS 盒子模型详解:从标准盒模型到怪异(IE)盒模型📦
前端·css·前端框架
爱泡脚的鸡腿1 天前
uni-app D6 实战(小兔鲜)
前端·vue.js
青年优品前端团队1 天前
🚀 不仅是工具库,更是国内前端开发的“瑞士军刀” —— @qnvip/core
前端
北极糊的狐1 天前
Vue3 中父子组件传参是组件通信的核心场景,需遵循「父传子靠 Props,子传父靠自定义事件」的原则,以下是资料总结
前端·javascript·vue.js
看到我请叫我铁锤1 天前
vue3中THINGJS初始化步骤
前端·javascript·vue.js·3d
q***25211 天前
SpringMVC 请求参数接收
前端·javascript·算法
Dream it possible!1 天前
LeetCode 面试经典 150_图_克隆图(90_133_C++_中等)(深度优先:DFS)
c++·leetcode·面试·
q***33371 天前
Spring Boot项目接收前端参数的11种方式
前端·spring boot·后端