HTML+CSS面试题汇总(持续更新)

先注明一下题目来源,剑哥的前端面试每日3+1 大家如果有兴趣可以去github上答题

 

1、 页面导入样式,使用link与@import有什么区别? 

  a、从属关系:link是html标签,@import是css提供的

  b、加载差异:页面加载时,link会同事加载;而@import引入的css会在页面加载完成后加载  

  c、兼容性: link没有兼容问题,@import不兼容ie5一下的浏览器

  d、link可以通过js操作dom插入link标签改变样式,而@import不能

 

2、.描述块级元素与行内元素的区别?写出五个块级元素及五个行内元素?img是块级元素还是行内元素?怎么指定元素以块级元素展示?

  a 区别

   内元素会在一条直线上排列,水平方向排列;块级元素各占据一行,垂直方向排列

      块级元素可以包含行内元素和块级元素,行内元素不能包含块级元素,只能包含文字或其它行内元素

   行内元素设置width,height无效,margin上下无效,padding上下无效

  b 列举

   行内元素: span,a, em, strong, i, input, select

   块级元素:div,ul,ol, li, h1-h6,p

  c img和input属于行内替换元素,height/width/padding/margin均可用。效果等于块元素

  d display:block;

 

3、 H5有哪些新特性?

  a 语义化标签: header,footer,section,nav,aside,article

  b 增强型表单:input新增多个实用type

  c 新增表单元素: datalist,keygen, output

  d 新增表单属性:placehoder,require,min,max

  e 音频,视频: video,audio

  f canvas,地理定位,拖拽

  g 本地存储: localStorage---没有时间限制的数据存储,sessionStorage---针对一个session的数据存储,当用户关闭浏览器窗口后,数据会被删除

  h 新事件: onresize, onscroll, onerror, onplay,onpause,ondrag,onmousewheel

  i webSocket: 单个tcp链接上的全双工协议

 

4、 cookie,localStorage,sessionStorage的区别

特性 cookie localStorage sessionStorage
存储大小 4k 5M 5M
数据有效期 cookie在设置的有效期内保存,超过有效期自动清理 缓存数据永久有效,可手动清除 当前会话有效,关闭页面或浏览器会自动清除
与服务器通讯 cookie会参与服务器的通信,每次都会携带在http的头部信息中 不参与通信 不参与通信
作用域区别   不同浏览器不能共享localStorage,sessionStorage中的数据 相同浏览器不同页面可以共享相同的localStorage(页面属于相同的域名及端口),但是不同页面及标签间不能共享相同的sessionStorage

 

5 、css选择器有哪些?优先级?

  a.通配符选择器(*):用来选择所有元素,或者某个元素的所有子元素

  b.元素选择器(E):常见,最基本的选择器

  c.id选择器(#ID):id选择器只能选择页面中的唯一一个ID

  d.class选择器(.class):类选择器会选择页面中class名为指定名的所有标签,组成一个类数组

  e.后代选择器(E F):E为父元素,F为子元素

  f.子元素选择器(E>F):使用大于号 “>”指定

  g.相邻选择器(E+F) : 选择一个指定元素的兄弟元素

  h.选择器优先:!important > 内联 > ID选择器 > class选择器 > 标签选择器

 

6 、什么叫css盒模型?有几种盒模型?margin与padding的区别?

  css盒模型是css技术的一种思维模式。每个盒模型有内容(content),填充(padding),边框(border),外边距(margin)组成 

  css盒模型有两种,IE盒模型和w3c标准盒模型,其中IE模型的width=content+padding+border,而标准盒模型width=content

  margin是自身容器边框到另一个容器容器边框的距离,就是容器的外边距

  padding是自身容器边框到自身内容之间的距离,是为内边距

 

7、Doctype作用?标准模式与兼容模式各有什么区别? 你知道多少种Doctype文档类型

  a、告诉浏览器解析器以什么文档标准来解析文档,DOCtype不存在或者编写错误会以兼容模式来呈现

  b、  标准模式下排版和js运行模式都以浏览器支持的最高标准运行

    兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为已防止页面无法工作

  c、常用的Docytpe有:html5、htm4.1 strict、html4.1 transitional、html4.1 frameset

 

8、说说你对语义化的理解

  根据内容的结构化使用适合的语义化标签,让浏览器的爬虫和机器更好的解析,同时增加代码的可读性及可维护性

  

9、html与xhtml的区别?

  xhtml必须被正确地嵌套

  xhmtl便签必须小写

  xhtml空标签也必须被关闭

  xhtml文档必须有根元素<html></html>

10、css3新增伪类选择器

  a、E:not(ele) 除了ele以外的都选中,常用于除最后一个li外就下边框 ---ul li:not(:last-of-type)

  b、E:root 获取根元素---:root {background:red}

  c、E:first-child 第一个子元素;E: last-child 最后一个子元素; E:only-child 判断是否是独生子,如果是就选中

  d、E:nth-child(n) 选中第n个元素,n从1开始;n也可以是表达式,如2n+1;可以配合odd(奇数),even(偶数)使用

  e、E:nth-last-child(n),与E:nth-child(n)用法一样,但是是从末尾开始计数的,就是倒数 ;

  f、以上cde所述选择器都会受到其它元素的影响,例如父元素的第n个元素不是指定元素,就选不了了

  g、E:first-of-type在父元素下查找第一个E;E:last-of-type在父元素下查找最后一个E;E:only-of-type判断是否是独生子,如果是就选中;

  h、E:nth-of-type(n) 与nth-child(n)一样,不过不会受到其它元素影响

  i、E:nth-of-last-type 与E:nth-of-type(n)相反,是倒数计数

  j、以上ghi所述选择都不会受到其它元素影响

  k、E:empty 选中一个空元素,里面什么都没有,包括空格

  l、E:checked  匹配被选中的表单,radio或者CheckBox

  m、E:enabled,E:disabled  匹配input的正常状态和不可操作状态

 

11. div+css布局的好处

 

  • 代码精简,且结构与样式分离,易于维护
  • 代码量减少了,减少了大量的带宽,页面加载的也更快,提升了用户体检
  • 对seo搜索引擎更加友好,且H5又新增了许多语义化标签更是如此
  • 允许更多炫酷的页面效果,丰富了页面
  • 符合W3C标准,保证网站不会因为网络应用的升级而淘汰

 

12. 盒模型及如何转换

 

  • box-sizing: content-box (W3C盒模型,又名标准盒模型): 元素的宽高大小表现为内容的大小
  • box-sizing: border-box(IE盒模型,又名怪异盒模型):元素的宽高表现为内容 + 内边距 + 边框的大小

 

13. 实现水平垂直居中的几种方式

 

  • flex布局

 

.box {
  display: flex;
  width: 100px;
  height: 100px;
  background-color: pink;
  justify-content: center;
  align-items: center;
}

.box-center{
  background-color: greenyellow;
}

 

  • 绝对定位布局

 

.box {
  position: relative;
  height: 100px;
  width: 100px;
  background-color: pink;
}

.box-center{
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  margin: auto;
  width: 50px;
  height: 50px;
  background-color: greenyellow;
}

 

 或者

 

.box {
  position: relative;
  background-color: pink;
}

.box-center{
  position: absolute;
  left: 50%;
  top: 50%;
  transform:translate(-50%,-50%)
  margin: auto;
  width: 50px;
  height: 50px;
  background-color: greenyellow;
}

 

13、flex的兼容性怎么样??

 

  • IE9(包括IE9)以下不支持,IE10~11部分支持,但是需要-ms-前缀
  • 其他主流浏览器包括安卓iOS基本都支持了

 14、font样式的便捷式写法

  font: font-style font-variant font-weight font-size/line-height font-family

 

 

posted @ 2020-04-02 17:20  jsThin  阅读(4081)  评论(0编辑  收藏  举报