前端面试基础面试题——6

简介: 前端面试基础面试题——6
1.CSS 隐藏元素的几种方法(至少说出三种)

1、display:none;

display翻译成中文是显示、展览的意思;将display的属性改为none可以实现元素的隐藏,元素和盒子模型也不生成,被隐藏的元素不占位置,看不见摸不着,它会导致浏览器的重排和重绘。

2、visibility:hidden;

visibility翻译成中文是能见、可见性的意思;hidden翻译成中文的是隐藏、不易察觉的意思。将visibility的属性改成hidden可以实现元素的隐藏,和display:none的区别是它占位置,看不见但是摸得着,所以它只会导致浏览器重绘而不会重排。

3、opacity:0;

opacity翻译成中文是透明度、不透明的意思;将opacity的属性改成0那就是透明度等于0看不见元素,但是这种方法也是只能隐藏看不见元素,和visibility:hidden一样,元素依然存在页面中。

4、position;

利用定位将元素的top和left值设为足够大的负数,使它移出屏幕在屏幕上看不见。

5、overflow:hidden;

overflow翻译成中文是漫出、溢出的意思;将overflow的属性设置hidden可以实现元素隐藏,但是这个是超出盒子的部分隐藏,有局限性。

总:常用的方法就是display:none 和visibility:hidden。

2.页面导入样式时,使用 link 和@import 有什么区别?

1. Link 属于 html 标签,而@import 是 CSS 中提供的

2. 在页面加载的时候,link 会同时被加载,而@import 引用的 CSS 会在页面加载完成后才会加载引用的 CSS

3. @import 只有在 ie5 以上才可以被识别,而 link 是 html 标签,不存在浏览器兼容性问题

4. Link 引入样式的权重大于@import 的引用(@import 是将引用的样式导入到当前的页面中)

3.伪元素和伪类的区别?

伪元素使用 2 个冒号,常见的有:::before,::after,::first-line,::first-letter,::selection、::placeholder 等

伪类使用1个冒号,常见的有::hover,:link,:active,:target,:not(),:focus等。

伪元素添加了一个页面中没有的元素(只是从视觉效果上添加了,不是在文档树中添加);

伪类是给页面中已经存在的元素添加一个类。

4.行内元素和块级元素的具体区别是什么?行内元素的 padding 和 margin 可设置吗?

块级元素(block)特性:

总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;

宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;

内联元素(inline)特性:

和相邻的内联元素在同一行;

宽度(width)、高度(height)、内边距的 top/bottom(padding-top/padding-bottom)和外边距的 top/bottom(margin-top/margin-bottom)都不可改变(也就是 padding 和 margin 的 left 和 right 是可以设置的),就是里面文字或图片的大小。

5.什么是外边距重叠?重叠的结果是什么?

外边距重叠就是 margin-collapse。

在 CSS 当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。

折叠结果遵循下列计算规则:

1. 两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。

2. 两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。

3. 两个外边距一正一负时,折叠结果是两者的相加的和。

6.rgba()和 opacity 的透明效果有什么不同?

rgba()和 opacity 都能实现透明效果,但最大的不同是 opacity 作用于元素,以及元素内的所有内容的透明度

而 rgba()只作用于元素的颜色或其背景色。(设置 rgba 透明的元素的子元素不会继承透明效果)

7.css 中可以让文字在垂直和水平方向上重叠的两个属性是什么?

垂直方向:line-height                水平方向:letter-spacing

8.display:none 与 visibility:hidden 的区别是什么?

display :  隐藏对应的元素但不挤占该元素原来的空间。

visibility:  隐藏对应的元素并且挤占该元素原来的空间。

即是,使用 CSS display:none 属性后,HTML 元素(对象)的宽度、高度等各种属性值都将“丢失”; 而使用 visibility:hidden 属性后,HTML 元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在。

9.li 与 li 之间有看不见的空白间隔是什么原因引起的?有什么解决办法?

浏览器的默认行为是把 inline 元素间的空白字符(空格换行 tab)渲染成一个空格

换行后会产生换行字符,而它会变成一个空格,当然空格就占用一个字符的宽度。

是因为 <li> 换行导致的,那就可以将 <li> 代码全部写在一排

10.什么是 FOUC? 如何避免

1. 什么是 Fouc(文档样式短暂失效)?

在引用 css 的过程中,如果方法不当或者位置引用不对,会导致某些页面在 windows 下的 ie 出现一些奇怪的现象,以无样式显示页面内容的瞬间闪烁,这种现象称之为文档样式短暂失效,简称 FOCU。

2. 原因大致为:

  • 使用 import 方法导入样式表
  • 将样式表放在页面底部
  • 有几个样式表,放在 html 结构的不同位置。

3. 其实原理很清楚:当样式表晚于结构性 html 加载,当加载到此样式表时,页面将停止之前的渲染。此样式表被下载和解析后,将重新渲染页面,也就出现了短暂的花屏现象。

4. 解决方法:使用 link 标签将样式表放在文档 head 中。

相关文章
|
1月前
|
缓存 前端开发 JavaScript
"面试通关秘籍:深度解析浏览器面试必考问题,从重绘回流到事件委托,让你一举拿下前端 Offer!"
【10月更文挑战第23天】在前端开发面试中,浏览器相关知识是必考内容。本文总结了四个常见问题:浏览器渲染机制、重绘与回流、性能优化及事件委托。通过具体示例和对比分析,帮助求职者更好地理解和准备面试。掌握这些知识点,有助于提升面试表现和实际工作能力。
66 1
|
3月前
|
Web App开发 前端开发 Linux
「offer来了」浅谈前端面试中开发环境常考知识点
该文章归纳了前端开发环境中常见的面试知识点,特别是围绕Git的使用进行了详细介绍,包括Git的基本概念、常用命令以及在团队协作中的最佳实践,同时还涉及了Chrome调试工具和Linux命令行的基础操作。
「offer来了」浅谈前端面试中开发环境常考知识点
|
4月前
|
存储 XML 移动开发
前端大厂面试真题
前端大厂面试真题
|
2月前
|
Web App开发 JavaScript 前端开发
前端Node.js面试题
前端Node.js面试题
|
4月前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
【8月更文挑战第18天】
58 2
|
4月前
|
存储 JavaScript 前端开发
2022年前端js面试题
2022年前端js面试题
45 0
|
4月前
|
存储 前端开发 JavaScript
44 个 React 前端面试问题
44 个 React 前端面试问题
|
4月前
|
存储 JavaScript 前端开发
|
4月前
|
Web App开发 存储 缓存
|
4月前
|
前端开发 应用服务中间件 API
"揭秘!面试官必问:你是如何巧妙绕过跨域难题的?前端代理VS服务器端CORS,哪个才是你的秘密武器?"
【8月更文挑战第21天】在软件开发中,尤其前后端分离架构下,跨域资源共享(CORS)是常见的挑战。主要解决方案有两种:一是服务器端配置CORS策略,通过设置响应头控制跨域访问权限,无需改动前端代码,增强安全性;二是前端代理转发,如使用Nginx或Webpack DevServer在开发环境中转发请求绕过同源策略,简化开发流程但不适用于生产环境。生产环境下应采用服务器端CORS策略以确保安全稳定。
59 0

热门文章

最新文章