热门标签 | 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常见面试题的详细内容,更多请关注其它相关文章!


推荐阅读
  • A*算法在AI路径规划中的应用
    路径规划算法用于在地图上找到从起点到终点的最佳路径,特别是在存在障碍物的情况下。A*算法是一种高效且广泛使用的路径规划算法,适用于静态和动态环境。 ... [详细]
  • NX二次开发:UFUN点收集器UF_UI_select_point_collection详解
    本文介绍了如何在NX中使用UFUN库进行点收集器的二次开发,包括必要的头文件包含、初始化和选择点集合的具体实现。 ... [详细]
  • 解决SQL Server数据库sa登录名无法连接的问题
    在安装SQL Server数据库后,使用Windows身份验证成功,但使用SQL Server身份验证时遇到问题。本文将介绍如何通过设置sa登录名的密码、启用登录名状态以及开启TCP协议来解决这一问题。 ... [详细]
  • MySQL 数据库连接方法
    本文介绍了如何使用 MySQL 命令行工具连接到指定的数据库。 ... [详细]
  • 如何解决8080端口被占用问题
    本文介绍了如何通过命令行和任务管理器查找并终止占用8080端口的进程,以确保该端口能够正常使用。 ... [详细]
  • LDAP服务器配置与管理
    本文介绍如何通过安装和配置SSSD服务来统一管理用户账户信息,并实现其他系统的登录调用。通过图形化交互界面配置LDAP服务器,确保用户账户信息的集中管理和安全访问。 ... [详细]
  • 本文介绍了 AngularJS 中的 $compile 服务及其用法,通过示例代码展示了如何使用 $compile 动态编译和链接 HTML 元素。 ... [详细]
  • 网站访问全流程解析
    本文详细介绍了从用户在浏览器中输入一个域名(如www.yy.com)到页面完全展示的整个过程,包括DNS解析、TCP连接、请求响应等多个步骤。 ... [详细]
  • 通过 CSS 中的 transition 属性,可以轻松实现元素状态变化时的平滑过渡效果。本文将详细介绍如何使用 transition 属性,并提供一个具体的示例。 ... [详细]
  • 自定义滚动条美化页面内容
    当页面内容超出显示范围时,为了提升用户体验和页面美观,通常会添加滚动条。如果默认的浏览器滚动条无法满足设计需求,我们可以自定义一个符合要求的滚动条。本文将详细介绍自定义滚动条的实现过程。 ... [详细]
  • importpymysql#一、直接连接mysql数据库'''coonpymysql.connect(host'192.168.*.*',u ... [详细]
  • 微软推出Windows Terminal Preview v0.10
    微软近期发布了Windows Terminal Preview v0.10,用户可以在微软商店或GitHub上获取这一更新。该版本在2月份发布的v0.9基础上,新增了鼠标输入和复制Pane等功能。 ... [详细]
  • javascript分页类支持页码格式
    前端时间因为项目需要,要对一个产品下所有的附属图片进行分页显示,没考虑ajax一张张请求,所以干脆一次性全部把图片out,然 ... [详细]
  • Framework7:构建跨平台移动应用的高效框架
    Framework7 是一个开源免费的框架,适用于开发混合移动应用(原生与HTML混合)或iOS&Android风格的Web应用。此外,它还可以作为原型开发工具,帮助开发者快速创建应用原型。 ... [详细]
  • 本文介绍了如何使用 CMD 批处理脚本进行文件操作,包括将指定目录下的 PHP 文件重命名为 HTML 文件,并将这些文件复制到另一个目录。 ... [详细]
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社区 版权所有