前端面试常见问题

HTML
1、meta元素可以定义文档的哪些元数据?
meta元素可定义的元数据可简要概括为四类
(1)定义文档的字符编码

定义文档的字符编码
<meta chaset="utf-8">

(2)完善文档描述信息,让搜索引擎更容易解析索引
使用name和http-equiv完善信息
在这里插入图片描述

在这里插入图片描述

(3)适配移动设备,使页面在各种尺寸的屏幕显示正确
使用name的viewport属性

关键字描述
width视口宽度device-width或具体值|
initial-width初始宽度0-10
maximum-scale视口缩放的最大值0-10
minimun-scale视口缩放的最小值0-10
user-scaleble是否手动缩放yes/no

(4)指定首选样式表,执行重定向或重载

设置默认样式表
<meta http-equiv="default-style" content="main"> 
重载或重定向
<meta http-equiv="refresh" content="2" />
<meta http-equiv="refresh" content="2;url='http://www.baidu.com'" />

2、请列举表格布局的弊端
(1)可访问性差,布局中按照从上到下或从左到右读取的数据不一定有意义,影响用户浏览
(2)难以实现响应式,不能使用css简单维护
(3)可维护性差,使用大量元素属性,代码难以阅读
(4)不够语义化,单元格html标签没有明确含义
(5)加载时间长,表格嵌套会增加渲染时间

3、除了video和audio,HTML5还支持哪些多媒体元素
(1)embed:嵌入外部资源,如svg,应用程序
(2)track:audio和video的子元素,添加辅助文本信息,如字幕

4、canvas元素用属性和用css设置宽高有什么区别
canvas元素可以简单理解为两部分,容器和画布,css控制的是容器的宽高,canvas控制的是画布的宽高

5、 css预处理器有什么优缺点?
优点:
(1)用变量存储多次引用的信息,方便修改
(2)内置丰富的函数,也可自定义函数,适应特定需求
(3)选择器可嵌套,选择器之间关系更明显,增强文件可读性
(4)导入文件让代码保持独立,实现模块化管理
缺点:
(1)降低对css文件的控制,容易出现冗余
(2)调试难度增加
(3)带来一定学习成本

6、什么是外边距塌陷
外边距塌陷也称为外边距合并,指两个在正常流中相邻的元素(父子元素、兄弟元素)的块级元素的外边距,组合成单个边距,只有上下边距会塌陷,有以下4种情况:

(1)父元素没有上边框上内边距,定义上外边距,第一个子元素没有内容,同时定义上外边距

<div style="margin-top: 20px; " >
<div style="margin-top:10px" ></div>
</div>

(2)父元素没有下边框,下内边距,定义下外边距,子元素没有内容,同时定义了下外 边距

<div style="margin-bottom: 20px; " >
<div style="margin-bottom:10px" ></div>
</div>

(3)两个兄弟元素,同时定义了下外边距和上外边距

<div style="margin-top: 20px" ></div>
<div style="margin-bottom: 20px" ></div>

(4)一个空元素没有上下边框和上下内边框,只定义上下外边框

<div style="margin-top: 10px; margin-bottom: 10px"></div>

7、display:none;与visibility:hidden都可隐藏元素,两者有何区别?
display:none相当于元素没有后代元素,在正常流中不占用空间,元素真实尺寸会丢失,还会导致浏览器的重排和重绘,visibility:hidden在正常流中会占用空间,具有真实尺寸,只会导致浏览器重绘

8、BFC(块格式化上下文)的规则?
(1)BFC内部元素不会受到外部元素的影响
(2)一个元素只能存在于一个BFC内
(3)BFC内部按正常流排列,元素之间间隔由margin控制
(4)BFC不会与外部浮动元素重叠
(5)计算BFC的高度,需要包括BFC的浮动子元素的高度

9、如何创建BFC
满足下列其中一个条件
(1)根元素即html元素
(2)float属性不为none的浮动元素
(3)display属性为inline-block/table-cell/table-caption/flex/inline-flex
(4)position属性为absolute/fixed的定位元素
(5)overflow属性不为visible的块级元素

10、BFC的作用
(1)清除浮动
(2)解决外边距塌陷
(3)宽度自适应的两栏布局

11、css选择器有哪些?
(1)基本选择器:
通配选择器:* {}
元素选择器:以元素名选择元素,span{}
类选择器: 以类名选择元素:.input {}
id选择器:以ID选择元素:#ID{}
属性选择器:以属性选择元素,可单独使用也可以组合使用,组合使用只能和元素选择器组合

条件匹配说明
[attr^=‘val’]属性值以字符串‘val’开头
[attr-=‘val’]属性值分割成几个字符串,其中一个为字符串‘val’
[attr$=‘val’]属性值以字符串‘val’结尾
[attr*=‘val’]属性值包含字符串‘val’开头
[attr|=‘val’]属性值为‘val’或以‘val-’开头

(2)关系选择器

条件说明
后代选择器以空格分隔
子选择器只选择直接子级元素,以>分隔
相邻选择器选择当前元素相邻一个元素,以+分隔
兄弟选择器选择当前元素同级所有元素,以~分隔

(3)伪选择器
伪类选择器
对链接元素而言有

选择器说明
:link未访问
:visited已访问
:active激活
:hover悬停

对元素位置而言有

选择器说明
:first-child :first-of-type第一个子元素或与父元素同类型
:last-child :last-of-type最后一个子元素或与父元素同类型
:nth0child :nth-of-type第n个子元素或与父元素同类型

伪元素选择器

选择器说明
::first-letter首字母
::first-line首行
::placeholder占位符
::selection选中内容
::before元素前插入内容
::after元素后插入内容

12、链接的状态样式定义顺序是怎样的?
使用LVHA, (:link)(:visited)(:hover)(:active)

13、相对长度单位

长度说明
px像素
em元素字体大小
ex元素字体大小的一半,2ex=1em
rem根元素字体的大小
%元素百分比
ch数字0的宽度
vw/vh视口的宽度和高度
vmax/vmin视口的1%最大最小的一个

14、定位类型有哪几种?

定位说明
static默认值,不能使用偏移属性
relative包含块为离元素最近的块级/单元格/行内块祖先元素,不脱离文档流,不改变盒模型
fixed包含块为视口
absolute包含块为离元素最近的position不为static的祖先元素,脱离文档流,元素改为块级元素

给fixed或absolute的元素设置浮动时不会生效

15、绝对定位和浮动有哪些区别?

不同点绝对定位浮动
包含块离元素最近的position不为static的元素的内容区域离元素最近的块级祖先元素的内容区域
兄弟元素的影响原先占用的空间被删除,不影响兄弟元素影响兄弟元素的位置和样式
摆放位置摆放任意位置不能超出包含块内容区域
z-index设置任意值无法设置z-index

16、background:transparent:与opacity:0有什么区别?
前者相当于rgba(0,0,0,0),只把背景颜色改成透明,文字还能展示,后者把文字和背景作为一个整体,文字和背景都会透明

17、怎样使用css做出三角形?
利用边框透明

    width: 0;
    height: 0;
    border: 50px solid transparent;
    border-left-color: gray;

18、如何使用css实现超出文本替换为省略号?
1.设置一定宽度 2.强制一行展示 3.超出部分隐藏 4.溢出内容替换为省略号

    width: 50px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值