Amadeus's blog Amadeus's blog
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Amadeus

起风了,唯有努力生存!
首页
  • 前端文章

    • JavaScript
    • Vue
    • TypeScript
    • 前端工程化
  • 学习笔记

    • 《JavaScript教程》笔记
    • 《ES6 教程》笔记
    • 《Vue》笔记
    • 《TypeScript 从零实现 axios》
    • 小程序笔记
  • HTML
  • CSS
  • stylus
  • 技术文档
  • GitHub技巧
  • Nodejs
  • 博客搭建
  • 口语
  • 音标
  • 语法
  • 简单
  • 中等
  • 困难
  • 20年10月
  • 20年11月
  • 20年12月
  • 21年01月
  • 21年02月
  • 21年03月
  • 21年04月
  • 21年05月
  • 21年06月
  • 21年07月
  • 21年08月
  • 21年09月
  • 21年10月
  • 21年11月
  • 21年12月
  • 22年01月
  • 22年02月
  • 22年03月
  • 22年04月
  • 22年05月
  • 22年06月
  • 22年07月
  • 22年08月
  • 22年09月
  • 21年3月
  • 知识笔记
  • 22年5月
  • 22年8月
  • 22年9月
  • 学习
  • 书法
  • 面试
  • 音乐
  • 驾照
  • 深度强化学习
  • 心情杂货
  • 友情链接
关于
  • 网站
  • 资源
  • Vue资源
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • TypeScript笔记

  • 前端工程化

  • 面试

    • 简历
    • 面试
    • 前端体系
    • 八股文
    • HTML5面试题
    • CSS3面试题
      • JavaScript基础面试题
      • JavaScript高级面试题
      • 前端工程化面试题
      • Vue2面试题
      • Vue全家桶
    • 小程序

    • Vue3源码解析

    • 设计模式

    • NestJS笔记

    • JavaScript文章

    • Vue文章

    • 学习笔记

    • 前端
    • 面试
    Amadeus
    2023-02-03
    目录

    CSS3面试题

    # CSS3面试题

    # 1.'+' 与 '~' 选择器有什么不同

    ~是匹配元素之后的选择器

    +是匹配相邻元素选择器

    # 2.说明text-align居中的条件

    设置⾏内(inline-level)元素(没有填满⽗元素)在快级⽗元素的对⻬⽅式

    # 3.line-height为什么可以让⽂字垂直居中?

    line-height :两⾏⽂字基线( baseline )之间的间距。基线( baseline):与⼩写字⺟x最底部对⻬的线

    ⾏⾼ - ⽂本⾼度 = ⾏距

    假设div中只有⼀⾏⽂字,如何让这⾏⽂字在div内部垂直居中 让line-height 等同于height

    # 4.说说盒⼦模型包含哪些内容?

    外边距、内边距、边框、内容

    # 5.说说你对margin的传递和折叠的理解

    margin的传递⼀般是⽗⼦块元素之间,有margin-top传递,margin-bottom传递.

    它有两个兄弟块级元素之间的上下margin的折叠,也有⽗⼦块元素之间的margin折叠

    # 6.CSS 隐藏⻚⾯中某个元素的⼏种⽅法

    display: none

    visibility: hidden

    opacity: 0

    content-visibility

    绝对定位于当前⻚⾯的不可⻅位置

    # 7.box-sizing有什么作用?content-box和border-box的区别

    box-sizing⽤来设置盒⼦模型中宽⾼的计算⽅式

    # 8.为什么会发⽣样式抖动

    因为没有指定元素具体⾼度和宽度,⽐如数据还没有加载进来时元素⾼度是 100px(假设这⾥是 100px) 数据加载进来后,因为有了数据,然后元素被撑⼤,所有出现了抖动

    # 9.说说浮动常⻅的规则?

    • 元素⼀旦浮动后, 脱离标准流

      • 朝着向左或向右⽅向移动,直到⾃⼰的边界紧贴着包含块(⼀般是⽗元素)或者其他浮动元素的边界为⽌

      • 定位元素会层叠在浮动元素上⾯

    • 如果元素是向左(右)浮动,浮动元素的左(右)边界不能超出包含块的左(右)边界

    • 浮动元素之间不能层叠

    • 浮动元素不能与⾏内级内容层叠,⾏内级内容将会被浮动元素推出

    # 10.为什么需要清除浮动?清除浮动有⼏种⽅法?

    为什么需要清除浮动: 由于浮动元素脱离了标准流,变成了浮动元素,不再向⽗元素汇报⾼度。所以⽗元素在计算⾼度时并没有将浮动元素的⾼度计算进来,因此就造成了⾼度塌陷的问题 。解决⾼度塌陷的问题就叫做清除浮动(3分) 清除浮动的⽬的:是为了让⽗元素在计算⾼度的时候把浮动⼦元素的⾼度计算进去 清除浮动有⼏种⽅法:

    • 给⽗元素设置固定⾼度,扩展性不好,不推荐
    • 在⽗元素的最后增加⼀个空的块级⼦元素,并设置让他clear:both , 但是增加了⽆意义的空标签,违反了结构与样式分离的原则
    • 给⽗元素添加⼀个伪元素(推荐)
    • overflow:auto触发BFC来清除浮动(前提⾼度为auto)

    # 11.伪类与伪元素有什么区别?

    • 伪类使⽤单冒号,⽽伪元素使⽤双冒号。如 :hover 是伪类, ::before 是伪元素
    • 伪元素会在⽂档流⽣成⼀个新的元素,并且可以使⽤ content 属性设置内容

    # 12.结构伪类nth-child(n)和nth-of-type(n)的区别?

    :nth-child是结构伪类选择器,选中⽗元素的第⼏个⼦元素 , 计数时与元素的类型⽆关。 :nth-of-type是结构伪类选择器和nth-child类似,但是计数时只计算同种类型的元素。

    # 13.元素或⽂本⽔平居中实现⽅案有哪⼏种?

    行内元素:text-align:center

    块级元素:

    margin: 0 auto

    使用定位+translate

    使用flex布局居中

    # 14.元素或⽂本垂直居中实现⽅案有哪⼏种?

    元素内文本的垂直居中: line-height

    定位+translate

    flex布局

    # 15.rem、em、vw、vh 单位是什么意思?

    • rem : 单位是根据根元素(即 html )的 font-size ⼤⼩来计算
    • em : 单位是根据⾃身元素的 font-size ⼤⼩来计算
    • vw : viewport width,即视⼝的宽
    • vh : viewport height,即视⼝的⾼

    # 16.什么是视⼝(viewport)?

    offsetWidth、clientWidth、scrollWidth的区别

    offsetWidth = border + padding + content_width

    clientWidth = padding + content_width

    scrollWidth = padding + 实际内容大小

    编辑 (opens new window)
    HTML5面试题
    JavaScript基础面试题

    ← HTML5面试题 JavaScript基础面试题→

    最近更新
    01
    最长递增子序列
    04-21
    02
    非递减子序列
    04-21
    03
    全排列
    04-21
    更多文章>
    Theme by Vdoing | Copyright © 2020-2024 Amadeus | MIT License
    • 跟随系统
    • 浅色模式
    • 深色模式
    • 阅读模式