最全面试题CSS(含答案)

本文详细讲解了CSS的display:none;和visibility:hidden;的区别,CSS优先级计算,如何创建BFC及其作用,盒模型详解,元素居中方法,三角形和布局技巧,以及px、em等单位应用。涵盖了前端开发的基础和实践知识。

1、display:none; 和visibility:hidden;的区别是什么?

display:none; 彻底消失,释放空间。能引发页面的reflow回流(重排)。

visibility:hidden; 就是隐藏,但是位置没释放,好比opacity:0; 不引发页面回流。


2、CSS 优先级和权重值如何计算

内嵌样式>内部样式>外部样式>导入式

!important > 内嵌 1000 >Id 100 > class=[]=伪类 10 > tag=伪元素 1 > ( * + > ~) 0


3、如何触发BFC,以及BFC的作用

BFC:块级格式化上下文block formatting context,是一个独立渲染区域。规定了内部box如何布局,并且与这个区域外部毫不相干。

触发:float的值不是none;position的值不是static或者relative;display的值是inline-block、block、table-cell、flex、table-caption或者inline-flex;overflow的值不是visible。

作用:避免margin重叠;自适应两栏布局;清除浮动。


4、CSS盒模型

盒模型由:外边距margin、边框border、内边距padding、内容content四个部分组成

标准盒模型大小=border+padding+content

怪异盒模型大小=content

转怪异盒模型:box-sizing:border-box;

转标准盒模型:box-sizing:content-box;


5、如何水平垂直居中一个元素

5.1、弹性盒子

.box{
  display: flex;
  justify-content: center;
  align-items: center;
}

5.2、定位

.box{
  position: relative;
} 
.box .sub{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  /*margin-left: 负的宽度的一半*/
  /*margin-top: 负的高度的一半*/
}


6、css实现一个三角形

.triangle{
  width: 0;
  height: 0;
  border: 100px solid transparent;
  border-left-color: red;
}


7、如何实现左边固定宽,右边自适应布局

7.1、圣杯布局

<div id="container">
  <div id="center" class="column"></div>
  <div id="left" class="column"></div>
  <div id="right" class="column"></div>
</div>
#container {
  padding-left: 200px; 
  padding-right: 150px;
}
#container .column {
  float: left;
}
#center {
  width: 100%;
}
#left {
  width: 200px; 
  margin-left: -100%;
  position: relative;
  right: 200px;
}
#right {
  width: 150px; 
  margin-right: -150px; 
}

7.2、双飞翼布局

  <div id="container" class="column">
    <div id="center"></div>
  </div>
  <div id="left" class="column"></div>
  <div id="right" class="column"></div>
  #container {
    width: 100%;
  }
​
.column {
  float: left;
}
        
#center {
  margin-left: 200px;
  margin-right: 150px;
}
        
#left {
  width: 200px; 
  margin-left: -100%;
}
        
#right {
  width: 150px; 
  margin-left: -150px;
}  

7.3、等高布局(假等高)互补的内外边距

.parent{
  overflow: hidden;
}
.left, .right{
  margin-bottom: -10000px;
  padding-bottom: 10000px;
}

7.4、等高布局(真等高)弹性盒子

.parent{
  display: flex;
}
.child{
  flex: 1;
}

7.5、calc

  <div id="left" class="column"></div>
  <div id="center" class="column"></div>
  <div id="right" class="column"></div>
  .column{
    float: left;
  }
  #left{
    width: 100px;
  }
  #right{
    width: 200px;
  }
  #center{
    width: calc(100% - 100px - 200px);
  }

7.6、浮动

  <div id="left" class="column"></div>
  <div id="right" class="column"></div>
  <div id="center"></div>
  #left{
    float: left;
    width: 100px;
  }
  #right{
    float: right;
    width: 200px;
  }
  #center{
    margin-left: 100px;
    margin-right: 200px;
  }


8、如何实现6px字体

.font{
  font-size: 12px;
  transform: scale(.5);
}


9、移动端1px边框怎么设置

/* 方法1 */
.border{
  width: 100%;
  height: 1px;
  background: red;
}
/* 方法2 */
.border{
  border-image: url(border.png)
}
/* 方法3 */
.border{
  box-shadow: 0 0 0 1px #000;
}


10、px、em、rem、vh、vw分别是什么

px物理像素,绝对单位;em相对于自身字体大小,如果自身没有大小则相对于父级字体大小,如果父级也没有则一层一层向上查找,直到找到html为止,相对单位;rem相对于html的字体大小,相对单位;vh相对于屏幕高度的大小,相对单位;vw相对于屏幕宽度的大小,相对单位。


11、css可继承的属性有哪些

可继承的属性:文本类:text-indent、text-align、line-height、word-spacing、letter-spacing、text-transform、direction、color;

字体类:font、font-family、font-weight、font-size、font-style、font-variant、font-stretch、font-size-adjust;

其它类:visibility、caption-side、border-collapse、border-spacing、empty-cells、table-layout、list-style-type、list-style-image、list-style-position、list-style、quotes、cursor、page、page-break-inside、windows、orphans等

### 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; } ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小赵爱吃烤串

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值