目录

HTML语义化的理解

HTML5新增了哪些语义化标签

H5的新特性

input和textarea的区别

用一个div模拟textarea的实现

移动设备忽略将页面中的数字识别为电话号码的方法?

你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?

px和em和rem的区别

你能描述一下渐进增强和优雅降级之间的不同吗?

请描述一下cookies,sessionStorage和localStorage的区别?

简述一下src与href的区别。

知道的网页制作会用到的图片格式有哪些?

一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验

谈谈以前端角度出发做好SEO需要考虑什么?

行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?

什么是外边距重叠?重叠的结果是什么?

css中可以让文字在垂直和水平方向上重叠的两个属性是什么?

如何垂直居中一个浮动元素?

Doctype作用? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

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


HTML语义化的理解

html语义化的含义:根据内容的结构化,选择合适的标签便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。(基本上都是围绕着几个主要的标签,像标签H1~H6,li、强调(strong、em)等等)。

语义化的原因:

①为了在没有CSS情况下,页面也能呈现出很好的内容结构、代码结构。(

②用户体验:例如title、alt用于解释名词或者解释图片信息、label标签dd的活用。
③有利于SEO:和搜索引擎建立良好的沟通,有助于爬虫抓取更多的有效信息(爬虫依赖于标签来确定上下文和各个关键字的权重)。
④方便其它设备解析(如屏幕阅读器,盲人阅读器,移动设备)以意义的方式来渲染网页。
⑤便于团队开发和维护,语义化更具可读性,遵循W3C标准的团队都遵循这个标准,可以减少差异化。

HTML5新增了哪些语义化标签

<article> 定义文章
<aside> 定义文章的侧边栏
<figure> 一组媒体对象以及文字
<figcaption> 定义 figure 的标题
<footer>定义页脚
<header>定义页眉
<hgroup>定义对网页标题的组合
<nav>定义导航
<section> 定义文档中的区段
<time>定义日期和时间
<dialog>定义一个对话框
<section><section> 页面上的版块
用于划分页面上的不同区域,或者划分文章里不同的节
<article></ article >
用来在页面中表示一套结构完整且独立的内容部分,可以用来呈现论坛的一个帖子,杂志或报纸中的一篇文章,一篇博客,用户提交的评论内容等。
<figure> 标签规定独立的流内容(图像、图表、照片、代码等等)。
<figcaption> figure的子元素 用于对figure的内容 进行说明
<datalist></datalist>选项列表。与 input 元素配合使用,来定义 input 可能的值。
<mark></mark> 需要标记的词或句子
<details></details>用于描述文档或文档某个部分的细节
< summary></summary> details 元素的标题
该元素用于摘录引用等 应该与页面的主要内容区分开的其他内容

H5的新特性

①语义化标签(上面题)。

②本地存储(localStorage)。

localStorage.setItem("name",arr);//保存数据localStorage.getItem("name")//读取数据,也可以根据key值读取localStorage.removeItem(key)//删除单个数据localStorage.clear()//数据清空

③播放音频文件的标签。

<audio></audio>音频<video></video>视频

④Canvas使用Javascript来绘制图像,canvas 元素本身是没有绘图能力的。所有的绘制工作必须在 JavaScript 内部完成

<canvas id="myCanvas" width="200" height="100" style="1px solid #000000"></canvas>

⑤SVG绘图:一种使用XML描述2D图像的语言。progress元素 :标签定义运行中的进度(进程)<progressvalue="0" max="100"></progress> meter元素 :标签定义度量衡。仅用于已知最大和最小值的度量。<metervalue="70" max="100" min="0"></meter>

 input和textarea的区别

<input>是单行文本框,不会换行。通过size属性指定显示字符长度,注意:当使用css限定了宽高,那么size属性就不再起作用了。value属性指定初始值,Maxlength属性指定文本框可以输入的最长长度。可以通过width和height设置宽高,但是也不会增加行数。

<input type="text" value="你好" Maxlength="10">

<textarea>是多行文本输入框,文本区中可容纳无限数量的文本,无value属性,其中的文本默认字体是等宽字体(通常是Courier),可通过cols和rows属性来规定textarea的尺寸,不过更好的办法是使用CSS的height和width属性。

<textarea cols="20" rows="30"></textarea>

用一个div模拟textarea的实现

contenteditable属性,值为Boolean值,true绑定元素可编辑,false(默认)元素不可编辑。

<div id="textarea" contenteditable="true">
<style>
#textarea{width:300px;border:1px solid #ccc;min-height:150px;max-height:300px;overflow:auto;font-size:14px;outline:none;
}
</style>

移动设备忽略将页面中的数字识别为电话号码的方法?

标准的电话号码格式是这样子的:

<ahref="tel:1-408-555-555">1-408-555-555</a>

但是有时候不是电话号码的数字也会被浏览器自动解析为电话号码,并把数字的颜色和样式都改了,如果忽略页面中的数字识别为电话号码,只要把这个默认行为关闭即可,只要一行代码

<meta name="format-detection" content="telephone=no">

这个关闭不会影响真正电话号码的识别。

补充:format-detection属性和含义

format-detection翻译成中文的意思是“格式检测”,顾名思义,它是用来检测html里的一些格式的,那关于meta的format-detection属性主要是有以下几个设置

<meta name="format-detection" content="telephone=no">

<meta name="format-detection" content="telephone=no">
//禁止了把数字转化为拨号链接
<meta name="format-detection" content="email=no">
//告诉设备不识别邮箱,点击之后不自动发送
<meta name="format-detection" content="adress=no">
//禁止跳转至地图!
<metaname="format-detection"content="telephone=no,email=no,adress=no">
//以上三者组合

知道的网页制作会用到的图片格式有哪些?

png-8,png-24,jpeg,gif,svg等但是上面的那些都不是面试官想要的最后答案。面试官希望听到是Webp。(是否有关注新技术,新鲜事物)
科普一下Webp:WebP格式,谷歌(google)开发的一种旨在加快图片加载速度的图片格式。图片压缩体积大约只有JPEG的2/3,并能节省大量的服务器带宽资源和数据空间。Facebook Ebay等知名网站已经开始测试并使用WebP格式。
在质量相同的情况下,WebP格式图像的体积要比JPEG格式图像小40%

一个页面上有大量的图片(大型电商网站),加载很慢,你有哪些方法优化这些图片的加载,给用户更好的体验

图片懒加载,在页面上的未可视区域可以添加一个滚动条事件,判断图片位置与浏览器顶端的距离与页面的距离,如果前者小于后者,优先加载
如果为幻灯片、相册等,可以使用图片预加载技术,将当前展示图片的前一张和后一张优先下载
如果图片为css图片,可以使用CSSsprite,SVGsprite,Iconfont、Base64等技术。
如果图片过大,可以使用特殊编码的图片,加载时会先加载一张压缩的特别厉害的缩略图,以提高用户体验。
如果图片展示区域小于图片的真实大小,则因在服务器端根据业务需要先行进行图片压缩,图片压缩后大小与展示一致。

谈谈以前端角度出发做好SEO需要考虑什么?

搜索引擎主要以:外链数量和质量
网页内容和结构
来决定某关键字下的网页搜索排名。
前端应该注意网页结构和内容方面的情况:
Meta标签优化
主要包括主题(Title),网站描述(Description)。还有一些其它的隐藏文字比如Author(作者),Category(目录),Language(编码语种)等。
符合W3C规范的语义性标签的使用。
如何选取关键词并在网页中放置关键词
搜索就得用关键词。关键词分析和选择是SEO最重要的工作之一。首先要给网站确定主关键词(一般在5个上下),然后针对这些关键词进行优化,包括关键词密度(Density),相关度(Relavancy),突出性(Prominency)等等。那么我们为什么需要做SEO呢,就是为了提高网站的权重,增强搜索引擎友好度,以达到提高排名,增加流量,改善用户体验,促进销售的作用。

行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?

块级元素(block)特性:
总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;
宽度(width)、高度(height)、内边距(padding)、边框(border)和外边距(margin)都可控制;
内联元素(inline)特性:
和相邻的内联元素在同一行;
宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)还有border top/bottom都不可改变(也就是padding和margin的left和right是可以设置的),就是里面文字或图片的大小。
浏览器还有默认的天生inline-block元素(拥有内在尺寸,可设置高宽,但不会自动换行)
答案:<input> 、<img> 、<button> 、<texterea> 、<label>。

什么是外边距重叠?重叠的结果是什么?

外边距重叠就是margin-collapse。
在CSS当中,相邻的两个盒子(可能是兄弟关系也可能是祖先关系)的外边距可以结合成一个单独的外边距。这种合并外边距的方式被称为折叠,并且因而所结合成的外边距称为折叠外边距。
折叠结果遵循下列计算规则:
两个相邻的外边距都是正数时,折叠结果是它们两者之间较大的值。
两个相邻的外边距都是负数时,折叠结果是两者绝对值的较大值。
两个外边距一正一负时,折叠结果是两者的相加的和。

css中可以让文字在垂直和水平方向上重叠的两个属性是什么?

垂直方向:line-height
水平方向:letter-spacing
那么问题来了,关于letter-spacing的妙用知道有哪些么?

答案:可以用于消除inline-block元素间的换行符空格间隙问题。

如何垂直居中一个浮动元素?

// 方法一:已知元素的高宽
#div1{background-color:#6699FF;width:200px;height:200px;position: absolute;        /*父元素需要相对定位*/top: 50%;left: 50%;margin-top:-100px ;   /*二分之一的height,width*/margin-left: -100px;}//方法二:未知元素的高宽#div1{width: 200px;height: 200px;background-color: #6699FF;margin:auto;position: absolute;        /*父元素需要相对定位*/left: 0;top: 0;right: 0;bottom: 0;}
/*如何垂直居中一个<img>?(用更简便的方法。)*/ /*<img>的容器设置如下*/
#container{display:table-cell;text-align:center;vertical-align:middle;
}

Doctype作用? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?

(1)、<!DOCTYPE> 声明位于文档中的最前面,处于 <html> 标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档。
(2)、严格模式的排版和 JS 运作模式是,以该浏览器支持的最高标准运行。
(3)、在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
(4)、DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。

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

(1)CSS规范规定,每个元素都有display属性,确定该元素的类型,每个元素都有默认的display值,比如div默认display属性值为“block”,成为“块级”元素;span默认display属性值为“inline”,是“行内”元素。
(2)行内元素有:a b span img input select strong(强调的语气) 块级元素有:div ul ol li dl dt dd h1 h2 h3 h4…p
(3)知名的空元素:
<br><hr><img><input><link><meta>鲜为人知的是: <area><base><col><command>
<embed><keygen><param><source><track><wbr>

20道面试常会遇到的面试题相关推荐

  1. 20 道必看的 Vue 面试题 | 原力计划

    作者 | 红颜祸水nvn 责编 | 唐小引 出品 | CSDN 原力计划 1. 什么是 MVVM? MVVM 是 Model-View-ViewModel 的缩写,MVVM 是一种设计思想.Model ...

  2. 【ORACLE】20道Oracle运维常见面试题

    1.实例(INSTANCE)包含以下哪两个部分?(AC) A.SGA B.DataBase C.一系列后台进程 D.Server Process 2.下列哪一项不属于Oracle数据库关闭模式?(D) ...

  3. 【分享】20道Oracle运维常见面试题

    1.实例(INSTANCE)包含以下哪两个部分?(AC) A.SGA B.DataBase C.一系列后台进程 D.Server Process 2.下列哪一项不属于Oracle数据库关闭模式?(D) ...

  4. 20道必须掌握的C++面试题

    想要快速轻松掌握C++知识,请点击C++微课边学习边实践 问1:请用简单的语言告诉我C++ 是什么? 答:C++是在C语言的基础上开发的一种面向对象编程语言,应用广泛.C++支持多种编程范式 --面向 ...

  5. 20道面试智力题,你会做多少?

    有 1000 瓶药物,但是其中有一瓶是有毒的,小白鼠吃了一个星期以后就会死掉!请问,在一个星期内找出有毒的 药物,最少需要多少只小白鼠? 最少需要10只小白鼠 法1: (1)将药物1-1000编号,并 ...

  6. 2023年,web前端工程师20道Vue面试题及解析

    本文章列出了20道关于Vue.js的面试题,包括基础和进阶问题,并提供了问题的答案及解析,以帮助读者更好地准备面试.从指令.生命周期函数到组件间通信和路由等各方面都作了涉及. 1. 什么是Vue.js ...

  7. 20道C++经典面试题

    在面试C++方面的工作时,经常会遇到各种面试题,这对应聘人员的知识掌握能力要求较高.本文将为大家带来的就是20道必须掌握的C++面试题,不要错过哦! 想要快速轻松掌握C++知识,请点击C++微课边学习 ...

  8. 紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人

    转载自  紧急整理了 20 道 Spring Boot 面试题,我经常拿来面试别人 面试了一些人,简历上都说自己熟悉 Spring Boot, 或者说正在学习 Spring Boot,一问他们时,都只 ...

  9. k8s相关面试问题_最常被问到的20道Kubernetes面试题

    原标题:最常被问到的20道Kubernetes面试题 近一年参与了多场面试,设计了多道面试题,觉得可以综合考察应聘人对Kubernetes的掌握情况.笔者一般会在面试前,将题目直接发给候选人,以便其有 ...

最新文章

  1. cj搜索算法-魔版(打表术失败总结)
  2. windows如何实现视屏自动定时、全屏、轮播 播放
  3. Dev-C++ 5.11安装教程
  4. pandas(四) -- 数值计算
  5. python3.8文档_python 3.8的新功能
  6. VBSCRIPT的循环挺好理解的
  7. 从A页面跳转到B页面动态路由参数
  8. python中的readalllines用法_什么是最好的编程语言?(怎样才能爱上编程呢?)
  9. backup archivelog delete input 与delete all input 区别
  10. Facade门面模式
  11. 通过Ping检测网络故障的典型次序和IPconfig命令的使用
  12. itss认证是什么意思
  13. 微信开放平台开发-授权、全网发布(PHP)
  14. python 模拟键盘自动打字敲英语文章
  15. 张爱玲的10大爱情名言
  16. 汇道科技it培训让学员都能月入过万
  17. pandas 库前置知识
  18. Vue+springboot集成PageOffice实现在线编辑Word、excel文档
  19. 解决 Cocos2d-x 3.2 error C1041: 无法打开程序数据库vc120.pdb
  20. Caused by: java.sql.SQLException: Access denied for user ‘root‘@‘localhost‘ (using password: YES)

热门文章

  1. 高并发分布式系统中生成全局唯一订单号
  2. Python+汽车销售系统 毕业设计 191807
  3. 操作系统MIT6.S081:Lab4->Trap
  4. Eclipse 使用git 教程
  5. 20220407——3-8线译码器:quartersⅡ和 modelsim 联合仿真 实验操作
  6. 让wordpress支持播放f4v格式
  7. 变频电源与变频器不同浅释
  8. 【初学不要怕】详解利用Python制作PPT的精彩操作(一学就会)
  9. named.conf 详解
  10. libgo高性能网络服务器,【开源】gnet: 一个轻量级且高性能的 Golang 网络库