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)一的更多相关文章

  1. Java面试经典题目合集

    32 1.”static”关键字是什么意思?Java中是否可以覆盖(override)一个private或者是static的方法? “static”关键字表明一个成员变量或者是成员方法与类相关,可以在 ...

  2. 前端面试经典题目(HTML+CSS)二

    1.浏览器页面由哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层 分别是:HTML.CSS.JavaScript 作用:HTML实现页面结构,CSS完成页面的表现与风格,JavaSc ...

  3. CSS3悬停特效合集Hover.css

    CSS3悬停特效合集Hover.css是一款特效丰富,支持2D变化特效.边框特效.阴影特效等: 使用简单,可直接复制相关特效代码,快速应用到元素上. 源码地址:http://www.huiyi8.co ...

  4. 秋招如何抱佛脚?2022最新大厂Java面试真题合集(附答案

    2022秋招眼看着就要来了,但是离谱的是,很多同学最近才想起来还有秋招这回事,所以纷纷临时抱佛脚,问我有没有什么快速磨枪的方法, 我的回答是:有! 说起来,临阵磨枪没有比背八股文更靠谱的了,很多人对这 ...

  5. JS题目合集---新技术层出不穷,打好基础才是上策~

    在IT界中公司对JavaScript开发者的要求还是比较高的,但是如果JavaScript开发者的技能和经验都达到了一定的级别,那他们还是很容易跳到优秀的公司的,当然薪水就更不是问题了.但是在面试之前 ...

  6. 2020年!最全Android大厂面试真题合集(附答案)

    这份Android面试真题涵盖了图片,网络和安全机制,网络,数据库,插件化.模块化.组件化.热修复.增量更新.Gradle,架构设计和设计模式,Android Framework .Android优秀 ...

  7. array题目合集

    414. Third Maximum Number 给一个非空的整数数组,找到这个数组中第三大的值,如果不存在,那么返回最大的值.要求时间复杂度为o(n) 例如: Example 1: Input: ...

  8. codeforces题目合集(持续更新中)

    CF280CCF280CCF280C 期望dp CF364DCF364DCF364D 随机化算法 CF438DCF438DCF438D 线段树 CF948CCF948CCF948C 堆 CF961EC ...

  9. Java面试基础部分合集

    写在前面:这篇文章对于在Java方面已经很牛逼的大手,就没必要看了,因为对于你们来说,这tm简直太简单了.... 面试我们都经历过,你真的懂面试吗?针对面试我只想说一点,面试的目的不是让考官知道你怎么 ...

随机推荐

  1. 牛客网NOIP赛前集训营-提高组(第四场)B区间

    牛客网NOIP赛前集训营-提高组(第四场)B区间 题目描述 给出一个序列$ a_1  \dots   a_n$. 定义一个区间 \([l,r]\) 是好的,当且仅当这个区间中存在一个 \(i\),使得 ...

  2. 3.2、Factorization Machine实践

    1.在上一篇博客中我们构建度为二的因子分解机模型,这篇博客对这个模型进行实践 下图为准备的数据集: 完整代码为: # -*- coding: UTF-8 -*- # date:2018/6/6 # U ...

  3. try语句块和异常处理

    在C++中,异常处理包括: · throw表达式(throw expression) 异常检测部分使用throw表达式来表示它遇到了无法处理的问题.throw表达式抛出一个异常并把控制权转移到能处理该 ...

  4. js面向对象(二)——继承

    上一篇随笔讲了封装,这一篇我们说说继承,还是那上一篇猫和狗说事儿 function Dog(name,s){ this.name=name; this.sex=s; } Dog.prototype.t ...

  5. sqoop导数

    #!/bin/bash source ExitCodeCheck.shopts=$@getparam(){ echo $opts|xargs -n1|cut -b 2-|awk -v arg=$1 - ...

  6. Unix_JDK安装及配置

    CentOS 下过程 JDK 在 CentOS 和 Ubuntu 下安装过程是一样的,所以这里不再讲 Ubuntu 系统下的安装 JDK 1.8 下载 此时(20170906)最新版本:jdk-8u1 ...

  7. 07-oracle多表查询

    --笛卡尔积,多表查询时,n张表中的行数相乘(本例中14*4=56)--多表查询时笛卡尔积无法消除,即使使用了限定条件(where)也只是不显示而已,实际上笛卡尔积仍存在 --只能使用合理的做法来处理 ...

  8. ZOJ 3607 Lazier Salesgirl

    Kochiya Sanae is a lazy girl who makes and sells bread. She is an expert at bread making and selling ...

  9. Java的IO流各个类的使用原则

    参考:http://blog.csdn.net/ilibaba/article/details/3955799 Java IO 的一般使用原则(花多眼乱,其实每个类都有专门的作用): 这里有详细介绍: ...

  10. 32位和64位系统内核函数调用从ZwProtectVirtualMemory到NtProtectVirtualMemory

    0x01 前言 我们知道R3层中,Zw系列函数和Nt系列函数函数是一样的,但是在内核Zw系列函数调用了Nt系列函数,但是为什么要在内核设置一个Zw系列函数而不是直接调用Nt函数呢?Zw系列函数又是怎么 ...