欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > CSS面试题

CSS面试题

2025/2/25 3:54:45 来源:https://blog.csdn.net/weixin_51416826/article/details/145779674  浏览:    关键词:CSS面试题

活动发起人@小虚竹 想对你说:

这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧!我们一起发掘写作的魅力,书写出属于我们的故事。我们诚挚邀请你参加为期14天的创作挑战赛!

提醒:在发布作品前,请将不需要的内容删除。

1.盒子模型

CSS 中的 盒子模型(Box Model) 是用来描述 HTML 元素在页面中占据空间的方式。每个元素都被视为一个矩形的盒子,这个盒子由以下四个部分组成:内容区、内边距、边框宽和外边距。

如下示意:

+------------------------------+
|              Margin             |
|  +-------------------------+  |
|  |            Border          |  |
|  |  +---------------------+  |  |
|  |  |        Padding      |  |  |
|  |  |  +----------------+  |  |  |
|  |  |  |     Content    |  |  |  |
|  |  |  +----------------+  |  |  |
|  |  +---------------------+  |  |
|  +--------------------------+  |
+-------------------------------+

盒子模型的计算方式
  1. 标准盒子模型(默认) :

    • 盒子的总宽度 = width + padding-left + padding-right + border-left + border-right
    • 盒子的总高度 = height + padding-top + padding-bottom + border-top + border-bottom
  2. 替代盒子模型(box-sizing: border-box :

    • 盒子的总宽度和高度由 width 和 height 直接决定,内边距和边框会挤占内容区的空间。
    • 盒子的总宽度 = width
    • 盒子的总高度 = height

 2.对BFC的理解

BFC(Block Formatting Context,块级格式化上下文) 是 CSS 中的一种布局机制,它决定了元素如何布局以及如何与其他元素交互。BFC 是一个独立的渲染区域,内部的元素不会影响到外部的元素。

BFC 的特性
  1. 内部元素垂直排列
    • BFC 内部的块级元素会按照垂直方向一个接一个地排列。
  2. 外边距重叠
    • BFC 内部元素的外边距不会与外部元素的外边距重叠。
  3. 包含浮动元素
    • BFC 会包含其内部的所有浮动元素,避免父元素高度塌陷。
  4. 阻止元素被浮动元素覆盖
    • BFC 区域不会与浮动元素重叠。
如何创建 BFC

以下 CSS 属性可以触发 BFC:

  1. 根元素(<html> :
    • 根元素本身就是一个 BFC。
  2. 浮动元素(float 不为 none :
    • 例如 float: left 或 float: right
  3. 绝对定位元素(position 为 absolute 或 fixed 。
  4. display 为 inline-blocktable-celltable-captionflexgrid 等。
  5. overflow 不为 visible :
    • 例如 overflow: hiddenoverflow: autooverflow: scroll
BFC 的应用场景
  1. 解决外边距重叠(Margin Collapse)

  2. 清除浮动(Clear Float)

  3. 阻止元素被浮动元素覆盖

  4. 实现自适应两栏布局

3.如何实现两栏布局 且右侧自适应(三栏 中间自适应)

方法 1: 浮动 + BFC(三栏适用)

通过浮动左栏,并为右栏创建 BFC,使其自适应宽度。

<style>.box{height: 200px;}.left {float: left;width: 100px;height: 100px;background-color: #db9f9f;}.right {overflow: hidden;height: 100px;background-color: #a9dc1a;}</style><body><div class="box"><div class="left"> </div><div class="right"> </div></div></body>

特点

  • 兼容性好,支持 IE6+。
  • 右侧栏会自动填充剩余空间。
方法 2: Flexbox 布局(三栏适用)

使用 Flexbox 布局,让右侧栏自动占据剩余空间。

<style>.box{display: flex;height: 200px;}.left {width: 100px;background-color: #db9f9f;}.right {flex: 1; background-color: #a9dc1a;}</style><body><div class="box"><div class="left"> </div><div class="right"> </div></div></body>

特点

  • 代码简洁,易于理解。
  • 需要现代浏览器支持(IE10+)。
方法 3: Grid 布局

使用 CSS Grid 布局,定义列宽并让右侧栏自动填充。

.container {display: grid; /* 启用 Grid 布局 */grid-template-columns: 200px 1fr; /* 左栏固定宽度,右栏自适应 */
}.left {background: #f0f0f0;
}.right {background: #e0e0e0;
}

特点

  • 功能强大,适合复杂布局。
  • 需要现代浏览器支持(IE11+)。

三栏最外层CSS需设置:

grid-template-columns: 200px 1fr 200px; /* 左右栏固定宽度,中间栏自适应 */

4.CSS画三角形

 在 CSS 中,可以通过 边框(border) 的技巧来绘制三角形。这种方法利用了边框的特性:当元素的宽度和高度为 0 时,边框会以对角线的方式相交,从而形成三角形。

实现原理
  • 将元素的宽度和高度设置为 0
  • 通过设置不同方向的边框宽度和颜色,形成三角形。
.triangle-up {width: 0;height: 0;border-left: 50px solid transparent;border-right: 50px solid transparent;/* 向上三角形-bottom *//* 向下三角形-top    */border-bottom: 100px solid red;
}

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

热搜词