热门标签 | HotTags
当前位置:  开发笔记 > 前端 > 正文

整理css常见面试题

本文为大家整理css常见面试题,有需要的可以参考。

盒子模型

  • 标准盒模型:content
  • 怪异盒模型: border+content

专题推荐:2020年CSS面试题汇总(最新)

行内元素

  • 特征
    • 设置宽高无效
    • 设置margin只有左右有效,上下无效
    • 设置padding上下左右均有效,会撑起空间
    • 不会进行自动换行
  • 常见的行内元素
    • a span b i strong

行内块元素

  • 特征
    • 可以设置宽高
    • 与所有行内元素显示在同一行
  • 常见的行内块元素
    • img input button select

块级元素

  • 特征
    • 可以设置宽高
    • 所有块级元素会独占一行
    • 如果未设置宽高,默认继承父级宽高
  • 常见的块级元素
    • p p ul li h1-h6

css实现居中

  • margin: 0 auto;
  • position定位配合transform:translate
  • flex布局
  • text-align配合line-height,用于字体在其父元素区域内居中
  • vertical-align: middle; 用来设置行内元素的居中

css hack

  • 释意:针对不同的浏览器,写不同的css,用作兼容
    • 条件hack
    • 属性hack
    .p {
        color: red; /*IE 8+*/
        *color: green; /*IE 7*/
        _color: yellow; /*IE 6*/}
    • 选择器hack
    /*IE 6*/* html .p {
        color: red;}/*IE 7*/* + html .p {
        color: green;}

px 和 em

  • px是绝对单位,值是固定的
  • em是继承父元素的font-size大小单位

support

@support用来检测浏览器是否支持某个css属性,可以理解为条件判断,一般用作兼容性处理。

media

媒体查询,根据视口大小写对应的css样式,一般配合rem做移动端的兼容。

calc

css的计算属性,用于动态计算长度值,支持数学运算。

清除浮动

  • 伪元素清除浮动
    • 原理:在父元素的伪元素中设置clear:both,即可解决高度坍塌的问题。
    ::after {
      content: "";
      clear: both;
      overflow: hidden;
      height: 0;}

BFC:是一个独立的布局环境

  • 格式化上下文,是一个独立的渲染区域,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。
  • 规则
    • 同一个BFC下,相邻的两个box默认垂直排列
    • 同一个BFC下,上下相邻的两个box,margin会发生重叠
    • BFC不会与float区域重叠
    • 计算BFC高度时,浮动子元素也会参与计算,所以不设置BFC高度,也会被浮动子元素撑开。
    • 文字层不会被浮动层覆盖,而是环绕在周围

解决父子边缘重叠时子元素margin带着父元素一起移动

+原理:利用伪元素给父元素添加一个高度为0的table

盒子模型

  • 标准盒模型:content
  • 怪异盒模型: border+content

行内元素

  • 特征
    • 设置宽高无效
    • 设置margin只有左右有效,上下无效
    • 设置padding上下左右均有效,会撑起空间
    • 不会进行自动换行
  • 常见的行内元素
    • a span b i strong

行内块元素

  • 特征
    • 可以设置宽高
    • 与所有行内元素显示在同一行
  • 常见的行内块元素
    • img input button select

块级元素

  • 特征
    • 可以设置宽高
    • 所有块级元素会独占一行
    • 如果未设置宽高,默认继承父级宽高
  • 常见的块级元素
    • p p ul li h1-h6

css实现居中

  • margin: 0 auto;
  • position定位配合transform:translate
  • flex布局
  • text-align配合line-height,用于字体在其父元素区域内居中
  • vertical-align: middle; 用来设置行内元素的居中

css hack

  • 释意:针对不同的浏览器,写不同的css,用作兼容
    • 条件hack
    • 属性hack
    .p {
        color: red; /*IE 8+*/
        *color: green; /*IE 7*/
        _color: yellow; /*IE 6*/}
    • 选择器hack
    /*IE 6*/* html .p {
        color: red;}/*IE 7*/* + html .p {
        color: green;}

px 和 em

  • px是绝对单位,值是固定的
  • em是继承父元素的font-size大小单位

support

@support用来检测浏览器是否支持某个css属性,可以理解为条件判断,一般用作兼容性处理。

media

媒体查询,根据视口大小写对应的css样式,一般配合rem做移动端的兼容。

calc

css的计算属性,用于动态计算长度值,支持数学运算。

清除浮动

  • 伪元素清除浮动
    • 原理:在父元素的伪元素中设置clear:both,即可解决高度坍塌的问题。
    ::after {
      content: "";
      clear: both;
      overflow: hidden;
      height: 0;}

BFC:是一个独立的布局环境

  • 格式化上下文,是一个独立的渲染区域,让处于BFC内部的元素与外部的元素相互隔离,使内外元素的定位不会相互影响。
  • 规则
    • 同一个BFC下,相邻的两个box默认垂直排列
    • 同一个BFC下,上下相邻的两个box,margin会发生重叠
    • BFC不会与float区域重叠
    • 计算BFC高度时,浮动子元素也会参与计算,所以不设置BFC高度,也会被浮动子元素撑开。
    • 文字层不会被浮动层覆盖,而是环绕在周围

解决父子边缘重叠时子元素margin带着父元素一起移动

+原理:利用伪元素给父元素添加一个高度为0的table

相关教程推荐:CSS视频教程

以上就是整理css常见面试题的详细内容,更多请关注其它相关文章!


推荐阅读
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 基于layUI的图片上传前预览功能的2种实现方式
    本文介绍了基于layUI的图片上传前预览功能的两种实现方式:一种是使用blob+FileReader,另一种是使用layUI自带的参数。通过选择文件后点击文件名,在页面中间弹窗内预览图片。其中,layUI自带的参数实现了图片预览功能。该功能依赖于layUI的上传模块,并使用了blob和FileReader来读取本地文件并获取图像的base64编码。点击文件名时会执行See()函数。摘要长度为169字。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 本文讨论了如何优化解决hdu 1003 java题目的动态规划方法,通过分析加法规则和最大和的性质,提出了一种优化的思路。具体方法是,当从1加到n为负时,即sum(1,n)sum(n,s),可以继续加法计算。同时,还考虑了两种特殊情况:都是负数的情况和有0的情况。最后,通过使用Scanner类来获取输入数据。 ... [详细]
  • 本文详细介绍了Linux中进程控制块PCBtask_struct结构体的结构和作用,包括进程状态、进程号、待处理信号、进程地址空间、调度标志、锁深度、基本时间片、调度策略以及内存管理信息等方面的内容。阅读本文可以更加深入地了解Linux进程管理的原理和机制。 ... [详细]
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 1,关于死锁的理解死锁,我们可以简单的理解为是两个线程同时使用同一资源,两个线程又得不到相应的资源而造成永无相互等待的情况。 2,模拟死锁背景介绍:我们创建一个朋友 ... [详细]
  • 后台获取视图对应的字符串
    1.帮助类后台获取视图对应的字符串publicclassViewHelper{将View输出为字符串(注:不会执行对应的ac ... [详细]
  • 《数据结构》学习笔记3——串匹配算法性能评估
    本文主要讨论串匹配算法的性能评估,包括模式匹配、字符种类数量、算法复杂度等内容。通过借助C++中的头文件和库,可以实现对串的匹配操作。其中蛮力算法的复杂度为O(m*n),通过随机取出长度为m的子串作为模式P,在文本T中进行匹配,统计平均复杂度。对于成功和失败的匹配分别进行测试,分析其平均复杂度。详情请参考相关学习资源。 ... [详细]
  • 本文介绍了通过ABAP开发往外网发邮件的需求,并提供了配置和代码整理的资料。其中包括了配置SAP邮件服务器的步骤和ABAP写发送邮件代码的过程。通过RZ10配置参数和icm/server_port_1的设定,可以实现向Sap User和外部邮件发送邮件的功能。希望对需要的开发人员有帮助。摘要长度:184字。 ... [详细]
  • 动态规划算法的基本步骤及最长递增子序列问题详解
    本文详细介绍了动态规划算法的基本步骤,包括划分阶段、选择状态、决策和状态转移方程,并以最长递增子序列问题为例进行了详细解析。动态规划算法的有效性依赖于问题本身所具有的最优子结构性质和子问题重叠性质。通过将子问题的解保存在一个表中,在以后尽可能多地利用这些子问题的解,从而提高算法的效率。 ... [详细]
  • Java验证码——kaptcha的使用配置及样式
    本文介绍了如何使用kaptcha库来实现Java验证码的配置和样式设置,包括pom.xml的依赖配置和web.xml中servlet的配置。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了指针的概念以及在函数调用时使用指针作为参数的情况。指针存放的是变量的地址,通过指针可以修改指针所指的变量的值。然而,如果想要修改指针的指向,就需要使用指针的引用。文章还通过一个简单的示例代码解释了指针的引用的使用方法,并思考了在修改指针的指向后,取指针的输出结果。 ... [详细]
author-avatar
谁许我一世繁华似锦
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有