html,css相关面试题

108 阅读10分钟

1. DOCTYPE 有什么作用?怎么写?

	1.它不是html标签,没有结束标签,是一种标记语言的文档类型声明,即告诉浏览器当前
	的html使用什么版本编写的,DOCTYPE的声明必须是HTML文档的第一行,位于html
	标签之前,
	2.DOCTYPE可声明三种DTD类型:严格,过渡以及框架集的HTML文档
	3.标准模式(CSS1Compat):浏览器使用W3C标准解析渲染页面,在标准模式中,浏览器以其支持的最高标准呈现页面
	怪异模式(BackCompat):浏览器使用自己的怪异模式渲染页面,在怪异模式中,页面以一种比较宽松的向后兼容的方式显示
	怪异模式通常模拟老式浏览器的行为以防止老站点无法工作
	4.如果页面没有DOCTYPE声明那么默认就是怪异模式,浏览器按照自己的方式解析渲染页面,不同的浏览器就会显示不同的样式

DTD(Document Type Definition)是文档类型定义,是一套为了进行程序间的数据交换而建立的关于标记符的语法规则

2.列出常见的标签,并简单介绍这些标签用在什么场景

 <a> 用于超链接。<a href="">some text</a>
 <article> 用于一篇文章。<article>a self-contained article</article>
 <aside> 用于页面的侧边栏。<aside>some content</aside>
 <blockquote> 用于大段的引用内容。<blockquote>some big texts</blockquote>
 <body> 页面上显示的所有内容都被包含在<body></body><br> 用于显示一个换行
 <button> 用于显示一个按钮
 <code> 用于一包裹一段代码内容
 <dd> 用于一个dl列表的某个dt名词的描述
 <del> 用于删除一些不需要的文字
 <div> 用于包裹住一些其他的标签,制造一个容器
 <dl> 用于制作一个名词和对应解释的列表
 <dt> 用于一个dl列表的某个dt名词
 <em> 用于强调一些文本内容
 <figcaption> 用于一张图表的说明文字
 <figure> 用于一张图表
 <footer> 用于包裹页面的底部内容
 <form> 用于制作一个表单
 <h1>-<h6> 用于标记标题,从h1到h6重要性依次递减
 <head> 用于包裹页面的元数据,如<meta>, <link>, <title><header> 用于包裹页面的头部内容
 <hr> 用于制造出一条分隔线
 <html> 整个 HTML 文档的根元素,包裹住其他所有的元素
 <iframe> 用于嵌入另一个小页面到一个页面中
 <img> 用于显示一张图片
 <input> 用于显示一个表格输入控件
 <label> 用于给一个表格输入控件打上一个标签,说明输入控件的作用
 <li> 用于<ul><ol>标签,代表一个列表项
 <link> 用于链接外部CSS文件
 <mark> 用于高亮显示某些文本
 <meta> 用于下达一些元数据指令,或者对页面进行说明
 <nav> 用于包裹住一个导航条的内容
 <ol> 用于制作一个有序列表
 <p> 用于显示一个段落
 <q> 用于一小段引用文字
 <script> 用于一段JavaScript脚本代码,或者引入一个外部JavaScript脚本文件
 <section> 用于包裹一部分有逻辑关第的页面内容
 <select> 用于制作一个下拉列表选框
 <span> 用于包裹住一小段文字,作为一个容器
 <strong> 用于着重强调重要的文本内容
 <style> 用于给页面元素加上样式
 <sub> 用于下标文本
 <sup> 用于上标文本
 <table> 用于制作一个表格
 <tbody> 用于表格里的主体部分
 <td> 用于表格里的某一个单元格
 <textarea> 用于制作一大块文本输入框
 <tfoot> 用于表格里的底部
<th> 用于表格里的表头的单元格
 <thead> 用于表格里的表头
 <time> 用于页面内容中的时间
 <title> 用于显示整个页面的标题(显示在浏览器的tab上)
 <tr> 用于标记表格里的一行
 <ul> 用于制作一个无序列表

3. 页面出现了乱码,是怎么回事?如何解决?

原因:网页开发者没有按照规范来设置网页编码,浏览器这是自动按照默认的编码来打开导致的,
解决方法:把文件保存成utf-8的编码,
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<head>

4. title 属性和 alt 属性分别有什么作用?

	alt是img标签的属性,当图片加载出错,无法显示图像时,显示的替代文本,
	title属性适用于所有标签,规定关于元素的额外信息,通常鼠标移到元素上,是显示一段提示文本
	alt属性是搜索引擎唯一能识别的图片信息,因此alt属性应与图片主题内容相关在优化网站时,尽可能利用alt属性阐述图片的主题内容,
	该图片属性作用也不仅仅告诉搜索引擎图片的主要信息,另外在图片出现加载失败时,还能够让访客理解图片所阐述的内容!
	alt标签在html语言中的写法是这样的:< img src=“图片路径” alt=“图片描述”/>图片描述最好是用简短的语句,描述这张图片的内容,如果是链接,则描述链接的作用,并带上关键词。

5. HTML 的注释怎样写?

	<!--  html注释内容   -->

6. HTML5 为什么只写 <!DOCTYPE html>?

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

SGML:标准通用标记语言,
DTD:文档类型定义

7. data- 属性的作用?

他是自定义属性,用于存储页面或应用程序的私有自定义数据,然后可以用js取出数据

8.<img> 的 title 和 alt 有什么区别?

	alt属性是为了给那些不能看到你文档中图像的浏览者提供文字说明的,本意是用于图像不显示替换图像。
	title是对图片的说明和额外补充,如果需要在鼠标经过图片时出现文字提示应该用属性title,title属性的优先级高于alt

9.Web 标准以及 W3C 标准是什么?

	web标准可以分为结构,表现和行为
	结构:主要有html标签组成
	表现:指css样式表
	行为:主要有js,dom组成
	web:标准一般是将三部分独立分开,使其更具有模块化。
	w3c标准:
	1.标签属性名要小写
	2.标签要闭合
	3.标签不允许随意嵌套
	4.尽量使用外联css样式表,让结构,表现,行为分为三块,提高页面渲染速度,提高用户体验
	5.样式尽量少用行间样式表,式结构与表现分离
	6.标签的idclass等属性命名要见闻知义,更seo,代码便于维护

10.严格模式与混杂模式如何区分?它们有何意义?

	严格模式又称标准模式,是指浏览器按照w3c标准解析代码
	混杂模式:又称怪异模式或兼容模式,是指浏览器用自己的方式解析代码	
	如何区分:
	1.如果文档包含严格的 DOCTYPE ,那么它一般以严格模式呈现。**(严格 DTD ——严格模式)** 
	2.包含过渡 DTD 和 URI 的 DOCTYPE ,也以严格模式呈现,但有过渡 DTD 而没有 URI (统一资源标识符,就是声明最后的地址)会导致页面以混杂模式呈现。(有 URI 的过渡 DTD ——严格模式;没有 URI 的过渡 DTD ——混杂模式) 
	3.DOCTYPE 不存在或形式不正确会导致文档以混杂模式呈现
	4.HTML5 没有 DTD ,因此也就没有严格模式与混杂模式的区别,HTML5 有相对宽松的语法,实现时,已经尽可能大的实现了向后兼容。( HTML5 没有严格和混杂之分)

如果说只存在严格模式,那么许多旧网站必然受到影响,如果只存在混杂模式,那么会回到当时浏览器大战时的混乱,每个浏览器都有自己的解析模式。

11.HTML 全局属性(Global Attribute)有哪些?

accesskey:设置快捷键,提供快速访问元素如aaa在windows下的firefox中按alt + shift + a可激活元素
class:为元素设置类标识,多个类名用空格分开,CSS和javascript可通过class属性获取元素
data-*: 为元素增加自定义属性
id: 元素id,文档内唯一
lang: 元素内容的语言
hidden: 表示一个元素是否与文档。样式上会导致元素不显示,但是不能用这个属性实现样式效果
style: 行内css样式
title: 元素相关的建议信息
contenteditable: 指定元素内容是否可编辑
contextmenu: 自定义鼠标右键弹出菜单内容
dir: 设置元素文本方向
tabindex: 设置元素可以获得焦点,通过tab可以导航
translate: 元素和子孙节点内容是否需要本地化
dropzone: 设置元素拖放类型: copy, move, link
draggable: 设置元素是否可拖拽

12. meta 有哪些常见的值, meta viewport 是做什么用的,怎么写??

1.charset:charset是声明文档使用的字符编码,解决乱码问题主要用的就是它,
值得一提的是,这个charset一定要写第一行,不然就可能会产生乱码了。
2.viewport:viewport主要是影响移动端页面布局的
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<!--
    content 参数: 
    width: viewport 宽度(数值/device-width)
    height: viewport 高度(数值/device-height)
    initial-scale: 初始缩放比例
    maximum-scale: 最大缩放比例
    minimum-scale: 最小缩放比例
    user-scalable: 是否允许用户缩放(yes/no)
 -->

百度会自动对网页进行转码,这个标签是禁止百度的自动转码
<meta http-equiv=“Cache-Control” content=“no-siteapp” />

13.如何在 HTML 页面上展示这几个字符?

用转义符号,&lt;代替<,   &gt;代替>
&ltdiv&gt    &lt/div&gt 
14你是如何理解 HTML 语义化的?
1.用正确的标签做正确的事情。html语义化让页面的内容结构化,结构更清晰,便于对浏览器,搜索引擎解析
2.搜索引擎的爬虫也依赖于HTML标记来确定上下文和各个关键字的权重,利于SEO;使阅读源代码的人对网站更容易将网站分块,便于阅读维护理解。

15前端需要注意哪些 SEO?

1.合理的title,description,keyswords ,搜索引擎对这三项的权重逐个减小,
title 值强调重点即可,重要的关键词出现不要超过两次,而且要靠前
2.不同页面的tilte要有所不同,description有所不同;desctipyion长度要合适,不能堆叠关键字,keyswords列举出重要的关键词
3.语义化的HTML代码,符合W3C 规范
4.重要的内容HTML代码放在前面
5.重要的内容不要用js输出
6.非装饰的图片必须加alt 
7.提高网站速度

16.POST 和 GET 方式提交数据有什么区别?

1.get参数显示在浏览器地址栏中,post参数不会显示在浏览器地址栏中
2.使用post提交的页面再点击刷新按钮是,浏览器一般会提示是否重新提交
3.get页面可以被搜索引擎抓取,而post则不可以
4.用post可以提交的数据量非常大,而get可以提交的数据量则非常小,
受限于网页地址的长度
5.用post可以进行文件的提交,get则不可以
6.get产生一个TCP数据包,POST产生两个TCP数据包,并不是所有浏览器都会在POST中发送两次包,Firefox就只发送一次
7.对于get方式的请求,浏览器会把http   header和data一并发送出去,服务器响应200(返回数据)
	对于post,浏览器先发送header,服务器响应100continue,浏览器在发送data,服务器响应200(返回数据);

17. 在 input 里,name 有什么作用?

		1.作为可与服务器交互数据的html元素的服务器端的标示,我们可以
		在服务器端根据其name取得元素提交的值
		2.在Input标签的属性 type='radio'分组,就是根据相同的Name属性来实现的