前端面试手册之HTML、CSS、浏览器相关

240 阅读6分钟

前言

大家好,我是前端程序员凌云,旨在为大家分享一些有用的知识!

本期分享内容是关于前端面试题中的HTML、CSS、浏览器系列

面试题大纲

  • 网络中使用最多的图片格式有哪些?
  • 请简述css盒子模型
  • 视频/音频标签的使用
  • HTML中新增的特性有哪些
  • HTML5中新增的寓意话标签有哪些
  • CSS3新增的特性有哪些
  • 清除浮动的方式有哪些?请说出各自的优点
  • 定位的属性值有什么区别
  • 子元素如何在父元素中剧中
  • border-box与content-box的区别
  • 如何让元素垂直居中
  • 如何让chorme浏览器现实小于12px的文字
  • css选择器有哪些?哪些可以继承,优先级如何计算?css3新增的伪类有哪些
  • 网页中有大量图片加载很慢, 你有什么方法进行优化
  • 行内元素/块元素分别有哪些
  • 浏览器的标准模式和怪异模式的区别
  • margin和padding在什么场景下使用
  • 请简述弹性盒子布局属性有哪些
  • 怎么实现标签的禁用
  • flex布局原理
  • px、rem、em之间的区别
  • 网页的三层结构有哪些
  • 水平、垂直居中的方式
  • 三栏固定方式、两边固定,中间子使用
  • DocType的作用
  • 说一下HTML5 Drag API
  • 说一说你对HTML语义化的理解
  • web性能优化方式有哪些
  • 说一说浏览器的缓存机制
  • 说一说用户从输入网址到也看渲染的全过程
  • 怎么画一条0.5px的线
  • 说一说js动画和css动画的差异性
  • 双编剧重叠问题(外边句折叠)
  • 浮动清除
  • css3的选择器有哪些?优先级怎么排列
  • 如何实现一个css动画
  • css3中对溢出的处理
  • overflow的原理

面试题ITEM

1.网络中使用最多的图片格式有哪些

JPEG、PNG、GIF,其中JPGEG是最流行的,可以把文件压缩到最

2.请简述css盒子模型

一个css盒子从外到内可以分为四个部分:margin(外边距)、padding(内边距)、border(边框)、content(内容),默认情况下,盒子的width和height是根据content(内容)来设置宽度和高度的。

  • 盒子真正的宽度应该是:内容宽度+左右边填充+左右边距+左右边框
  • 盒子真正的高度应该是:内容高度+上下填上下编剧+上下边框

3.视频/音频标签的使用

视频

<video src=""></video>
  • 属性
    • src 需要播放的视频地址
    • width/height 视频内容的宽度/高度
    • autoplay 是否自动播放
    • controls 是否显示控制条
    • poster 未播放之前显示的占位图片
    • loop 是否循环播放
    • perload 预加载视频(缓存)。该属性与autoplay有冲突,设置了autoplay属性perload会失效
    • muted 静音模式

音频

<audio src=""></audio>
  • 属性(音频属性和视频差不多,只不过width、height、poster属性不能用)

4.HTML5中新增的属性有哪些

  • 新增语义化标
  • 新增表单类型
  • 新增表单元素
  • 新增表单属性
  • 新增表单事件
  • 新增多媒体标签

5.HTML5中新增的寓意话标签有哪些

语义化标签的有点

  • 提升页面的可访问性
  • 利于seo
  • 结构清晰,利于维护

标签

  • nav
  • main
  • section
  • aside
  • article
  • header
  • footer

6.css3新增特性

  • 边框

    • border-image
    • border-image-slice
    • border-image-width
    • border-image-outset
    • border-image-repeat
    • border-image-source
    • border-radius
    • box-shadow
  • 背景

    • background-size
    • background-origin
    • background-clip
  • 渐变

    • linear-gradient
    • radial-gradient
  • 文本效果

    • work-break
    • word-wrap
    • text-overflow
    • text-shadow
  • 转换

    • transform
    • transform-origin
    • transform-style
  • 2D转换方法

    • rotate
    • translate
    • scale
  • 3D转换方法

    • perspective
    • translate
    • rotate
    • scale
  • 过度

    • transition-property

    • transition-duration

    • transition-timing-function

    • transition-delay

7.清除浮动的方式有哪些?请说出各自的优点

  • 方式1:给父元素单独设置高度

    • 优点:快读简单,代码量少
    • 缺点:无法进行相应是布局
  • 方式2: 在浮动元素后面添加一个空div标签,设置clear: both;height: 0;overflow:hidden;

    • 优点:快速简单,大妈量少,兼容性比较高
    • 缺点:页面增加了不必要的空标签,不利于优化
  • 方式3:给父级元素设置overflow: auto

    • 优点:简单、代码量少,兼容性好
    • 缺点:内部宽度超过父元素时,会出现滚动条
  • 方式4:给父元素设置overflow: hidden; zoom:1

    • 优点:快速简单,代码少,兼容性高
    • 缺点:超出部分会被隐藏,布局的时候需要注意
  • 方式5:万能清除法(给塌陷元素添加伪对象)

    • 优点:写法固定,兼容性好
    • 缺点:代码多

具体代码

.vox-view:after {
content: '',
display: block;
clear: both;
height: 0;
visible: hidden;
overflow: hidden;

8.css定位的属性值之间有什么区别

  • position
    • relative:相对定位,不脱离文档流,给予自身定位
    • absolute:绝对定位,脱离文档流,相对于父级元素定位
    • fixed:固定定位,脱离文档流,相对于浏览器窗口定位
    • static:默认值,元素出现在正常的流中

9.子元素如何在父元素剧中

  • 水平居中
    • 父元素宽度固定,可以设置margin:0 auto
    • 、子元素宽度固定,父元素设置text-align: center
  • 水平垂直居中
    • 子元素基于父元素绝对定位,子元素的left设置50%,margin-left和margin-top取各自宽高的一半
    • 子元素基于父元素绝对定位,子元素left、right、top、bottom全部设置为0,然后设置margin: auto
    • 父元素display: table-cell;verticle-align: middle,子元素设置margin: auto
    • 子元素相对定位,子元素top、left设置50%;transform: translate(-50%,50%)
    • 子元素相对父元素绝对定位,子元素top、left设置50%;transform: translate(-50%,-50%)
    • 父元素设置弹性盒子,display: flex;justfy-content: center; align-item: center;

10.border-box与content-box的区别

  • content-box:标准盒子模型,width不包括padding和border
  • border-box:怪异盒子模型,width包括padding和border

11.元素垂直居中

  • 设置子元素的line-height属性与父元素的高度一致
  • 子元素设置:display:inline-block;verticle-align:middle;
  • 已知父元素高度的情况下,子元素基于父元素绝对定位,设置: top: 50%;transform: translate(-50$)
  • 不知道父元素高度的情况下,子元素绝对定位父元素相对定位,设置:top: 50%; transform: translate(-50%)
  • 创建一个隐藏节点,设置隐藏节点的height为生于高度的一半
  • 父元素display: table; 子元素display: table-cell;verticle-align: middle;
  • 给父元素添加伪元素
  • 利用弹性盒子的align-item: center垂直居中

12.如何让chorme浏览器显示小雨12px的文字

原来是通过属性-webkit-text-size-adjusy: none; 现在是通过-webkit-transform: scale()

13.css中有哪些选择器?哪些选择器可以继承?优先级如何计算?css3中新增的伪蕾有哪些?

待完善

...持续输出中