文章目录
- 前端三大件的作用?
- 什么是HTML?
- \声明的作用是什么?
- 网页有哪些基本信息?
- 标准模式与兼容模式各有什么区别?
- 前端需要注意哪些SEO(搜素引擎优化)?
- img标签的title和alt有什么区别?
- title 属性的作用有哪些?
- em 与 i 的区别?
- 行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别?
- 哪些元素可以自闭合?
- meta标签用来做什么?
- 对语义化的理解?
- HTML5 为什么只需要写\< !DOCTYPE HTML>?
- html5有哪些新特性?
- HTML5移除了哪些些元素?
- HTML5的离线储存怎么使用,工作原理能不能解释一下?
- 如何处理HTML5新标签的浏览器兼容问题?
- HTML5的form如何关闭自动完成功能?
- iframe有哪些缺点?
- WEB标准以及W3C标准是什么?
- xhtml和html有什么区别?
- HTML全局属性(global attribute)有哪些?
- Canvas和SVG有什么区别?
- 移动端项目怎样处理移动端一像素边框问题?
- div+css的布局较table布局有什么优点?
- 简述一下src与href的区别?
- 页面导入样式时,使用 link 和@import 有什么区别?
- 网页制作会用到的图片格式有哪些?
- HTML和DOM的关系?
- Ajax与Flash的优劣比较?
- 31.meta viewport 的作用?
- 32.什么是h5,和html5有什么区别?
- 33.HTML的常见元素有哪些?
- 34. HTML的重要属性有哪些?
- 34.form的作用有哪些?
-
前端三大件的作用?
- HTML定义了结构,
- CSS定义了样式,
- JS定义了行为.
-
什么是HTML?
- HTML是超文本标记语言(Hyper Text Markup Language),是用来描述网页的一种语言。
- HTML不是一种编程语言,而是一种标记语言,HTML 使用标记标签 (markup tag)来描述网页。
-
<!DOCTYPE>声明的作用是什么?
- 声明位于HTML文档中的第一行,处于 \ 标签之前,告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
-
让浏览器以标准模式渲染
-
让浏览器知道元素的合法性
-
- 声明位于HTML文档中的第一行,处于 \ 标签之前,告知浏览器的解析器用什么文档标准解析这个文档。DOCTYPE不存在或格式不正确会导致文档以兼容模式呈现。
-
网页有哪些基本信息?
一个网页,首先得有个标题,就跟人有名字一样。除此之外,还可以根据实际需要补充一些基本信息。
- 文档标题(浏览器标签中显示的文本):<title>深入了解 head 元素</title>
- 编码格式:<meta charset=“utf-8”> 如果你的页面出现乱码,那一般就是编码格式不对
- 视窗设置:<meta name=“viewport” content=“width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no”>
- 搜索引擎优化相关内容:<meta name=“description” content=“帮助你深层次了解HTML文档结构”>
- IE浏览器版本渲染设置:<meta http-equiv=“X-UA-Compatible” content=“ie=edge”>
-
标准模式与兼容模式各有什么区别?
-
定义:
- 标准模式(严格模式)下,浏览器按照W3C标准来解析;
- 兼容模式(混杂模式、向后兼容的解析方法)下,浏览器用自己的方式解析代码。
-
标准模式的排版和JS运作模式都是以该浏览器支持的最高标准运行。
-
在兼容模式(混杂模式)中,页面以宽松的向后兼容的方式显示,模拟老式浏览器的行为以防止站点无法工作。
-
<!DOCTYPE>不存在或格式不正确会导致文档以兼容模式呈现
-
-
前端需要注意哪些SEO(搜素引擎优化)?
- 提高网站速度:网站速度是搜索引擎排序的一个重要指标
- 合理的title、description、keywords:搜索对着三项的权重逐个减小,title值强调重点即可,重要关键词出现不要超过2次,而且要靠前,不同页面title要有所不同;description把页面内容高度概括,长度合适,不可过分堆砌关键词,不同页面description有所不同;keywords列举出重要关键词即可
- 语义化的HTML代码,符合W3C规范:语义化代码让搜索引擎容易理解网页
- 重要内容HTML代码放在最前:搜索引擎抓取HTML顺序是从上到下,有的搜索引擎对抓取长度有限制,保证重要内容一定会被抓取
- 重要内容不要用js输出:爬虫不会执行js获取内容
- 少用iframe:搜索引擎不会抓取iframe中的内容
- 非装饰性图片必须加alt
-
img标签的title和alt有什么区别?
- title(tool tip):该属性为设置该属性的元素提供建议性的信息,title属性可以为链接添加描述性文字,来更加清楚的表达链接的目的。通常当鼠标滑动到元素上的时候显示。
- alt(alt text):为不能显示图像、窗体或applets的用户代理(UA),alt属性用来指定替换文字。替换文字的语言由lang属性指定。(在IE浏览器下会在没有title时把alt当成 tool tip显示) ,alt是<img>的特有属性,是图片内容的等价描述,用于图片无法加载时显示、读屏器阅读图片。可提高图片可访问性,除了纯装饰图片外都必须设置有意义的值,搜索引擎会重点分析。
-
title 属性的作用有哪些?
- title 属性可以用在除了 base,basefont,head,html,meta,param,script 和 title 之外的所有标签。
- title 属性的功能是提示。额外的说明信息和非本质的信息请使用 title 属性。title 属性值可以比 alt 属性值设置的更长。
- title 属性有一个很好的用途,即为链接添加描述性文字,特别是当连接本身并不是十分清楚的表达了链接的目的。
-
em 与 i 的区别?
- 效果都是斜体
- em 是语义化标签,表强调
- i 是纯样式标签, 表斜体
- HTML 5中i不推荐使用,一般用作图标
-
行内元素有哪些?块级元素有哪些? 空(void)元素有那些?行内元素和块级元素有什么区别?
- CSS 规范规定,每个元素都有 display 属性,确定该元素的类型,每个元素都有默认的 display 值,如 div 的 display 默认值为“block”,则为“块级”元素;span 默认 display 属性值为“inline”,是“行内”元素。
- 行内元素有:a b span img input select strong
- 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4… p
- 空元素:<br> <hr> <img> <input> <link> <meta>
- 区别:
- 行内元素不可以设置宽高,不独占一行
- 块级元素可以设置宽高,独占一行
- CSS 规范规定,每个元素都有 display 属性,确定该元素的类型,每个元素都有默认的 display 值,如 div 的 display 默认值为“block”,则为“块级”元素;span 默认 display 属性值为“inline”,是“行内”元素。
-
哪些元素可以自闭合?
- 表单元素 input
- img
- br, hr
- meta, link
-
meta标签用来做什么?
- 提供给机器解读的一些元数据。页面搜索引擎优化,定义页面实用语言等等。属性有两个:
- http-equiv+content
- charset(编码格式)
- expires(过期时间)
- refresh(特定时间内自动刷新跳转)
- pragma(禁止浏览器从本地计算机缓存中访问页面内容no-cache)
- widows-target(设定页面在窗口中以独立页面展示,防止被当成frame页调用)
- set-cookie(自定义cooke)
- ontent-Type(字符集)
- name+content
- keywords(关键字)
- description(主要内容)
- robots(none不被检索)
- author、generator(使用的制作软件)
- copyright
- viewport(缩放比例)
- http-equiv+content
- 提供给机器解读的一些元数据。页面搜索引擎优化,定义页面实用语言等等。属性有两个:
-
对语义化的理解?
- 用正确的标签做正确的事情!
- HTML语义化就是让页面的内容结构化,便于对浏览器、搜索引擎解析,使机器容易理解结构(搜索、读屏软件)
- 搜索引擎的爬虫依赖于标记来确定上下文和各个关键字的权重,利于 SEO。
- 在没有样式CSS情况下也以一种文档格式显示,并且是容易阅读的。使阅读源代码的人对网站更容易将网站分块,便于开发者阅读理解,便于维护。
-
HTML5 为什么只需要写< !DOCTYPE HTML>?
- HTML5 不基于 SGML,因此不需要对DTD(Document Type Definition)进行引用,但是需要doctype来规范浏览器的行为
- 而HTML4.01基于SGML,所以需要对DTD进行引用,才能告知浏览器文档所使用的文档类型
- 声明文件类型定义(DTD),位于文档中最前面,作用是为了告知浏览器应该用哪种文档类型规范来解析文档。
-
html5有哪些新特性?
- 简单回答如下:
- 新的语义化元素
- 表单增强
- 新的API (离线、音视频、图形、实时通信、本地存储、设备能力)
- 分类和嵌套变更
- 详细说明如下:
- HTML5 现在已经不是 SGML(Standard Generalized Markup Language,即标准通用标记语言) 的子集,迭代主要是关于图像,位置,存储,多任务等功能的增加,增加了一些新的API
- 新的区块标签
- 图形|绘画 canvas
- 用于媒介回放的音视频 video 和 audio 元素
- 语意化更好的内容元素,比如article、footer、header、nav、section。
- header / footer 头尾
- section / article 区域
- nav 导航
- aside 不重要内容
- em 斜体/ strong强调
- 表单控件,表单元素增强,calendar、color、date、datetime、datetime-local、email、month、range、search、tel、time、url、week。
- 日期、时间、搜索
- 表单验证
- Placeholder自动聚焦
- datalist 与input配合使用规定输入域的选项列表;keygen密钥;output定义不同类的输出。
- draggable属性 可拖动设备能力,geolocationAPI 获取用户地理位置,手机摇一摇
- Web worker 页面中执行脚本时,页面状态不可响应,直到脚本完成。在后台运行,独立于其他脚本,不会影响页面的性能。(相当于多线程并发)
- SSE server-sent-event 网页自动获取来自服务器的更新。用于接收服务器发送时间通知
- 设备能力,geolocationAPI 获取用户地理位置,手机摇一摇
- 实时通信(websoket)在单个TCP连接上进行全双工通讯的协议。只需要握手一次,形成快速通道,传输数据。客户端和服务器可以直接通过TCP交换数据。获取连接之后,可以用send发送数据,用onmessage接收服务器返回的数据。
- 新的API:History、Command、离线 (applicationCache )
- Web存储,sessionStorge针对一个session进行数据存储,关闭浏览器窗口后自动删除,本地离线存储localStorage没有事件限制,不过它可能会因为本地时间修改失效。不过大量复杂数据结构一般用indexDB长期存储数据,浏览器关闭后数据不丢失
- 简单回答如下:
-
HTML5移除了哪些些元素?
- 纯表现的元素(删除了一些纯样式的标签):basefont、big、center、font、 s、strike、tt、u
- 对可用性产生负面影响的元素:frame、frameset、noframes
-
HTML5的离线储存怎么使用,工作原理能不能解释一下?
- 在用户没有与因特网连接时,可以正常访问站点或应用,在用户与因特网连接时,更新用户机器上的缓存文件
- 原理:HTML5的离线存储是基于一个新建的.appcache文件的缓存机制(不是存储技术),通过这个文件上的解析清单离线存储资源,这些资源就会像cookie一样被存储了下来。之后当网络在处于离线状态下时,浏览器会通过被离线存储的数据进行页面展示
- 如何使用:
- 页面头部像下面一样加入一个manifest的属性;
- 在cache.manifest文件的编写离线存储的资源
- 在离线状态时,操作window.applicationCache进行需求实现
-
如何处理HTML5新标签的浏览器兼容问题?
- IE8/IE7/IE6支持通过document.createElement方法产生的标签,可以利用这一特性让这些浏览器支持HTML5新标签
- 浏览器支持新标签后,还需要添加标签默认的样式,当然也可以直接使用成熟的框架、比如html5shim
-
HTML5的form如何关闭自动完成功能?
给不想要提示的 form 或某个 input 设置为 autocomplete=off。
-
iframe有哪些缺点?
- iframe会阻塞主页面的Onload事件
- 搜索引擎的检索程序无法解读这种页面,不利于SEO
- iframe和主页面共享连接池,而浏览器对相同域的连接有限制,所以会影响页面的并行加载
- 使用iframe之前需要考虑这两个缺点。如果需要使用iframe,最好是通过javascript动态给iframe添加src属性值,这样可以绕开以上两个问题
-
WEB标准以及W3C标准是什么?
- 标签闭合、
- 标签小写、
- 不乱嵌套、
- 使用外链css和js、
- 结构行为、表现的分离
-
xhtml和html有什么区别?
HTML4 XHTML HTML5 标签允许不结束 标签必须结束 标签允许不结束 属性不用带引号 属性必须带引号 属性不用带引号 标签属性可大写 标签属性必须小写 标签属性可大写 Boolean属性可省略值 Boolean属性必须写值 Boolean属性可省略值 - 一个是功能上的差别:主要是XHTML可兼容各大浏览器、手机以及PDA,并且浏览器也能快速正确地编译网页
- 另外是书写习惯的差别:XHTML 元素必须被正确地嵌套,闭合,区分大小写,文档必须拥有根元素
- HTML属于SGML、XHTML属于XML,是HTML进行XML严格化的结果
- HTML5不属于SGML或XML,比XHTML宽松
-
HTML全局属性(global attribute)有哪些?
- class:为元素设置类标识
- data-*: 为元素增加自定义属性
- draggable: 设置元素是否可拖拽
- id: 元素id,文档内唯一
- lang: 元素内容的的语言
- style: 行内css样式
- title: 元素相关的建议信息
-
Canvas和SVG有什么区别?
-
svg绘制出来的每一个图形的元素都是独立的DOM节点,能够方便的绑定事件或用来修改。canvas输出的是一整幅画布
-
svg输出的图形是矢量图形,后期可以修改参数来自由放大缩小,不会失真和锯齿。而canvas输出标量画布,就像一张图片一样,放大会失真或者锯齿
-
-
移动端项目怎样处理移动端一像素边框问题?
有的手机分辨率比较高,是2倍屏或3倍屏,手机上的浏览器就会把CSS中的1像素值展示为2个或3个物理宽度?
-
局部处理:
- mate标签中的 viewport属性 ,initial-scale 设置为 1
- rem按照设计稿标准走,外加利用transfrome 的scale(0.5) 缩小一倍即可;
-
全局处理:
- mate标签中的 viewport属性 ,initial-scale 设置为 0.5
- rem 按照设计稿标准走即可
- 或添加一个border.css库,将利用scroll缩放的原理将边框重置。当我们需要使用一像素边框时只需要在标签上添加对应类名,如设置底部一像素边框就在标签上加入"border-bottom"的class名
-
-
div+css的布局较table布局有什么优点?
- 改版的时候更方便 只要改css文件。
- 页面加载速度更快、结构化清晰、页面显示简洁。
- 表现与结构相分离。
- 易于优化(seo)搜索引擎更友好,排名更容易靠前。
-
简述一下src与href的区别?
- src用于替换当前元素,href用于在当前文档和引用资源之间确立联系。
- src是source的缩写,指向外部资源的位置,指向的内容将会嵌入到文档中当前标签所在位置;在请求src资源时会将其指向的资源下载并应用到文档内,例如js脚本,img图片和frame等元素.当浏览器解析到该元素时,会暂停其他资源的下载和处理,直到将该资源加载、编译、执行完毕,图片和框架等元素也如此,类似于将所指向资源嵌入当前标签内。这也是为什么将js脚本放在底部而不是头部
- href是Hypertext Reference的缩写,指向网络资源所在位置,建立和当前元素(锚点)或当前文档(链接)之间的链接,一般用于超链接。如果我们在文档中添加<link href=“common.css” rel=“stylesheet”/>那么浏览器会识别该文档为css文件,就会并行下载资源并且不会停止对当前文档的处理。这也是为什么建议使用link方式来加载css,而不是使用@import方式
-
页面导入样式时,使用 link 和@import 有什么区别?
- link 属于 XHTML 标签,除了加载 CSS 外,还能用于定义 RSS, 定义 rel 连接属性等作用;而@import 是 CSS 提供的,只能用于加载 CSS;
- 页面被加载的时,link 会同时被加载,而@import 引用的 CSS 会等到页面被加载完再加载;
- import 是 CSS2.1 提出的,只在 IE5 以上才能被识别,而 link 是 XHTML 标签,无兼容问题;
- link 支持使用 js 控制 DOM 去改变样式,而@import 不支持;
-
网页制作会用到的图片格式有哪些?
- png-8、png-24、jpeg、gif、svg
- 新技术,新鲜事物:Webp、Apng
- Webp:WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%。
- Apng:全称是“Animated Portable Network Graphics”, 是PNG的位图动画扩展,可以实现png格式的动态图片效果。04年诞生,但一直得不到各大浏览器厂商的支持,直到日前得到 iOS safari 8的支持,有望代替GIF成为下一代动态图标准
-
HTML和DOM的关系?
- HTML只是一个字符串
- DOM由HTML解析而来
- JS可以维护DOM
-
Ajax与Flash的优劣比较?
-
Ajax的优势:
- 可搜索性:普通的文本网页会更有利于SEO。文本内容是搜索引擎容易检索的,而繁琐的swf字节码却是搜索引擎不愿触及的。虽然Google等一些大型的搜索引擎可 以检索SWF内部的内容,但是仍然有很多麻烦存在。
- 开放性:Flash常年以来被Macromedia看的很死。包括Flex、FMS等辅佐技术一直都需要昂贵的安装、维护费用。而JS则没有这样的麻烦。没有人愿意承担法律 和版权的风险。
- 费用:Flash开发是很昂贵的,因为FlashIDE等环境都是要收费的.而Ajax则不同.虽然有一些便宜的生成swf的工具,但是他们的工能实在无法满足复杂需 求。
- 易用性:Ajax程序有更好的易用性。由于中间有一层Flashplayer代理层,因此许多辅助功能无法被Flash灵活利用。而且Flash在一些方面有着不好的口碑。比如弹出广告、比如恶意代码。
-
Ajax的劣势
- 它可能破坏浏览器的后退功能,使用动态页面更新使得用户难于将某个特定的状态保存到收藏夹中 ,不过这些都有相关方法解决。
-
Flash的优势
- 多媒体处理:Flash在音频、视频等多媒体领域相比HTML有绝对的优势。现在几乎所有的网站都包含有Flash内容。
- 兼容性:兼容性好,由于通过了唯一的FlashPlayer“代理”。人们不必像调试JS那样,在不同的浏览器中调试程序。
- 矢量图形:最大的优势,同样处在这一领域的SVG、Canvas element以及Direct完全不能与Flash相比。
- 客户端资源调度:能够更容易的调用浏览器以外的外部资源。比如摄像头、麦克风等。然而这是普通的HTML无法完成的。
-
Flash的劣势
- 二进制格式
- 格式私有
- flash 文件经常会很大,用户第一次使用的时候需要忍耐较长的等待时间
- 性能问题
-
31.meta viewport 的作用?
举例说明:
<meta name=“viewport” content=“width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1”>
- width:width属性被用来控制layout viewport(布局视窗)的宽度,一般为了自适应布局,普遍的做法是将width设置为device-width,width=device-width 也就是将layout viewport(布局视窗)的宽度设置为设备屏幕分辨率的宽度。
- initial-scaleinitial-scale用于指定页面的初始缩放比例,initial-scale=1 表示将layout viewport的宽度设置为屏幕分辨率的宽度,initial-scale=1.5 表示将layout viewport的宽度设置为屏幕分辨率宽度的1.5倍。
- maximum-scalemaximum-scale用于指定用户能够放大的最大比例,假设页面的默认缩放值initial-scale是1,那么用户最终能够将页面放大到这个初始页面大小的3倍。
- minimum-scale类似maximum-scale的描述,不过minimum-scale是用来指定页面缩小比例的。设置为0.5表示用户能够将页面缩小到初始页面的0.5倍,通常情况下,不会定义该属性的值,页面太小将难以阅读。
- <meta name=“viewport” content=“width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no” />
// width 设置viewport宽度,为一个正整数,或字符串‘device-width’
// device-width 设备宽度
// height 设置viewport高度,一般设置了宽度,会自动解析出高度,可以不用设置
// initial-scale 默认缩放比例(初始缩放比例),为一个数字,可以带小数
// minimum-scale 允许用户最小缩放比例,为一个数字,可以带小数
// maximum-scale 允许用户最大缩放比例,为一个数字,可以带小数
// user-scalable 是否允许手动缩放
32.什么是h5,和html5有什么区别?
H5特指基于HTML5技术的交互网页应用,以商业用途为主,实际上是一个解决方案,一个看起来酷炫的移动端单页面网站的解决方案。而这个解决方案包括了一切前端的基本知识,包含了HTML5新增的audio标签、canvas、拖拽特性、本地存储、websocket通信,同时也包括了CSS的盒模型、绝对定位等。
HTML5则是第五代HTML技术。
33.HTML的常见元素有哪些?
head | body |
---|---|
meta | div/section /header/footer/article/aside |
script | p |
style | span/em/strong |
title | table/thead/tbody/tr/td |
link | ul/ol/li/dl/dt/dd |
base | a |
base | form/input/select/textarea/button |
- <meta charset=“utf-8”>
- <meta name=“viewport” content=“width=device-width initial-scale=1.0 maximum-scale=1.0 user-scalable=no”,加上viewport可以更好的适配移动端,让视口的宽度等于屏幕的宽度
- <base href=’/’>,指定基础路径,之后的所有路径都会以此为基准
34. HTML的重要属性有哪些?
属性 | 作用 |
---|---|
a[href,target] | target确定链接打开方式 |
img[src,alt] | alt在图片不显示展示 |
table td[colspan.rowspan] | 合并单元格会用到 |
form[target,method,enctype] | target指提交目标,method指提交方式,有post和get两种,enctype指编码 |
input[type,value] | text\password |
button[type] | button\submit |
select>option[value] | 而 value 属性中的值是表单被提交时被发送到服务器的值 |
label[for] | 加上for后选项和文字之间可以关联 |
34.form的作用有哪些?
- 直接提交表单
- 使用submit / reset按钮
- 便于浏览器保存表单
- 第三方库可以整体提取值
- 第三方库可以进行表单验证