问题&答案

DOCTYPE作用?标准模式与兼容模式各有什么区别?

  • 声明位于HTML文档中的第一行,处于 html 标签之前。告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
  • 标准模式的排版和Javascript运作模式都是以该浏览器支持的最高标准运行。在兼容模式中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。

HTML5 为什么只需要写 ""?

  • HTML5 不基于 SGML,因此不需要对DTD进行引用,但是需要doctype来规范浏览器的行为(让浏览器按照html应该的方式来运行)。

  • 而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型。

  • SGML,标准通用标记语言是一种十分严格的庞大的标记语言,早在万维网发明之前"通用标言"就已存在。举个例子,HTML5允许用户自定义属性,并且约定以"data-"开头,而在SGML中,属性需要挨个进行列举,这样子的话那写出来的DTD将是无穷无尽的。(原文:For example, there is no SGML way to capture the HTML5 rule that any attribute name that starts with "data-" and complies with certain general rules is valid. In SGML, attributes need to be listed individually, so a DTD would need to be infinite.)


行内元素有哪些?块级元素有哪些? 空(void)元素有那些?

  • CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,如div的display默认值为"block",则为"块级"元素。span默认display属性值为"inline",是"行内"元素。而空元素如字面意思,就是没有内容的元素,他们往往没有关闭标签(也可以认为是自己关闭自己,如<br />)。
  • 行内元素有:<a><b><span><img><input><select><strong>
  • 块级元素有:<div><ul><ol><li><dl><dt><dd><h1><h2><h3><h4><h5><h6><p>
  • 常见的空元素:<br /><hr /><img /><input /><link /><meta/>
  • 鲜为人知的是:<area><base> <col> <command> <embed> <keygen> <param> <source> <track> <wbr>

页面导入样式时,使用link和@import有什么区别?

  • link属于XHTML标签,而@import完全是CSS提供的一种方式。link标签除了可以加载CSS外,还可以做很多其它的事情,比如定义RSS,定义rel连接属性等,@import就只能加载CSS了。
  • 加载顺序的差别。当一个页面被加载的时候(就是被浏览者浏览的时候),link引用的CSS会同时被加载,而@import引用的CSS会等到页面全部被下载完再被加载。所以有时候浏览@import加载CSS的页面时开始会没有样式(就是闪烁),网速慢的时候还挺明显。
  • 兼容性的差别。由于@import是CSS2.1提出的所以老的浏览器不支持,@import只有在IE5以上的才能识别,而link标签无此问题。
  • 使用dom控制样式时的差别。当使用javascript控制dom去改变样式的时候,只能使用link标签,因为@import不是dom可以控制的。
  • link标签只能在html文件中使用,而@import在html文件和css文件中都可以使用。如下所示:
/*	在css文件中直接使用即可
而在html文件中则需要放在<style type='text/css'></style>中使用
这也解释了上面那条为何Javascript DOM无法直接操作@import,因为DOM是操作文档元素的,
@import并不像link那样是一个单独的文档元素
*/
@import url(blog.css);

参考资料

  1. 前端开发面试题
  2. 2019寒冬中的深圳前端面试分享(附笔试题)。
  3. Web前端常见面试题汇总
  4. 40个常见的HTML5 面试问题及答案
  5. HTML5有DTD吗

结束语

A:"You can you up,no can no bb."

B:"怎么我评论一道菜好不好吃还得先会做饭吗。"

HTML面试题&知识点汇总的更多相关文章

  1. [原创]Java常见笔试题知识点汇总

    前天数梦工厂来学校招聘,笔试题比较有特点,全是Java题,基本就是Java的一些特点.凭记忆按照题目找到一些必备知识点 (1). try {}里有一个return语句,那么紧跟在这个try后的fina ...

  2. CSS面试题&知识点汇总

    问题&答案 介绍一下标准的CSS的盒子模型?低版本IE的盒子模型有什么不同的? 有两种, IE 盒子模型.W3C 盒子模型: 盒模型: 内容(content).填充(padding).边界(m ...

  3. Javascript面试题&知识点汇总

    问题&答案 什么时候 a ==1 && a== 2 && a==3 为 true? var a = { i: 1, toString: function () ...

  4. Java面试知识点汇总

    Java面试知识点汇总 置顶 2019年05月07日 15:36:18 温柔的谢世杰 阅读数 21623 文章标签: 面经java 更多 分类专栏: java 面试 Java面试知识汇总   版权声明 ...

  5. php高级面试题知识点(转载)

    php高级面试题知识点大全 时间:2016-01-26 06:36:22来源:网络 导读:php高级面试题知识点大全,本套面试题内容包括php魔术方法.php单点登录.linux基本命令.前端开发技术 ...

  6. nginx几个知识点汇总

    WHY? 为什么用Nginx而不用LVS? 7点理由足以说明一切:1 .高并发连接: 官方测试能够支撑 5 万并发连接,在实际生产环境中跑到 2 - 3 万并发连接数.?2 .内存消耗少: 在 3 万 ...

  7. 转 C语言面试题大汇总

    转 C语言面试题大汇总,个人觉得还是比较全地!!! \主 题:   C语言面试题大汇总,个人觉得还是比较全地!!!  作 者:   free131 (白日?做梦!)   信 誉 值:   100    ...

  8. 剑指Offer——当当+搜狐+好未来笔试题+知识点总结

    剑指Offer--当当+搜狐+好未来笔试题+知识点总结 情景回想 时间:2016.9.21 15:00-21:00 地点:山东省网络环境智能计算技术重点实验室 事件:当当笔试.搜狐笔试.好未来笔试 3 ...

  9. 剑指Offer——网易笔试题+知识点总结

    剑指Offer--网易笔试题+知识点总结 Fibonacci package cn.edu.ujn.nk; import java.util.ArrayList; import java.util.S ...

随机推荐

  1. 用CNN及MLP等方法识别minist数据集

    用CNN及MLP等方法识别minist数据集 2017年02月13日 21:13:09 hnsywangxin 阅读数:1124更多 个人分类: 深度学习.keras.tensorflow.cnn   ...

  2. JavaScript—原生轮播和无缝滚动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. [kuangbin 带你飞] DP专题——HDU - 1024

    Max Sum Plus Plus Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others ...

  4. 201609-1 最大波动 Java

    用绝对值,后一天减去前一天即可 import java.util.Scanner; public class Main { public static void main(String[] args) ...

  5. Java线程(一)——创建线程的两种方法

    Thread 和 Runnable Java程序是通过线程执行的,线程在程序中具有独立的执行路径.当多条线程执行时,它们之间的路径可以不同,例如,一条线程可能在执行switch的一个case语句,另一 ...

  6. usert

    usert类型 不是一个函数,而是一个语言构造器 usert后会不会释放内存 当usert的文件大于2044KB时才会释放内存,否则不释放内存

  7. Python筛法求素数

    l=[2]m,n=input().split()m=int(m)n=int(n) for i in range(m,n): flag=True for j in l: if i%j==0:#如果当前值 ...

  8. oracle 学习(五)pl/sql语言存储过程&包

    首先搞清楚俩概念 存储过程(procedure)&程序包(package) 存储过程:数据库对象之一,可以理解为数据库的子程序,在客户端和服务器端可以直接调用它.触发器是与表直接关联的特殊存储 ...

  9. css 传数据套路

    <input type=hidden> 那么该标签就不会显示 但是我们可以用这个标签储存数据 这是一个利用标签元素隐藏

  10. Idea创建Spring项目

    环境 win7 + Idea2018 Classpath commons-logging-1.2 + spring-framework-4.1.6.RELEASE Step1 创建工程 File -& ...