前端面试-HTML+CSS中的重点

一、对HTML语义化的理解?

简单来说,就是用恰当的标签标记内容。

优点: 1、对机器友好,有利于SEO

            2、对开发者友好,增强了可读性,结构更加清晰,便于团队开发与维护。

常见的语义化标签:

<header></header>   头部
<nav></nav>   导航栏
<main></main>  主要内容
<section></section> 区块(有语义化的div)
<article></article>  主要内容
<aside></aside> 侧边栏
<footer></footer> 底部

二、什么是BFC? 如何触发?

概念: BFC意为块级格式化上下文(Block Formatting Context)。目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素。

特点: 

  • 对于同一个BFC的俩个相邻的盒子的margin会发生重叠,与方向无关。
  • BFC的区域不会与float的元素区域重叠
  • 内部的盒子会在垂直方向上一个接一个的放置
  • 计算BFC的高度时,浮动子元素也参与计算

如何触发?

  • 设置overflow值不为 visible,为 auto、scroll、hidden
  • display的值为inline-block、inltable-cell、table-caption、table、inline-table、flex、inline-flex、grid、inline-grid
  • position的值为absolute或fixed

应用场景:

  1. 解决margin重叠的问题
/* 原先margin会发生重叠的代码, 对于同一个BFC的俩个相邻的盒子的margin会发生重叠 */
<p class="p1">我是暗裔</p>
<p class="p2">剑魔</p>


<style>
.p1 {
   margin-bottom: 20px;
}

.p2 {
   margin-top: 15px;
}

</style>


/* 解决margin重叠的代码,给另一个p元素设置在另一个BFC中 */
<p class="p1">我是暗裔</p>
<div class="wrap">
  <p class="p2">剑魔</p>
</div>


<style>
.p1 {
   margin-bottom: 20px;
}

.p2 {
   margin-top: 15px;
}

.wrap {
  overflow: hidden;
}

</style>

2. 用于清除浮动,触发父元素为BFC,使其不影响外部布局。

三、offsetHeight 、clientHeight、scrollHeight的区别?

offsetHeight、offsetHeight: border + padding + content

clientHeight、clientwidth: padding + content

scrollHeght、scrollWidth: padding + 实际内容尺寸

示例代码:scrollWidth/scrollHeight

.container {
   padding: 40px;
   height: 90px;
   width: 300px;
   overflow: scroll;
}

.box3 {
  width: 600px;
  height: 500px;
  border: 5px solid #333;
  background-color: yellowgreen;
  padding: 10px;
}

<div class="container">
   <div class="box3"></div>
</div>


const c = document.querySelector(".container");
console.log(c.scrollHeight, c.scrollWidth, "ccc"); // 610 , 710

scrollHeight = 500 + 10 + 20 + 80 = 610 = 子元素实际高度 + 父元素的上下padding
scrollWidth = 600+ 10 + 20 + 80 = 710 = 子元素实际宽度 + 父元素的左右padding

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
2023年最全前端面试(20w字)内容涵盖了许多关键主题,包括HTML5、CSS3、JavaScript、TypeScript、Vue3、React18等技术相关的知识。此外,还包括了常见的八股文题目、手写代码、项目经验等面试常见问题。以下是该面试指南的简要概述: 一、HTML5、CSS3和JS基础知识 该部分内容主要包括HTML5语义化标签、CSS3新特性、JavaScript的基础语法、DOM操作、事件绑定等。在回答面试问题时,需要清晰地介绍每个知识点的相关概念和具体应用。 二、TypeScript 这一部分涵盖了TypeScript的基本语法、类型系统、类型推断、接口等内容。回答问题时,需要对每个知识点进行逐一展开,甚至可以提供一些相关的示例代码。 三、Vue3和React18 这两个主题涵盖了Vue框架和React框架的最新版本。需要重点讨论Vue3和React18的新特性、组件开发、状态管理、路由等方面。回答时,可以结合具体的项目经验和实践来进行阐述。 四、八股文题目 在面试,常常会遇到一些相对固定的问题,例如介绍JavaScript的执行机制、事件循环、闭包等。针对这些常见问题,需要准备充分的回答,并且能够清晰地表达自己对这些问题的理解。 五、手写代码 面试,可能会要求候选人手写一些常见的算法题或者代码片段。为了更好地准备,可以提前练习并了解一些常见的编码题目,确保能够熟练地进行编码。 六、项目经验 在回答项目经验问题时,需要能够清晰地介绍自己的项目背景、负责的任务和实现的功能,并且能够突出自己在项目的亮点和成果。 七、笔试 面试可能会有笔试环节,考察候选人的编码能力和解决问题的能力。准备笔试时,可以多练习一些常见的编码题,并且熟悉常用的编码工具和技巧。 总之,这份面试指南涵盖了前端开发的关键知识点和常见问题,希望能够帮助候选人更好地准备和应对面试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值