当前位置: 首页 > news >正文

研一自救指南 - 07. CSS面向面试学习

最近的前端面试多多少少都会遇到css的提问,感觉还是要把重点内容记记背背。这里基于b站和我自己面试的情况整理。

 20250418更新:

1. BFC

Block Formatting Context,一个块级的盒子,可以创建多个。里面有很多个块,他们的布局、浮动元素和其他元素的相互作用受BFC规则的影响。

内部每个块从上到下一个一个放,垂直方向由margin,上下margin可能重叠,BFC不会与float box重叠。

对于浮动元素,如果不用BFC,肯可能有高度丢失的问题

形成BFC的条件:

float不为none

overflow为auto、scroll、hidden

display为

2. 容器的  flex

让块级元素可以整齐排列,而不是一行一行

display: flex

主轴方向:

flex-direction:row(默认) / row-reverse / column(垂直) / column-reverse

主轴排列方式:

justify-content: flex-start(顺着主轴)/ flex-end(逆着主轴)/ center(居中) / space-between(左右靠边,均分) / space-around(均分) / baseline

交叉轴的排列方式:

align-items:stretch(沿着交叉轴拉伸) / flex-start(垂直轴起始) / flex-end(垂直轴结束) / center

多行垂直轴排列方:

align-contents:stretch / flex-start / flex-end / center / space-between / space-around

间距:

gap: 10px

换行:

flex-wrap: nowrap(默认不换行) / wrap(换行) / wrap-reverse(从上到下换行)

3. 盒子模型

content(元素实际内容)-padding-border-margin

content: width / height

padding: padding-top / bottom / left / right

对于块级元素,默认占满一行对于行内元素,如span,不能直接通过width和height设置,设置display: inline-block就可以控制宽高了

默认 width 和 height 是只包括 content 的,再有 margin 就大了,即盒子的默认模式为content-box,即box-sizing: border-box,否则可以设置box-sizing: border-box

border: solid(实线)、点线(dotted)、double(双实线)、dashed(虚线)

4. CSS定位

position: static(默认,设置top、right无效) / relative(通过自己定位,在文档流(就是还会在文档里留位置)) / sticky(不设置top等和static没区别,设置后,先static再fixed) / fixed(浏览器窗口左上角,脱离文档流,不影响其他元素定位) / absolute(绝对定位,脱离文档流,相对于最靠近它的非static的父容器,如果没有)

5. 样式使用方法

优先级:内联>内部>外部

内联样式:直接写在html元素的标签中  style="color=red"

内部样式:在style块里写

外部样式:在head里写<link rel="stylesheet" herf="./css/style.css">

6. 选择器:

id>class>标签名

  • 元素选择器:h2  直接写
  • 类选择器:class   .class
  • id选择器:id    #id
  • 通用选择器: * 选择所有元素
  • 子元素选择器:   .father > #id/.class
  • 后代选择器:  .father p{}
  • 相邻兄弟选择器:h3 + p{}    (相当于是对h3和p相邻的情况下,对p做样式)
  • 伪类选择器:

7. 属性

style="font: bolder 50px" 复合属性,可以写在一起

font-size: 字体大小

font-family:字体

font-weight:字体粗细

line-height: 行高

 8. 浮动会导致父元素坍塌

解决方法:(1)在父元素写 overflow:hidden;(2)

旧内容:

1. 选择器

p{
}// 对于id  id = "demo"
#demo {
}// 对于类  class = "center"
.center {
}// 对于  class = "center" 的<p>
p.center {
}// 允许class = "center large"
可以分别设置样式,然后两个都使用等等// 对于所有元素
* {
}// 对于多个选择器
h1, h2, p {
}

2. 外部CSS

<head>
  <link rel="stylesheet" type="text/css" href="mystyle.css">
</head>

rel="stylesheet" 是告诉浏览器这是一个CSS文件,type="text/css"告诉浏览器文件类型是CSS,herf="mystyle.css"指定样式文件的路径

3. 一些内容

opacity透明度,0-1.0,越低越透明

或者直接这样写   background: rgba(0, 128, 0, 0.3)

4. 背景设置

body {
  background-image: url("paper.gif");

  background-repeat: no-repeat;

  background-attachment: fixed;  // 固定

}

body {
  background-image: url("bgdesert.jpg");

  background-repeat: repeat-x;

  background-position: right top;

  background-attachment: scroll;  // 滚动

}

5. v-bind和v-model

v-model 是双向绑定语法,html和js变量中的值会同步发生变化,js和ui是同步的

v-bind 会被缩写成:  表示绑定的是表达式的值

v-model.number=" ":把输入或选中的值自动转为数字(能转则转,适当扔,转不了拉倒)

v-model.trim:自动去除字符串两边的空格

v-model.lazy:不在 input 时更新,而是在 blur 时更新(失焦后更新)

6. axios

是一个用于发送http请求的库,可以从前端向服务器端发送或获取数据


 

相关文章:

  • MySQL如何实现行行比较
  • php多种方法实现xss过滤
  • 工厂模式具体应用在什么场景?
  • End-to-End从混沌到秩序:基于LLM的Pipeline将非结构化数据转化为知识图谱
  • 【计算机视觉】三维视觉项目 - Colmap二维图像重建三维场景
  • 第二模块·语法迁移篇 —— 第七章 指针的消亡与引用的新生:从内存操作到对象访问的革命
  • 商标起名换了暗示词,通过初审!
  • Linux系统中的网络管理
  • SQL系列:常用函数
  • 每日OJ_牛客_最小差值_排序_C++_Java
  • ESP-ADF外设子系统深度解析:esp_peripherals组件架构与核心设计(显示输出类外设之LCD)
  • 深入理解前端安全:CSRF与XSS攻击详解
  • 在小米AX6000中通过米家控制tailscale
  • 使用ref和refs获取DOM元素和组件方法,使用$nextTick解决Vue异步更新的逻辑下无法获取DOM的问题
  • 力扣面试150题-- 存在重复元素 II和最长连续序列
  • 系统架构设计师:计算机组成与体系结构(如CPU、存储系统、I/O系统)案例分析与简答题、详细解析与评分要点
  • 中间件--ClickHouse-12--案例-1-日志分析和监控
  • 如何0基础学stm32?
  • redis和lua为什么能实现事务
  • 智能语音备忘录:SpeechRecognition与gTTS的奇妙融合
  • 收缩非洲业务专注挖矿,裁减大批外交官,“美国务院改革草案”引争议
  • 中方决定对在涉港问题上表现恶劣的美国国会议员等实施制裁
  • 消费维权周报丨上周合同纠纷类投诉多,合同未到期关闭门店等
  • 分离19年后:陈杨梅首度露面,父亲亲手喂棉花糖给女儿吃
  • 管理规模归零,华夏基金“ETF规模一哥”张弘弢清仓卸任所有产品
  • 2025年世界互联网大会亚太峰会人工智能大模型论坛举行