前端面试常见问题HTML的CSS篇

1、Flex布局

Flexbox(弹性布局)是一种 CSS 布局模式,通过在容器上设置 flex 属性和子元素上设置项 flex-item 属性,来实现灵活的盒子模型布局。

以下是常见的 Flexbox 样式:

  1. flex 容器属性:
  • display: flex; 定义一个 Flexbox 容器
  • flex-direction: row/column; 设置主轴方向(横向或纵向)
  • justify-content: flex-start/center/flex-end/space-around/space-between; 定义主轴上的对齐方式(常用)
  • align-items: flex-start/center/flex-end/baseline/strech; 定义交叉轴上的对齐方式
  • align-content: flex-start/center/flex-end/space-around/space-between/strech; 定义多行排列时,交叉轴上的对齐方式
  • flex-warp:控制是否换行 nowrap/wrap/wrap-reverse

        2、flex 子元素属性:

  • order: 整数; 定义子元素的排列顺序
  • flex-grow: 整数; 定义子元素的放大比例
  • flex-shrink: 整数; 定义子元素的缩小比例
  • flex-basis: length; 定义子元素的初值(宽度或高度)
  • flex: grow shrink basis; 简写式定义子元素的放大、缩小比例和初值
  • align-self: auto/flex-start/center/flex-end/baseline/stretch; 定义单个子元素在交叉轴上的对齐方式

        3、Flexbox 布局的优点:可以通过简单的属性设置来实现复杂的布局,同时还可以自适应不同大小屏幕和设备,提高了页面的可维护性和可扩展性。但需要注意的是,一些老旧浏览器可能不支持 Flexbox,需要使用备选方案或库来保证兼容性。

2、清除浮动的方式?

清除浮动的目的:解决父元素因为子元素浮动造成的高度塌陷或布局错乱的问题。

以下是常见的清除浮动的方式:

  1. 使用空 div 清除浮动【额外标签法】(clearfix):

    .clearfix::after { 
    content: ""; 
    display: table; 
    clear: both; 
    }

    在包含浮动元素的父容器上添加 clearfix 类,并使用伪元素 ::after 清除浮动。这样可以确保父容器的高度包括浮动元素。将包含浮动元素的父容器设置为 overflow: hidden;,这会触发 BFC(块级格式化上下文),从而清除浮动并包含子元素。

    1. 注BFC是 CSS 中的一种渲染模型,用于控制和管理块级盒子在布局中的定位、尺寸计算以及相互之间的影响。BFC 是页面上独立的渲染区域,具有一套完整的渲染规则。

    2. BFC 的一些特性和作用:
      1. 独立的渲染区域:BFC 内部的元素在布局上是相互独立的,不会受到外部元素的影响。
      2. 块级盒子垂直排列:BFC 内部的块级盒子会按照垂直方向从上到下依次排列。
      3. 相邻块级盒子的边距折叠:不同的 BFC 区域之间的相邻块级盒子的垂直边距会发生折叠。
      4. 清除浮动:触发 BFC 的元素可以清除其内部浮动,使得父容器能够正确包裹浮动元素。
      5. 自适应高度:BFC 区域会根据其内部元素的内容自动调整高度,避免出现高度塌陷问题。
  2. 使用 clearfix 类库: 可以使用现有的类库,如 Bootstrap 的 .clearfix 类或其他类似的类库,直接应用于父容器上,以清除浮动。

    .parent { 
    overflow: hidden; 
    }

  3. 使用双伪元素清除浮动:

    
    .clearfix::before, .clearfix::after { 
    content: ""; 
    display: table; 
    } 
    .clearfix::after { 
    clear: both; 
    }

    添加双伪元素 ::before 和 ::after 至父容器,并设置它们的 content 为空字符串和 display 为 table,再通过 ::after 设置 clear: both;,以清除浮动。

以上是四种常见的清除浮动方式,可以根据实际情况选择适合的方式来解决浮动引起的布局问题。

3、介绍CSS盒模型?

1、css盒模型包含以下几个部分

  1. 内容区域(Content): 内容区域是盒子中用于显示实际内容的部分,例如文本、图像等。它的大小由内容的宽度和高度决定。

  2. 内边距(Padding): 内边距是内容区域与边框之间的空白区域。它可以用来调整内容与边框之间的距离,控制元素的尺寸和间距。

  3. 边框(Border): 边框是围绕在内容区域和内边距外部的线条或样式。它定义了盒子的边界,并可以设置边框的样式、宽度和颜色。

  4. 外边距(Margin): 外边距是盒子与其他元素之间的空白区域。它用于控制元素与其他元素之间的距离,影响元素在页面中的位置。

2、CSS 盒子模型的计算方式可以分为两种盒子模型:

  1. 标准盒子模型(content-box): 在标准盒子模型中,元素的宽度(width)和高度(height)只包括内容区域的尺寸,不包括内边距、边框和外边距。

  2. 怪异盒模型:怪异盒模型的宽度(width)是【内容(content)+padding+border】加magin

4、less和sass的比较

Less和Sass是两种流行的CSS预处理器,它们在功能和语法上有一些区别。

下面是Less和Sass的主要区别:

  1. 语法风格:

    • Less使用类似于CSS的语法,只提供了一些扩展和改进,使其更便于编写和组织。
    • Sass使用严格的缩进语法,类似于Python风格,通过缩进来表示嵌套关系,具有更紧凑和简洁的语法。
  2. 扩展特性:

    • Less提供了一些扩展功能,如变量、嵌套规则、Mixin混合等,可以简化CSS的编写和维护。
    • Sass拥有更强大的功能集,包括变量、嵌套规则、Mixin混合、函数、条件语句等,提供了更高级的编程能力。
  3. 生态系统和社区支持:

    • Sass有一个庞大而活跃的社区,提供了丰富的资源、插件和框架,如Compass、Bourbon等。
    • Less的生态系统相对较小,但也有一些常用的库和工具可供选择。
  4. 兼容性:

    • Less的语法较为宽松,与原生CSS兼容性较好,几乎可以无缝地集成到现有项目中。
    • Sass的语法相对严格,需要通过编译器将其转换为普通的CSS,因此对于现有项目的集成可能需要一些配置和工具支持。

总的来说,Less更加简单易学,适合初学者或对CSS预处理器要求不高的项目;而Sass则更为强大和灵活,适合复杂的项目和对可扩展性和编程能力有要求的开发者。选择使用哪个预处理器取决于个人偏好、项目需求以及团队的技术栈和经验。

5、css隐藏元素的方式

  • display: none;

    • 将元素完全从页面中删除,包括占用的空间。
  • visibility: hidden;

    • 使元素不可见,但保留占用的空间。
  • opacity: 0;

    • 将元素的不透明度设置为0,使其变得透明。
  • height: 0; width: 0;

    • 将元素的高度和宽度都设置为0,使其变得不可见。
  • overflow: hidden;

    • 将元素的溢出部分隐藏,超出部分不会显示。
  • position: absolute; left: -9999px;

    6、#rgba 和  opacity透明效果有什么区别

    • 将元素定位到屏幕左侧很远的位置,使其不可见。

  • 答:rgba是单纯的颜色透明,opacity设置的是整个元素的透明效果

7、

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值