Css3 常见技术面试题(一)

本文详细介绍了CSS3面试中常见的问题,包括标准CSS盒子模型与IE盒子模型的区别,link与@import的差异,如从属关系、加载顺序、兼容性和DOM可控性。此外,还探讨了::before和:after伪元素的用法,以及CSS优化和提高性能的策略,如外联样式的优势。最后,提到了全屏滚动的原理、style标签的位置影响及CSS3的新特性,如颜色模式、过渡效果和3D转换等。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 标准的CSS盒子模型与IE的盒子模型有什么不同?

标准的css盒子模型宽高就是内容区宽高;
低端IE css盒子模型宽高 内容+内边距+边框。

2 link和@import的区别

2.1 从属关系

link是HTML提供的标签;
@import是css的语法规则,只能加载在style标签内和css文件中使用。

2.2 加载顺序

link在页面加载时同时加载,而@import在页面加载完成后加载。

2.3 兼容性

@import只能用于ie5以上,link不受兼容影响

2.4 DOM可控性

Link支持js控制dom改变样式,而@import不支持

2.5 注意

不推荐使用@import,原因如下:
1、影响浏览器的并行下载。
2、多个@import的使用会使浏览器下载紊乱。

3 ::before 和 :after中双冒号和单冒号有什么区别?解释一下这2个伪元素的作用

单冒号(:)用于CSS3伪类,双冒号(::)用于CSS3伪元素。(伪元素由双冒号和伪元素名组成);
::befor是css3中伪元素的新语法,让插入的内容在其他内容之前,
:after是css1的语法,兼容性好,让插入的内容在其他内容之后。

4 Css优化、提高性能的方法

1、尽量将样式写在单独的css文件中,在head元素中引入,好处有以下几点:
(1)内容和样式分离,易于管理和维护
(2)减少页面体积
(3)css文件可以被缓存、重用、维护成本降低

2、尽量不使用@import(影响css文件加载速度)

3、避免使用复杂的选择器,层级越少越好
建议选择器的嵌套最好不要超过三层,例如.header .logo .text{},
可以减少css文件大小、提高加载性能、浏览器解析时也会更加高效。

4、精简页面的样式文件,去掉不用的样式

5、利用CSS继承减少代码量

6、慎重使用高性能属性:浮动、定位;

5 CSS的实现方式有几种?那种CSS实现方式优势更突出?相对其他实现方式而言其优点有哪些?

三种:内联 内嵌 外联。
外联优势更突出,原因如下:
使用外联样式使内容和样式分离,易于管理和维护,减少页面体积,css文件可以被缓存、重用、维护成本低。

6 全屏滚动的原理以及用到的css属性

有点类似于轮播,整体的元素一直排列下去,
假设有5个需要展示的全屏页面,那么高度是500%,只是展示100%,剩下的可以通过transform进行y轴定位
overflow:hidden;transition:all 1000ms ease

7 style标签写在body后与body前有什么区别

写在body前有利于浏览器逐步渲染
写在body后会导致浏览器停止渲染,并等到样式表解析完成后重新渲染

8 Css3新特性

颜色:新增RGBA、HSLA模式
文字阴影 text-shadow
边框:圆角border-radius 边框阴影border-shadow 图片边框border-image
盒子模型:box-sizing
背景:background-size设置背景图片的尺寸,background-origin设置背景图片的原点,background-clip设置背景图片的裁剪区域
渐变:linear-gradient、radial-gradient
过渡:transition可实现动画
自定义动画
多媒体查询、多栏布局
2D转换:transform:translate(x,y)rotate(x,y)skew(x,y)scale(x,y)
3D转换
在CSS3中唯一引入的伪元素是::selection

### 关于 Vue 和 CSS常见面试题整理 以下是关于 Vue 和 CSS常见面试题目及其解答: #### Vue 部分 1. **什么是 Vue.js 中的响应式数据绑定?它是如何工作的?** - 响应式数据绑定是通过观察者模式实现的数据与视图之间的双向绑定。当数据发生变化时,视图会自动更新;反之亦然[^1]。 2. **Vue.js 中 `v-model` 双向绑定的工作原理是什么?** - `v-model` 实现的核心在于监听输入框的变化事件并同步到模型中,同时将模型中的值应用到 DOM 上。具体来说,它利用了 JavaScript 的 getter 和 setter 方法以及依赖追踪机制来完成这过程[^1]。 3. **解释下 Vue.js 生命周期钩子函数的作用和顺序。** - Vue 组件生命周期包括多个阶段:创建 (`beforeCreate`, `created`)、挂载 (`beforeMount`, `mounted`)、更新 (`beforeUpdate`, `updated`) 和销毁 (`beforeDestroy`, `destroyed`)。这些钩子允许开发者在特定时刻执行自定义逻辑[^2]。 4. **组件化的意义是什么?Vue 如何支持组件化开发?** - 组件化是种软件设计方法论,旨在提高代码复用性和可维护性。Vue 提供了套完整的 API 来构建独立的功能模块——即组件,并且可以通过单文件组件 (.vue 文件) 将模板、脚本和样式封装在起[^1]。 --- #### CSS 部分 1. **CSS Flexbox 是什么?它的主要用途有哪些?** - Flexbox(弹性盒子布局)是维布局方案,用于解决复杂页面布局问题。它可以轻松处理水平居中、垂直排列等问题,非常适合动态调整大小的内容区域[^3]。 2. **BEM 命名法的意义是什么?为什么推荐使用 BEM?** - BEM 表示 Block Element Modifier,这是种基于模块化原则的命名约定方式。采用这种风格可以帮助团队成员更清晰地理解 HTML/CSS 结构关系,减少冲突风险的同时提升协作效率[^4]。 3. **伪类选择器和伪元素有什么区别?举例说明它们的应用场景。** - 伪类用来匹配某些状态下的元素(如`:hover`, `:active`),而伪元素则表示实际存在于文档流之外的部分(比如首字母或行内生成内容)。两者虽然都以冒号开头但功能完全不同[^5]。 4. **媒体查询 Media Query 在响应式网页设计中有何作用?** - 使用 @media 规则可以根据不同的设备特性设置相应的样式规则,从而让同个网站适应多种屏幕尺寸需求。这是现代前端开发不可或缺的技术[^6]。 --- ### 示例代码片段 以下是些简单的 Vue 和 CSS 示例代码展示其基本概念: ```html <!-- Vue 单文件组件 --> <template> <div class="container"> <input type="text" v-model="message" /> <p>{{ message }}</p> </div> </template> <script> export default { data() { return { message: &#39;Hello Vue!&#39; }; } }; </script> <style scoped> .container { display: flex; justify-content: center; } </style> ``` ```css /* 简单的 Flexbox 应用 */ .parent { display: flex; align-items: center; /* 垂直居中 */ } .child { margin-right: 10px; } ``` ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值