【前端面试题——CSS篇】

这篇具有很好参考价值的文章主要介绍了【前端面试题——CSS篇】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.absolute的containing block计算方式跟正常流有什么不同?

  • 如果此元素为 inline 元素,则 containing block 为能够包含这个元素生成的第一个和最后一个 inline box 的padding box (除 margin, border 外的区域) 的最小矩形;
  • 否则,则由这个祖先元素的 padding box 构成。 如果都找不到,则为 initial containing block。
  • 补充
    static(默认的)/relative:简单说就是它的父元素的内容框(即去掉padding的部分)
    absolute: 向上找最近的定位为absolute/relative的元素
    fixed: 它的containing block一律为根元素(html/body)

2.CSS里的visibility属性有个collapse属性值?在不同浏览器下以后什么区别?

visibility:collapse
collapse属性值定义不同的元素有不同的效果。

  • 用在表格元素时:会删除一行或一列,不会影响表格的布局;
  • 用在非表格元素上时:和hidden属性值的效果一样;

visibility:collapse不同浏览器的区别:
当一个元素的visibility属性被设置成collapse值后,对于一般的元素,它的表现跟hidden是一样的。但例外的是,如果这个元素是table相关的元素,例如table行,table group,table列,table column group,它的表现却跟 display: none 一样,也就是说,它们占用的空间也会释放。

在谷歌浏览器里,使用 collapse 值和使用 hidden 值没有什么区别

在火狐浏览器、Opera和IE11里,使用 collapse 值的效果就如它的字面意思:table的行会消失,它的下面一行会补充它的位置

3.display:none与visibility:hidden的区别?

display:none 不显示对应的元素,在文档布局中不再分配空间(回流+重绘)
visibility:hidden 隐藏对应元素,在文档布局中仍保留原来的空间(重绘)

4.position(定位)跟display(元素类型)、overflow(溢出)、float(浮动)这些特性相互叠加后会怎么样?

display属性规定元素应该生成的框的类型;
position属性规定元素的定位类型;
float属性是一种布局方式,定义元素在哪个方向浮动。
类似于优先级机制:position:absolute(绝对定位)/fixed(绝对定位)优先级最高,有他们在时,float不起作用,display值需要调整。float 或者absolute定位的元素,只能是块元素或表格。

5.对BFC规范(块级格式化上下文:block formatting context)的理解?

也就是在一个BFC的盒子,会从所在的盒子块的最顶部开始,在盒子的垂直方向上一个挨一个的摆放咱们写的标签,我们平常不太会注意这点,感觉这是没写样式,堆积的现象是正常的,但这却是BFC帮助我们实现的。当我们对某个盒子设置一个margin-top的时候,BFC会帮助我们解析,然后会在盒子布局时候给一个上边距,在一个BFC中,每个元素的左边缘都会紧贴着当前块的左边缘。这都是BFC的影响。
不同的BFC区域之间是相互独立的,互不影响的。BFC目的是形成一个相对于外界完全独立的空间,让内部的子元素不会影响到外部的元素。

6.为什么会出现浮动和什么时候需要清除浮动?清除浮动的方式?

浮动的框可以向左或向右移动,直到他的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流的块框表现得就像浮动框不存在一样。浮动的块框会漂浮在文档普通流的块框上。
浮动元素引起的问题
父元素的高度无法被撑开,影响与父元素同级的元素
与浮动元素同级的非浮动元素(内联元素)会跟随其后
若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构
清除浮动的方式

  • 使用额外的标签,书写方便,但结构差
  • 父元素添加overflow:hidden,代码简洁,内容增多的时候容易造成高度塌陷,溢出隐藏
  • 为父元素设置高度,简单有效,但需要手动添加高度,如果后面高度发生变化,还需再次修改,比较繁琐
  • 使用after伪元素清楚浮动,符合闭合浮动,在一些浏览器上不支持使用after,,会触发hasLayout

7.上下margin重合的问题?

在重合元素外包裹一层容器,并触发该容器生成一个BFC。
第一种情况:

  • float浮动
  • inline-block

第二种情况:

  • 父级加overflow:hidden

  • 加padding

  • 加border

  • 子级加position:absolute

8. 设置元素浮动后,该元素的display值是多少?

css 浮动后的元素display都默认是block,就是设置inline也是block

9.移动端的布局用过媒体查询吗?

10.CSS优化、提高性能的方法有哪些?

  • 避免过度约束
  • 避免后代选择符
  • 避免链式选择符
  • 使用紧凑的语法
  • 避免不必要的命名空间
  • 避免不必要的重复
  • 最好使用表示语义的名字
  • 避免!important大量使用,可以选择其他选择器

11.浏览器是怎样解析CSS选择器的?

CSS选择器的解析是从右向左解析的。

  • 若从左向右的匹配,发现不符合规则,需要进行回溯,会损失很多性能。
  • 若从右向左匹配,先找到所有的最右节点,对于每一个节点,向上寻找其父节点直到找到根元素或满足条件的匹配规则,则结束这个分支的遍历。两种匹配规则的性能差别很大,是因为从右向左的匹配在第一步就筛选掉了大量的不符合条件的最右节点(叶子节点),而从左向右的匹配规则的性能都浪费在了失败的查找上面。

而在 CSS 解析完毕后,需要将解析的结果与 DOM Tree 的内容一起进行分析建立一棵 Render Tree,最终用来进行绘图。在建立 Render Tree 时(WebKit 中的「Attachment」过程),浏览器就要为每个 DOM Tree 中的元素根据 CSS 的解析结果(Style Rules)来确定生成怎样的 Render Tree。

12.在网页中的应该使用奇数还是偶数的字体?为什么呢?

使用偶数字体。偶数字号相对更容易和 web 设计的其他部分构成比例关系。Windows 自带的点阵宋体(中易宋体)从 Vista 开始只提供 12、14、16 px 这三个大小的点阵,而 13、15、17 px时用的是小一号的点。(即每个字占的空间大了 1 px,但点阵没变),于是略显稀疏。

13.margin和padding分别适合什么场景使用?

margin和padding是在html中的盒模型的基础上出现的。
margin是盒子的外边距,即盒子与盒子之间的距离,而padding是内边距,是盒子的边与盒子内部元素的距离
何时使用margin:

  • 需要在border外侧添加空白
  • 空白处不需要背景色
  • 上下相连的两个盒子之间的空白,需要相互抵消时。
    何时使用padding:
  • 需要在border内侧添加空白
  • 空白处需要背景颜色
  • 上下相连的两个盒子的空白,希望为两者之和。
  • 兼容性的问题:在IE5 IE6中,为float的盒子指定margin时,左侧的margin可能会变成两倍的宽度。通过改变padding或者指定盒子的display:inline解决。

14.元素竖向的百分比设定是相对于容器的高度吗?

当按百分比设定一个元素的宽度时,它是相对于父容器的宽度计算的,但是,对于一些表示竖向距离的属性,例如 padding-top , padding-bottom , margin-top , margin-bottom 等,当按百分比设定它们时,依据的也是父容器的宽度,而不是高度。

15.全屏滚动的原理是什么?用到了CSS的哪些属性?

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

16.什么是响应式设计?响应式设计的基本原理是什么?如何兼容低版本的IE?

响应式设计:
是一种网络页面设计布局,页面的设计与开发应当根据用户行为以及设备环境(系统平台,屏幕尺寸,屏幕定向等)进行相应的响应和调整
基本原理
通过媒体查询检测不同的设备屏幕尺寸做处理,为了处理移动端,页面头部必须有meta声明viewport.
实现方式

  • 媒体查询
  • 百分比
  • vw/vh
  • rem
    总结
    响应式设计的思考方向:
    • 弹性盒子和媒体查询
    • 使用百分比创建流式布局,同时使用媒体查询限制元素的尺寸和内容变更范围
    • 使用相对单位是内容自适应调节
    • 选择断点,针对不同断点实现不同的布局和内容展示

17. 视差滚动效果?

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

**单冒号(: )**用于CSS3伪类,
**双冒号(:😃**用于CSS3伪元素
::before就是以一个子元素的存在,定义在元素主体内容之前的一个伪元素。并不存在于dom之中,只存在在页面之中。
:before 和 :after 这两个伪元素,是在CSS2.1里新出现的。起初,伪元素的前缀使用的是单冒号语法,但随着Web的进化,在CSS3的规范里,伪元素的语法被修改成使用双冒号,成为::before ::after

19.让页面里的字体变清晰,变细用CSS怎么做?

-webkit-font-smoothing在window系统下没有起作用,但是在IOS设备上起作用-webkit-font-smoothing:antialiased是最佳的,灰度平滑。文章来源地址https://www.toymoban.com/news/detail-407604.html

20. position:fixed;在android下无效怎么处理?

到了这里,关于【前端面试题——CSS篇】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 入职微软一月后的感悟,谈谈面试经历及入职体验,web前端常见面试题

    在某一天,我在某 App 上被一个微软的陌生人勾搭,简单地电面后一拍即合,我向他投递了简历。 正式的面试一共有四轮,三轮技术面 + 一轮 AA 面(大老板),每轮持续时间一个小时左右。 除了最后一面聊了聊人生、理想、逻辑推理等非技术内容。其他三面基本上是项目算

    2024年04月26日
    浏览(33)
  • 前端面试题css(一)

    2023年08月24日
    浏览(23)
  • CSS前端面试

    px :绝对单位,页面按精确像素展示 em :相对单位,基准点为父节点字体的大小,如果自身定义了font-size按自身来计算,整个页面内1em不是一个固定的值 rem :相对单位,可理解为root em, 相对根节点html的字体大小来计算 vh、vw :主要用于页面视口大小布局,在页面布局上更加

    2024年02月14日
    浏览(27)
  • 【前端面试题——CSS篇】

    如果此元素为 inline 元素,则 containing block 为能够包含这个元素生成的第一个和最后一个 inline box 的padding box (除 margin, border 外的区域) 的最小矩形; 否则,则由这个祖先元素的 padding box 构成。 如果都找不到,则为 initial containing block。 补充 : static(默认的)/relative:简单说就是

    2023年04月09日
    浏览(22)
  • 前端面试题-CSS(六)

    31 css样式(选择器)的优先级 计算权重确定 !important 内联样式 后写的优先级⾼ 32 ⾃定义字体的使⽤场景 宣传/品牌/ banner 等固定⽂案 字体图标 33 如何美化CheckBox 属性 for 和 id 隐藏原⽣的 :checked + 34 伪类和伪元素的区别 伪类表状态 伪元素是真的有元素 前者单冒号,后者双冒

    2024年02月16日
    浏览(28)
  • 前端面试题-CSS

    1. 盒模型 ⻚⾯渲染时, dom 元素所采⽤的 布局模型。可通过 box-sizing 进⾏设置。根据计算宽⾼的区域可分为 content-box ( W3C 标准盒模型) border-box ( IE 盒模型) padding-box margin-box (浏览器未实现) 2. BFC 块级格式化上下⽂,是⼀个独⽴的渲染区域,让处于 BFC 内部的元素与外部的元素

    2024年02月13日
    浏览(25)
  • 2023前端面试笔记 —— CSS3

    内容 链接 2023前端面试笔记 HTML5 2023前端面试笔记 CSS3 欢迎阅读本篇前端面试笔记的CSS3篇!CSS3是前端开发中非常重要的一部分,它为我们提供了丰富的 样式和动画效果 ,使得网页更加美观和交互性更强。在前端面试中,对CSS3的掌握程度往往是评判候选人技术水平的重要指标

    2024年02月11日
    浏览(31)
  • 【前端面试手册】CSS系列-回流与重构

    本专栏收录于前端面试手册-CSS系列如果该文章对您有帮助还希望你能点一个小小的订阅,来增加博主创作的动力✍🏻话不多说开始进入正题 回流和重构在前端CSS中是一个常见的问题,那么你对回流何重构有哪些了解呢? 一、什么场景下会触发回流和重构,如何减少回流重构

    2024年02月11日
    浏览(42)
  • 前端2023最全面试题(javaScript、typeScript、vue2、vue3、html、css、uniapp、webpack、vite、react)

    答案:JavaScript中的闭包是一种函数,它有权访问其词法环境的变量和其它函数。这意味着,即使其包含它的函数已经执行完毕,其词法环境仍然存在,因此可以访问其作用域内的变量。 答案:回调函数是在某个特定事件之后执行的函数。在JavaScript中,通常使用回调函数来处

    2024年02月06日
    浏览(40)
  • 前端基础面试题(HTML,CSS,JS)

    前后端面试题库 (面试必备) 推荐:★★★★★ 地址:前端面试题库  web前端面试题库 VS java后端面试题库大全 代码结构:  使页面在没有css的情况下,也能够呈现出好的内容结构 有利于SEO:  爬虫根据标签来分配的权重,因此可以和搜索引擎建立良好的沟通,帮助爬虫抓

    2024年02月09日
    浏览(35)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包