html总结常见问题

1. DOCTYPE 的作用是什么?

DOCTYPE文档类型声明,位于文档中的第一行,告诉浏览器的解析器 什么文档标准解析这个文档。DOCTYPE不存在或格式不正确,会导致文档以兼容模式呈现。


2. 标准模式与兼容模式各有什么区别?

标准模式的排版中和JS运作模式都是以该浏览器支持的最高标准运行

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


3. HTML5 为什么只需要写DOCTYPE ,而不需要引入 DTD?

HTML5 不基于 SGML,因此不需要对 DTD 进行引用,但是需要 DOCTYPE 来规范浏览器的行为(让浏览器按照它们应该的方式来运行)。而 HTML4.01 基于 SGML ,所以需要对DTD 进行引用,才能告知浏览器文档所使用的文档类型。


4. SGML 、 HTML 、XML 和 XHTML 的区别?

SGML:(Standard Generalized Markup Language,标准通用标记语言),SGML具有非常复杂的文档结构,主要用于大量高度结构化数据的访问和其他各种工业领域,在分类和索引数据中非常有用。但是它不适用于Web数据描述。

HTML:(Hyper Text Markup Language),超文本标记语言,他继承了SGML的很多优点,但是html是一种界面技术,只使用了SGML中很少的一部分标记,为了便于在计算机上实现,HTML规定的标记是固定的,即HTML语法是不可扩展的。html是一种标记语言,不是一种编程语言。

XML:xml是在html和sgml的基础上诞生的。XML使用一个简单而又灵活的标准格式,为基于Web的应用提供了一个描述数据和交换数据的有效手段。但是,XML并非是用来取代HTML的。

XHTML:(eXtensible HyperText Markup Language),是一种标记语言,表现方式与超文本标记语言(html)类似,不过语法上更加严格。


5. DTD 介绍

DTD(文档类型定义) 的作用是定义 XML文档 的合法性。是 XML文档 的一种约束。

DTD 可以在 XML文档 内部,也可在外部引用。

通过 DTD,每一个 XML 文件均可携带一个有关其自身格式的描述。

独立的团体可一致地使用某个标准的 DTD 来交换数据。

DOCTYPE 在 XML文档 中只能有一个。


6. 行内元素定义

不会在内容前后产生“换行符”。

水平方向上可以设置内、外边距,但是垂直方向上即使设置了外边距也不会起作用。

  1. span、small、strong、em、i、code、


7. 块级元素定义

每个块级元素通常都会独占一行或者是多行,可以对其单独设置高度,宽度以及对齐等属性。div 、p、h1~h6、hr、ul、ol、li、dl、dd、form、table、header、footer、main、nav、section、arcitcle、pre、table、tbody、thead、th、tr、

块级元素会独占一行

高度,行高,外边距和内边距都可以单独设置

宽度默认是容器的100%

可以容纳内联元素和其他的块级元素


8. 行内元素与块级元素的区别?

HTML4中,元素被分成两大类:inline (内联元素)与 block (块级元素)。

(1) 格式上,默认情况下,行内元素不会以新行开始,而块级元素会新起一行。

(2) 内容上,默认情况下,行内元素只能包含文本和其他行内元素。而块级元素可以包含行内元素和其他块级元素。

(3) 行内元素与块级元素属性的不同,主要是盒模型属性上:行内元素设置 width 无效,height 无效(可以设置 line-height),设置 margin 和 padding 的上下不会对其他元素产生影响。

9. HTML5 元素的分类

内联(行级)标签:标签在一行内,宽度与高度由内容决定,只有在内容超过HTML的宽度时,才会换行

块状标签:标签独占一行,可指定宽、高

内联块状元素(inline-block)就是同时具备内联元素、块状元素的特点


10. 空元素定义

标签内没有内容的 HTML 标签被称为空元素。空元素是在开始标签中关闭的。

在 HTML 中,通常在一个空元素上使用一个闭标签是无效的。

在 HTML 中有以下这些空元素:<area> <base> <br> <col> <colgroup> when the span is present <command> <embed> <hr> <img> <input> <keygen> <link> <meta> <param> <source> <track> <wbr>


11. link 标签定义

<link> 标签定义文档与外部资源的关系。

<link> 标签最常见的用途是链接样式表。

注意: link 元素是空元素,它仅包含属性。

注意: link 元素只能存在于 head 部分,不过它可出现任何次数。


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

link作为HTML/XHTML标签 可以导入css、文档链接啥的,@import 用于加载类

1.从属关系区别

@import是 CSS 提供的语法规则,只有导入样式表的作用;link是HTML提供的标签,不仅可以加载 CSS 文件,还可以定义 RSS、rel 连接属性等。

2.加载顺序区别

加载页面时,link标签引入的 CSS 被同时加载;@import引入的 CSS 将在页面加载完毕后被加载。

3.兼容性区别

@import是 CSS2.1 才有的语法,故只可在 IE5+ 才能识别;link标签作为 HTML 元素,不存在兼容性问题。

4.DOM可控性区别

可以通过 JS 操作 DOM ,插入link标签来改变样式;由于 DOM 方法是基于文档的,无法使用@import的方式插入样式。

5.权重区别

link引入的样式权重大于@import引入的样式。


13. 你对浏览器的理解?

浏览器的主要功能是将用户选择的 web 资源呈现出来,它需要从服务器请求资源,并将其显示在浏览器窗口中,资源的格式通常是 HTML,也包括 PDF、image 及其他格式。用户用 URI(Uniform Resource Identifier 统一资源标识符)来指定所请求资源的位置。

HTML 和 CSS 规范中规定了浏览器解释 html 文档的方式,由 W3C 组织对这些规范进行维护,W3C 是负责制定 web 标准的组织。

但是浏览器厂商纷纷开发自己的扩展,对规范的遵循并不完善,这为 web 开发者带来了严重的兼容性问题。

简单来说浏览器可以分为两部分,shell 和 内核。

其中 shell 的种类相对比较多,内核则比较少。shell 是指浏览器的外壳:例如菜单,工具栏等。主要是提供给用户界面操作,参数设置等等。它是调用内核来实现各种功能的。内核才是浏览器的核心。内核是基于标记语言显示内容的程序或模块。也有一些浏览器并不区分外壳和内核。从 Mozilla 将 Gecko 独立出来后,才有了外壳和内核的明确划分。


14. 介绍一下你对浏览器内核的理解?

主要分成两部分:渲染引擎和 JS 引擎。

渲染引擎的职责就是渲染,即在浏览器窗口中显示所请求的内容。默认情况下,渲染引擎可以显示 html、xml 文档及图片,它也可以借助插件(一种浏览器扩展)显示其他类型数据,例如使用 PDF 阅读器插件,可以显示 PDF 格式。

JS 引擎:解析和执行 javascript 来实现网页的动态效果。

最开始渲染引擎和 JS 引擎并没有区分的很明确,后来 JS 引擎越来越独立,内核就倾向于只指渲染引擎。


15. 常见的浏览器内核比较

 
16. 常见浏览器所用内核

IE:Trident

safari和chrome:webkit

Firefox:Gecko


17. 浏览器的渲染原理?

文档 ->> DOM树 + CSS树 ->> 渲染树 ->> 布局 ->> 绘制

(1)首先解析收到的文档,根据文档定义构建一棵 DOM 树,DOM 树是由 DOM 元素及属性节点组成的。
(2)然后对 CSS 进行解析,生成 CSSOM 规则树。
(3)根据 DOM 树和 CSSOM 规则树构建渲染树。渲染树的节点被称为渲染对象, 渲染对象是一个包含有颜色和大小等属性的矩形,渲染对象和 DOM 元素相对应,但这种对应关系不是一对一的,不可见的 DOM 元素不会被插入渲染树。
(4)当渲染对象被创建并添加到树中,它们并没有位置和大小,所以当浏览器生成渲染树以后,就会根据渲染树来进行布局(也可以叫做回流)。这一阶段浏览器要做的事情是要弄清楚各个节点在页面中的确切位置和大小。通常这一行为也被称为“自动重排”。
(5)布局阶段结束后是绘制阶段,遍历渲染树并调用渲染对象的 paint 方法将它们的内容显示在屏幕上,绘制使用 UI 基础组件。值得注意的是,这个过程是逐步完成的,为了更好的用户体验࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Bootstrap是一个流行的前端开发框架,常被用于构建响应式网站和Web应用程序。在Bootstrap面试中,常见的问题包括: 1. Bootstrap是什么?它有什么特点? Bootstrap***帮助开发人员快速构建现代化的Web界面。Bootstrap具有响应式设计、易于使用、跨浏览器兼容等特点。 2. 你如何使用Bootstrap来创建网格布局? Bootstrap的网格系统是一种用于创建响应式布局的强大工具。通过使用`.container`和`.row`类创建容器和行,然后使用`.col-*`类来定义列的宽度,可以轻松地创建网格布局。例如,`<div class="container"><div class="row"><div class="col-md-1"></div></div></div>`就是一个常见的网格布局示例。 3. 使用Bootstrap如何自定义样式? Bootstrap提供了许多内置的CSS样式,但也允许开发人员根据需要进行自定义。可以使用自定义CSS来覆盖Bootstrap的默认样式,并使用自定义类来添加额外的样式。此外,还可以使用SASS或LESS等预处理器来修改Bootstrap的变量和混合器,以实现更精确的样式定制。 4. 你如何使用Bootstrap的JavaScript插件? Bootstrap提供了一系列强大的JavaScript插件,用于增强网页的交互性和功能性。要使用这些插件,首先需要引入Bootstrap的JavaScript文件,然后根据需要调用相应的插件方法。例如,可以使用`$('.carousel').carousel()`来初始化轮播插件。 5. 你使用过Bootstrap的哪些组件?请举例说明。 Bootstrap提供了许多常用的UI组件,包括导航栏、按钮、表格、表单、模态框等。这些组件可以通过简单地使用相应的HTML和CSS类来快速创建。例如,可以使用`.navbar`类创建一个响应式的导航栏,使用`.btn`类创建一个样式化的按钮。 总结:在Bootstrap的常见面试题中,我们可以从介绍Bootstrap的基本概念和特点开始,然后讨论如何使用网格系统创建布局,如何自定义样式,如何使用JavaScript插件以及熟悉哪些常用组件。这些问题可以帮助评估面试者对Bootstrap的理解和实际应用能力。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [前端面试宝典大全+PHP教程+HTML教程+bootstrap教程资源合集](https://download.csdn.net/download/Rocky006/87708314)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] - *2* *3* [bootstrap面试题](https://blog.csdn.net/weixin_71893603/article/details/126072231)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值