前端面试经典题目合集(HTML+CSS)一
1、说说你对HTML语义化的理解?
(1)什么是HTML语义化?
根据内容的结构化(内容语义化),选择合适的标签(代码语义化)便于开发者阅读和写出更优雅的代码的同时让浏览器的爬虫和机器很好地解析。
(2)为什么要语义化?
为了在没有css的情况下,页面也能呈现出很好的内容结构、代码结构;为了裸奔时好看;
用户体验:例如title、alt用于解释名词或解释图片信息、label标签的活用;
有利于SEO:和搜索引擎建立良好的沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字;
便于团队开发和维护,语义化更具可读性,是下一步网页的重要动向,遵循W3C标准的团队都遵循这个标准,可以减少差异化。
2、link和@import的区别
两者都是外部引用css的方式,但存在一定的区别:
区别1:link是XHTML标签,除了加载css外,还可以定义RSS等其他事物;@import属于css范畴,只能加载css
区别2:link引用css时,在页面载入的同时加载;@import需要页面网页完全载入以后加载。
区别3:link是XHTML标签,无兼容问题;@import是在css2.1提出的,低版本的浏览器不支持。
区别4:link支持使用JavaScript控制DOM区改变样式;而@import不支持。
3、超链接target属性的取值和作用
target属性指定所链接的页面在浏览器窗口中的打开方式。
它的参数值主要有:
_blank:在新浏览器窗口中打开链接文件
_parent:将链接的文件载入含有该链接框架的父框架集或父窗口中。如果含有该链接的框架不是嵌套的,则在浏览器全屏窗口中载入链接的文件
_self:在同一框架或窗口中打开所链接的文档。此参数为默认值,通常不用指定
_top:在当前的整个浏览器窗口中打开所链接的文档,因而或删除所有框架。
4、介绍一下你对浏览器内核的理解?
主要分为两部分:渲染引擎和JS引擎
渲染引擎:负责取得网页的内容(HTML、XML、图像等)、整理讯息(例如加入css等)。以及计算网页的显示方式,然后会输出至显示器或打印机。浏览器的内核不同对于网页的语法解释会有不同,所以渲染的效果也不相同。所以网页浏览器、电子邮件客户端以及其它需要编辑、显示网络内容的应用程序都需要内核。
JS引擎:解析和执行JavaScript来实现网页的动态效果。
最开始渲染引擎和JS引擎并没有区分的很明确,后来JS引擎越来越独立,内核就倾向于只指渲染引擎。
5、常见的浏览器内核有哪些?
1、Trident内核:IE,MaxThon,TT,The World,360,搜狗浏览器等。
2、Gecko内核:Netscape6及以上版本,FF,MozillaSuite/SeaMonkey等
3、Presto内核:Opera7及以上(Opera内核原为Presto,现为Blink(Webkit的分支))
4、webkit内核:Safari,Chrome等
6、iframe有哪些缺点?
- iframe会阻塞主页面的Onload事件;
- 搜索引擎的检索程序无法解读这种页面,不利于SEO
- iframe和主页共享连接池,而浏览器对相同域的连接有限,所以会影响页面的并行加载
使用iframe之前需要考虑到这两个缺点,如果需要使用iframe,最好是通过JavaScript动态给iframe添加src属性值,这样可以绕开以上两个问题
7、label的作用是什么?
label标签来定义表单控制间的关系,当用户选择该标签时,浏览器会自动将焦点转到和标签相关的表单控件上。在使用时,需要注意label标签的for属性值要与后面对应的input标签id属性值相同。
8、如何在页面上实现一个圆形的可点击区域?
map+area或者svg;border-radius;纯js实现 需要求一个点在不在圆上简单算法、获取鼠标坐标等等
9、实现不适应border画出1px高的线,在不同浏览器的标准模式与怪异模式下都能保持一致的效果?
<div style="width:100%;height:1px;background-color:black"></div>
10、HTML5标签的作用?
- 使web页面的内容更加有序和规范
- 使搜索引擎更加容易按照HTML5规则识别出有效的内容
- 使web页面更接近于一种数据字段和表
11、HTML5有哪些新增的表单元素
HTML5新增了很多表单元素让开发者构建更优秀的web应用程序,主要有:datalist、Keygen、output
12、HTML5存储类型有什么区别?
HTML5 能够本地存储数据,在之前都是使用cookies。HTML5 提供 了下面两种本地存储方案:
localStorage:用于持久化的本地存储,数据永远不会过期,关闭浏览器也不会消失
sessionStorage:同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。
13、解释一下CSS的盒模型
标准的css 盒模型:宽度=内容的宽度+边框的宽度+内边框的宽度
14、css选择器的优先级
ID选择器>伪类>属性选择器>类选择器>标签选择器>通用选择器>继承的样式
15、要动态改变层中内容可以使用的方法
innerHTML,innerText
16、你有哪些性能优化的方法?
(1)减少http请求次数:CSS Sprites,JS、CSS源码压缩、图片大小控制合适;网页Gzip,CDN托管,data缓存,图片服务器
(2)前端模板js+数据,减少由于HTML标签导致的带宽浪费,前端用度量保存AJAX请求结果,每次操作本地变量,不用请求,减少请求次数
(3)用innerHTML代替DOM操作,减少DOM操作次数,优化JavaScript性能
(4)当需要设置的样式很多时设置className而不是直接操作style
(5)少用全局变量、缓存DOM节点查找的结果,减少IO读取操作
(6)避免使用CSS Expression(css表达式)
(7)图片预加载,将样式表放在顶部,将脚本放在底部,加上时间戳。
17、为什么要初始化CSS样式
因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没有对css初始化往往会出现浏览器之间的页面显示差异。当然,初始化样式会对SEO有一定的影响,但鱼与熊掌不可兼得,但力求影响最小的情况下初始化。最简单的初始化方法是:*{padding:0;margin:0;},但不建议这样初始化。
18、解释下浮动和它的工作原理?清除浮动的技巧?
浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或者浮动元素的边框停留。
1)使用空标签清除浮动
这种方法是在所有浮动标签后面添加一个空标签,定义css clear:both,弊端就是增加了无意义标签
2)使用overflow
给包含浮动元素的父标签添加css属性overflow:auto;zoom:1; (zoom:1用于兼容IE6)
3)使用after伪对象清除浮动
该方法只适用于非IE浏览器。使用中需要注意以下几点:该方法中必须为需要清除浮动元素的伪对象中设置height:0; 否则该元素会比实际高出若干像素。
前端面试经典题目合集(HTML+CSS)一的更多相关文章
- Java面试经典题目合集
32 1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法与类相关,可以在 ...
- 前端面试经典题目(HTML+CSS)二
1.浏览器页面由哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层 分别是:HTML.CSS.JavaScript 作用:HTML实现页面结构,CSS完成页面的表现与风格,JavaSc ...
- CSS3悬停特效合集Hover.css
CSS3悬停特效合集Hover.css是一款特效丰富,支持2D变化特效.边框特效.阴影特效等: 使用简单,可直接复制相关特效代码,快速应用到元素上. 源码地址:http://www.huiyi8.co ...
- 秋招如何抱佛脚?2022最新大厂Java面试真题合集(附答案
2022秋招眼看着就要来了,但是离谱的是,很多同学最近才想起来还有秋招这回事,所以纷纷临时抱佛脚,问我有没有什么快速磨枪的方法, 我的回答是:有! 说起来,临阵磨枪没有比背八股文更靠谱的了,很多人对这 ...
- JS题目合集---新技术层出不穷,打好基础才是上策~
在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司的,当然薪水就更不是问题了.但是在面试之前 ...
- 2020年!最全Android大厂面试真题合集(附答案)
这份Android面试真题涵盖了图片,网络和安全机制,网络,数据库,插件化.模块化.组件化.热修复.增量更新.Gradle,架构设计和设计模式,Android Framework .Android优秀 ...
- array题目合集
414. Third Maximum Number 给一个非空的整数数组,找到这个数组中第三大的值,如果不存在,那么返回最大的值.要求时间复杂度为o(n) 例如: Example 1: Input: ...
- codeforces题目合集(持续更新中)
CF280CCF280CCF280C 期望dp CF364DCF364DCF364D 随机化算法 CF438DCF438DCF438D 线段树 CF948CCF948CCF948C 堆 CF961EC ...
- Java面试基础部分合集
写在前面:这篇文章对于在Java方面已经很牛逼的大手,就没必要看了,因为对于你们来说,这tm简直太简单了.... 面试我们都经历过,你真的懂面试吗?针对面试我只想说一点,面试的目的不是让考官知道你怎么 ...
随机推荐
- loj2497 [PA2017]Banany(动态淀粉质)
link 给定一棵树,点有点权,边有边权,你每次修改一个点点权或者是修改一个边边权 你一开始在1号点,你每次改节点之后你需要移动到另一个节点,满足这个节点权值减去路径长度最大(下一次从这个节点移动)如 ...
- python 常用模块大全
1.getpass 模块 一般用于获取用户输入的密码 import getpass pwd = getpass.getpass('input your pass') print(pwd) print ...
- HTML-★★★★JavaScript的DOM操作★★★★-重点部分
Window.document 对象 一.找到元素 document.getElementById("id"); 根据id找,最多找一个: var a = document.get ...
- vim编辑器基本操作及文件权限,sudo命令等介绍
一:vim 操作命令,在命令模式下操作 pageup 往上翻页 pagedown 往下翻页 H 移动到屏幕首行 gg 移动光标到文档的首行 前面加数字n表示移动到n行内容 G 移动到文档最后一行/查找 ...
- stark - 2 ⇲路由分发
在介绍前面三个注意点后,开始写stark组件内容. from django.apps import AppConfig from django.utils.module_loading import ...
- html5在手机熄屏后倒计时会出现延迟情况
今天开发了一个手机端的倒计时,然后同事说出现了Bug,怎么回事呢?Bug很简单,就是在手机返回主界面或者熄屏后倒计时会暂停在熄屏前的时间(注意时间是页面加载时获取的服务器的时间),问题很简单,知道问题 ...
- ScriptManager.RegisterStartupScript()方法和Page.ClientScript.RegisterStartupScript() 方法详解
ScriptManager.RegisterStartupScript()方法 如果页面中不用Ajax,cs中运行某段js代码方式可以是: Page.ClientScript.RegisterStar ...
- React创建组件的三种方式比较
推荐文章: https://www.cnblogs.com/wonyun/p/5930333.html 创建组件的方式主要有: 1.function 方式 2.class App extends Re ...
- goLang冒泡
// test project main.gopackage main import ( "fmt") func main() { var a = [10]int{1, ...
- 日调度万亿次,微服务框架TSF大规模应用——云+未来峰会开发者专场回顾
欢迎大家前往腾讯云+社区,获取更多腾讯海量技术实践干货哦~ 演讲者:张浩 腾讯云中间件产品负责人 背景:众多开发者中,一定经历类似的甜蜜烦恼,就是当线上业务规模越来越大,系统分支发展越来越多的时候,初 ...