CSS面试题

本文详细介绍了CSS中实现水平垂直居中的多种方法、三角形的实现技巧、左右自适应布局方案,以及em/px/rem/vh/vw的区别,并探讨了BFC模式的应用和文字显示效果的设置。

一、 水平垂直居中的几种方式?

1 使用 flex 中 水平轴 和 相对轴 居中的布局方式实现子文件的水平与垂直居中

justify-content: center; 主轴居中

align-items: center; 侧轴居中

2 父元素使用 relative + 子元素 absolute 完成基本定位布局、子绝父相 给子元素一个left,top 50% 在给子元素transform: translate(-50%,-50%) 将子元素向左上偏移

3 也是子绝父相 子元素的top,left, right, bottom 都设置为0 然后margin:auto

二、 三角形如何实现?

给一个块级盒子设置宽高都为0 给他的边框设置高度 将背景色修改为透明色 要什么样的三角形就给其中一个边框设置一个颜色。

三、如何实现一个左边固定200px宽度,右边自适应的布局?

       1  给一个父盒子设置一个高度为将它转成flex 布局 再创建两个子盒子左边设置宽度为200px 右边给一个 flex: 1

        2 将两个div进行左浮动 左侧给一个宽200px给一个高度 右侧将它的宽度 width: calc(100% - 200px);

四、说说em/px/rem/vh/vw区别?

em  是相对长度单位。相对于当前对象内文本的字体尺寸。如当前对行内文本的字体尺寸未被人为设置,则相对于浏览器的默认字体尺寸

px,表示像素 

rem,相对单位,相对的只是HTML根元素font-size的值

vw ,就是根据窗口的宽度,分成100等份,100vw就表示满宽,50vw就表示一半宽。(vw 始终是针对窗口的宽),同理,vh则为窗口的高度

五、BFC 模式

BFC就是页面上一个单独容器,容器内部的元素不会影响到外部的元素

如何创建BFC?

读完MDN后,我们知道,满足其一,就是建立了一个BFC

  • float的值不是none
  • position的值是absolute、fixed
  • display的值是inline-block、flow-root、table-cell、table-caption、flex或者inline-flex、grid或者inline-grid
  • overflow的值不是visible

六、CSS 设置文字只显示一行,多余显示省略号


.view-text{
  /**
	思路:
	1.设置inline-block属性
	2.强制不换行
	3.固定高度
	4.隐藏超出部分
	5.显示“……”
  */
  display: inline-block;
  white-space: nowrap; 
  width: 100%; 
  overflow: hidden;
  text-overflow:ellipsis;
}

显示两行

/**
思路:
	1.超出的文本隐藏
	2.溢出用省略号显示
	3.溢出不换行
	4.将对象作为弹性伸缩盒子模型显示
	5.从上到下垂直排列子元素(设置伸缩盒子的子元素排列方式)
	6.这个属性不是css的规范属性,需要组合上面两个属性,表示显示的行数
  */
  .text2{
	width:200px;
	word-break:break-all;
	display:-webkit-box;
	-webkit-line-clamp:2;
	-webkit-box-orient:vertical;
	overflow:hidden;
}

### CSS 面试题整理:常见与重点 #### 宏观设计 CSS 工程化的核心在于解决代码组织、拆分和模块结构的设计问题。在实际开发中,需要考虑如何将样式文件合理地划分为多个模块,以提高代码的可维护性和复用性[^1]。例如,可以采用 BEM(Block Element Modifier)命名规范来确保类名的唯一性和可读性。 #### 编码优化 编码优化的目标是写出更高效、更简洁的 CSS 代码。这包括但不限于以下几点: - 使用 CSS 预处理器(如 Sass 或 Less)来增强样式管理能力。 - 避免使用通配符选择器(`*`),因为它的性能较差。 - 尽量减少嵌套层级,保持代码的扁平化结构[^1]。 #### 构建与打包 构建工具的选择对 CSS 的最终打包结果至关重要。推荐使用 Webpack 或 Rollup 等现代构建工具,并结合插件(如 MiniCssExtractPlugin)将 CSS 文件单独提取出来。此外,压缩 CSS 文件(如通过 cssnano)也是优化性能的重要手段。 #### 浮动与布局 浮动是 CSS 中一种常见的布局方式,但它可能会引发一些问题,例如父元素高度塌陷。为了解决这一问题,可以通过添加一个清除浮动的元素来修复布局。例如: ```html <div class="outter"> <div class="inner"></div> <div style="clear: both;"></div> </div> ``` ```css .outter { width: 200px; background: #3FF; border: 1px solid #000; } .inner { float: left; width: 120px; height: 80px; background: #FF3; } ``` 上述代码中,`clear: both;` 的作用是清除浮动对父容器的影响[^2]。 #### CSS 加载方式 在网页制作中,推荐使用 `<link>` 标签来加载外部 CSS 文件,而不是使用 `@import` 方法。这是因为 `<link>` 方式能够并行下载资源,而 `@import` 则会阻塞其他资源的加载[^3]。 #### 图片格式 在网页开发中,常用的图片格式包括 PNG、JPEG、GIF 和 SVG。每种格式都有其适用场景: - **PNG**:适合透明背景或高质量图像。 - **JPEG**:适合照片类图像。 - **GIF**:支持动画效果。 - **SVG**:适合矢量图形,具有无限缩放而不失真的特性[^3]。 #### 其他重点考察点 - **盒模型**:标准盒模型和 IE 盒模型的区别。 - **响应式设计**:媒体查询的使用方法。 - **Flexbox 和 Grid 布局**:两种现代布局方式的语法及应用场景。 - **浏览器兼容性**:如何处理不同浏览器间的差异。 ```css /* 示例:Flexbox 布局 */ .container { display: flex; justify-content: center; align-items: center; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值