前端面试常考系列四

转载自  前端面试常考系列四

一、CSS盒子模型有哪些用处

css中的盒子模型是为了理解div+css模型的定位功能,它利用盒子模型这样的布局方式代替了传统的表格布局方式。盒子模型是在学习div+css布局方式中必须要学习的一个模型,通过这个模型可以明白网页中div和div之间的相对位置是如何布局的。


二、HTML5应用程序缓存和浏览器缓存有何区别

应用程序缓存是HTML5的重要特性之一,提供了离线使用的功能,让应用程序可以获取本地的网站内容,例如HTML、CSS图片以及JavaScript。这个特性可以提高网站性能,它的实现借助于manifest文件,与传统浏览器缓存相比,它不强制用户访问的网站内容被缓存。


三、HTML5 Canvas 元素有何作用

HTML5的canvas元素使用JavaScript 在网页上绘制图像优势在于在于可以直接在HTML上进行图形操作 


四、如何把视频嵌入HTML5
方法如下
<video width=”450″height=”340″controls>
  <source src=”jamshed.mp4″type=”video/mp4″>
   Your browser does’nt support video embedding feature.
</video>


五、如何把音频嵌入HTML5
方法如下
<audio controls>
    <source src=”jamshed.mp3″type=”audio/mpeg”>
    Your browser does’nt support audio embedding feature.
</audio>

六、新的HTML5文档类型和字符集是什么
文档类型
<!doctype html>
字符集
<meta charset=”UTF-8″>

七、CSS选择器的类型有哪些,并说明其用法
CSS选择器的类型有:

基础的选择器、组合选择器、属性选择器、伪类、伪元素

1、基础的选择器

*

通用元素下选择器,匹配任何元素。Ex:*{margin:0; padding:0;}

E

标签选择器,匹配所有使用E标签的元素。Ex:P{font-size:2em;}

.info和E.info

class选择器,匹配所有class属性中包含info的元素。Ex.info{background:#ff0;} p.info{background:#ff0;}p .info{background:#ff0;}

#info和E#info

Id选择器,匹配所有id属性等于footer的元素

Ex:#info{background:#ff0}

P#info{background:#ff0}

2、组合选择器

E,F

多元素选择器,同匹配所有E元素或F元素,E和F之间用逗号隔开。

Ex:Div,p{color:#f00}

E F

后代元素选择器,匹配所有属于E元素后代的F元素,E和F之间用空格分隔。

Ex:#nav li { display:inline;}

li a { font-weight:bold;}

E>F

子元素选择器,匹配所有E元素的子元素F。

Ex:din>strong { color:#f00;}

E+F

毗邻元素选择器,匹配所有紧随E元素之后的同级元素F。

P+P{ color:#f00;}

3、属性选择器

E[att]

匹配所有具有att属性的E元素,不考虑它的值。(注意:E在此处可以省略,比如[cheacked]。下面的属性选择器也是同样。)

EX:p[title]{ color:#f00;}

E[att=val]

匹配所有att属性等于“val”的E元素。

Ex:div[class=error]{color:#f00;}

E[arr~=val]

匹配所有att属性具有多个空格分隔的值、其中一个值等于“val”的E元素。

Ex:td[class~=name]{color;#f00}

E[arr|=val]

匹配所有att属性具有多个连字号分隔(hyphen-separated)的值,且其中一个值以“val”开头的E元素,主要用于lang属性,比如“en”、“en-us”、“en-qb”等等。

Ex:p[lang|=en]{color:#foo;}

4、伪类

E:first-child

匹配父元素的第一个子元素。

Ex: p:first-child { font-style:italic;}

E:link

匹配所有未被点击的链接。

E:visited

匹配所有已被点击的链接。

E:active

匹配所有鼠标已经按下且未释放的E元素。

E:hover

匹配鼠标悬停其上的E元素。

E:lang(c)

匹配lang属性等于c的E元素。

5、伪元素

E:first-line

匹配E元素的第一行。

Ex:p:first-line { font-weight:bold;color;#600;}

E:first-litter

匹配E元素的第一个字母。

E:before

在E元素之前插入生成的内容。

E:affter

在E元素之后插入生成的内容。


八、CSS的优先级和计算特殊值有何特殊性

优先级

(1)、同类型,同级别的样式后者先于前者
(2))、ID > 类样式 > 标签 > *
(3)、内联>ID选择器>伪类>属性选择器>类选择器>标签选择器>通用选择器(*)>继承的样式
(4)、具体 > 泛化的,特殊性即css优先级
(5)、近的 > 远的 (内嵌样式 > 内部样式表 > 外联样式表)
内嵌样式:内嵌在元素中,<span style="color:red">span</span>
内部样式表:在页面中的样式,写在<style></style>中的样式
外联样式表:单独存在一个css文件中,通过link引入或import导入的样式
(6)、!important 权重最高,比 inline style 还要高。

计算特殊性值

important > 内嵌 > ID > 类 > 标签 | 伪类 | 属性选择 > 伪对象 > 继承 > 通配符
权重、特殊性计算法: 
 CSS样式选择器分为4个等级,a、b、c、d
(1)、如果样式是行内样式(通过Style=“”定义),那么a=1,1,0,0,0 
(2)、b为ID选择器的总数 0,1,0,0 
(3)、c为属性选择器,伪类选择器和class类选择器的数量。0,0,1,0
(4)、d为标签、伪元素选择器的数量 0,0,0,1
(5)、!important 权重最高,比 inline style 还要高。

九、如何动态改变层中的内容

innerHTMLinnerText


十、常见浏览器兼容性问题有哪些,如何解决

浏览器兼容问题一

块属性标签float后,又有横行的margin情况下,在IE6显示margin比设置的大 

问题症状:常见症状是IE6中后面的一块被顶到下一行
碰到频率:90%(稍微复杂点的页面都会碰到,float布局最常见的浏览器兼容问题)
解决方案:在float的标签样式控制中加入 display:inline;将其转化为行内属性
备注:我们最常用的就是div+CSS布局了,而div就是一个典型的块属性标签,横向布局的时候我们通常都是用div float实现的,横向的间距设置如果用margin实现,这就是一个必然会碰到的兼容性问题。

浏览器兼容问题二

设置较小高度标签(一般小于10px),在IE6,IE7,遨游中高度超出自己设置高度 

问题症状:IE6、7和遨游里这个标签的高度不受控制,超出自己设置的高度
碰到频率:60%
解决方案:给超出高度的标签设置overflow:hidden;或者设置行高line-height 小于你设置的高度。
备注:这种情况一般出现在我们设置小圆角背景的标签里。出现这个问题的原因是IE8之前的浏览器都会给标签一个最小默认的行高的高度。即使你的标签是空的,这个标签的高度还是会达到默认的行高。

浏览器兼容问题三

不同浏览器的标签默认的外补丁和内补丁不同 

问题症状:随便写几个标签,不加样式控制的情况下,各自的margin 和padding差异较大。
碰到频率:100%
解决方案:CSS里 *{margin:0;padding:0;}
备注:这个是最常见的也是最易解决的一个浏览器兼容性问题,几乎所有的CSS文件开头都会用通配符*来设置各个标签的内外补丁是0。

浏览器兼容问题四

行内属性标签,设置display:block后采用float布局,又有横行的margin的情况,IE6间距bug 

问题症状:IE6里的间距比超过设置的间距
碰到几率:20%
解决方案在display:block;后面加入display:inline;display:table;
备注:行内属性标签,为了设置宽高,我们需要设置display:block;(除了input标签比较特殊)。在用float布局并有横向的margin后,在IE6下,他就具有了块属性float后的横向margin的bug。不过因为它本身就是行内属性标签,所以我们再加上display:inline的话,它的高宽就不可设了。这时候我们还需要在display:inline后面加入display:talbe。

浏览器兼容问题五

图片默认有间距

问题症状:几个img标签放在一起的时候,有些浏览器会有默认的间距,加了问题一中提到的通配符也不起作用。
碰到几率:20%
解决方案:使用float属性为img布局
备注 : 因为img标签是行内属性标签,所以只要不超出容器宽度,img标签都会排在一行里,但是部分浏览器的img标签之间会有个间距。去掉这个间距使用float是正道。(我的一个学生使用负margin,虽然能解决,但负margin本身就是容易引起浏览器兼容问题的用法,所以我禁止他们使用)。

浏览器兼容问题六

标签最低高度设置min-height不兼容 

问题症状:因为min-height本身就是一个不兼容的CSS属性,所以设置min-height时不能很好的被各个浏览器兼容
碰到几率:5%
解决方案:如果我们要设置一个标签的最小高度200px,需要进行的设置为:{min-height:200px; height:auto !important; height:200px; overflow:visible;}
备注:在B/S系统前端开时,有很多情况下我们又这种需求。当内容小于一个值(如300px)时。容器的高度为300px;当内容高度大于这个值时,容器高度被撑高,而不是出现滚动条。这时候我们就会面临这个兼容性问题。

浏览器兼容问题七

透明度的兼容CSS设置 

一般在ie中用的是filter:alpha(opacity=0);这个属性来设置div或者是块级元素的透明度,而在firefox中,一般就是直接使用opacity:0,对于兼容的,一般的做法就是在书写css样式的将2个都写上就行,就能实现兼容。


十一、除了audio和video,HTML5还有哪些媒体标签
<video>  标记定义一个视频
<audio>  标记定义音频内容
<source>  标记定义媒体资源
<canvas>  标记定义图片
<embed>  标记定义外部的可交互的内容或插件比如flash 


十二、display的值各有什么作用

none

隐藏对象。与visibility属性的hidden值不同,其不为被隐藏的对象保留其物理空间 
  inline

指定对象为内联元素。 
  block

指定对象为块元素。 
  list-item

指定对象为列表项目。 
  inline-block

指定对象为内联块元素。(CSS2) 
  table

指定对象作为块元素级的表格。类同于html标签<table>(CSS2) 
  inline-table

指定对象作为内联元素级的表格。类同于html标签<table>(CSS2) 
  table-caption

指定对象作为表格标题。类同于html标签<caption>(CSS2) 
  table-cell

指定对象作为表格单元格。类同于html标签<td>(CSS2) 
  table-row

指定对象作为表格行。类同于html标签<tr>(CSS2) 
  table-row-group

指定对象作为表格行组。类同于html标签<tbody>(CSS2) 
  table-column

指定对象作为表格列。类同于html标签<col>(CSS2) 
  table-column-group

指定对象作为表格列组显示。类同于html标签<colgroup>(CSS2) 
  table-header-group

指定对象作为表格标题组。类同于html标签<thead>(CSS2) 
  table-footer-group

指定对象作为表格脚注组。类同于html标签<tfoot>(CSS2) 
  run-in

根据上下文决定对象是内联对象还是块级对象。(CSS3) 
  box

将对象作为弹性伸缩盒显示。(伸缩盒最老版本)(CSS3) 
  inline-box

将对象作为内联块级弹性伸缩盒显示。(伸缩盒最老版本)(CSS3) 
  flexbox

将对象作为弹性伸缩盒显示。(伸缩盒过渡版本)(CSS3) 
  inline-flexbox

将对象作为内联块级弹性伸缩盒显示。(伸缩盒过渡版本)(CSS3) 
  flex

将对象作为弹性伸缩盒显示。(伸缩盒最新版本)(CSS3) 
  inline-flex

将对象作为内联块级弹性伸缩盒显示。(伸缩盒最新版本)(CSS3)


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/329775.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

python线性加权模型_局部加权之线性回归(1) - Python实现

1 #局部加权线性回归2 #交叉验证计算泛化误差最小点345 importnumpy6 from matplotlib importpyplot as plt789 #待拟合不含噪声之目标函数10 deforiFunc(x):11 y numpy.exp(-x) * numpy.sin(10*x)12 returny13 #待拟合包含噪声之目标函数14 def traFunc(x, sigma0.03):15 y …

3分钟看完 Day2 Keynote

hey~ M姐又给大家带来了满满惊喜的 Build2016 Day 2 Keynote 干货汇总了。 如果你连昨天的都还不知道&#xff0c;那真心就 out 了。如果说信仰在昨天充值爆棚&#xff0c;今天就要充值信仰到掀翻房顶的节奏了&#xff01;&#xff01;&#xff01; 红衣主教今天妥妥变身成为新…

latex 数学公式_技能分享——LaTeX篇I

公众号文章系列二——“小袁技能分享”上线啦&#xff0c;第一篇推文我们聊一聊LaTeX(音译 “拉泰赫”)Question 1什么是LaTeX&#xff1f;要解释LaTeX是什么&#xff0c;我们先要了解另外一个事物&#xff1a;TeX。1968年&#xff0c;美国著名计算机科学家、现代计算机科学的先…

转:springboot servlet使用配置

转自&#xff1a; springboot servlet使用配置_奔跑的蜗牛的博客-CSDN博客在spring boot中添加自己的Servlet有两种方法&#xff0c;代码注册Servlet和注解自动注册&#xff08;Filter和Listener也是如此&#xff09;。 一、代码注册通过ServletRegistrationBean 获得控制。 也…

前端面试常考系列五

转载自 前端面试常考五 一、DIV元素是什么 DIV元素是用来为HTML文档内大块&#xff08;block-level&#xff09;的内容提供结构和背景的元素。DIV的起始标签和结束标签之间的所有内容都是用来构成这个块的&#xff0c;其中所包含元素的特性由DIV标签的属性来控制&#xff0c;或…

从业十余年谈谈对dotnet看法与坚持

前言 园子经常在讨论关于.Net发展的问题&#xff0c;我也这些年在工作乃至创业过程中使用.Net碰到的一些问题和看法。个人擅长的技术面&#xff0c;C/C/MFC/STL、ASM、JAVA、VB、Javascript/Typescript、C#/WebForm/MVC、Android/MonoDroid,Linux/Windows&#xff0c;还有没有可…

kali安装python3.7_Debian服务器之安装Python3.7

1、系统环境介绍1.1 系统版本debian-9.6.0-amd64-netinst1.2 系统内核Linux lnnkee 4.9.0-8-amd64 #1 SMP Debian 4.9.130-2 (2018-10-27) x86_64 GNU/Linux2、下载安装包https://www.python.org/ftp/python/3.7.0/Python-3.7.0.tar.xz3、配置安装环境apt install libffi-dev …

org.apache.kafka.common.errors.TimeoutException: Topic not present in metadata 解决方法

【README】 本文po出了 topic not present in metadata 的解决方法&#xff1b; 很多博文说是 因为 jackson-databind 没有引入&#xff0c;但是我重新引入后&#xff0c;还是没有解决问题&#xff1b; 最后&#xff0c;原因在于我要发送消息的分区&#xff0c;topic 没有对…

前端面试常考系列六

转载自 前端面试常考系列六 一、为什么重置浏览器默认样式&#xff0c;如何重置 每种浏览器都有一套默认的样式表&#xff0c;即user agent stylesheet&#xff0c;网页在没有指定的样式时&#xff0c;按浏览器内置的样式表来渲染。这是合理的&#xff0c;像word中也有一些预留…

Microsoft将Linux带至桌面操作系统

在今天的Build大会上Microsoft宣布&#xff1a;今年的Windows 10年度更新将使得Windows 10系统能够无缝运行Linux二进制程序。多年来&#xff0c;专家与开发者都在猜测&#xff0c;Linux如何以及何时才能在普通PC用户的桌面系统中更加流行。从今天的新闻来看&#xff0c;似乎Mi…

kafka控制器,复制与存储小结

【README】 1&#xff0c;本文主要总结kafka复制&#xff0c;存储细节&#xff1b;2&#xff0c;本文的kafka集群版本是3.0.0&#xff0c; 有3个broker&#xff0c;分别是 centos201, centos202, centos203 对应的brokerid为 1&#xff0c; 2, 3 &#xff1b;【1】kafka内部原…

python开发stm32软件_ADB+Python+STM32 实现 微信跳一跳辅助

说明:安卓手机开启USB调试模式&#xff0c;具体如何开启&#xff0c;百度自己手机即可安装ADB工具安装python2.7步骤&#xff1a;1、安装adb工具下载地址&#xff1a;https://download.csdn.net/download/qq_29769263/10420731下载后解压到便于记忆的地方即可&#xff0c;以解压…

不装mono,你的.NET程序照样可以在Linux上运行

让.NET应用程序在linux上运行&#xff0c;目前通用的做法就是在Linux上安装mono&#xff0c;然后通过”mono your.exe“命令运行这个程序。 这种运行.net程序的办法有两个弱点&#xff0c;一个是需要客户机安装mono&#xff0c;二个是 ”mono xx.exe“ 这种命令行总让人感到有点…

JAVA面试常考系列一

转载自 JAVA面试常考系列一 题目一 什么是Java虚拟机&#xff1f;为什么Java被称为平台无关的编程语言&#xff1f; java虚拟机是一个可以执行字节码文件&#xff08;.class&#xff09;的虚拟机进程。 为什么java与平台无关呢&#xff1f;因为java源程序&#xff08;.java&…

转:运维监控系统-监控项及指标的梳理

转自&#xff1a; 运维监控系统-监控项及指标的梳理_程序员杂谈-CSDN博客_运维监控指标综合监控功能工具 综合监控工具完成对被管对象的集中监控、集中维护和集中管理&#xff0c;被管对象包括网络设备、服务器、PC设备、数据库、中间件、存储、备份、安全设备、应用系统等。工…

圆心角 圆弧上点坐标_数控加工中心CNC的G02/G03圆弧指令的I、J、与R的区别

G02&#xff1a;顺&#xff08;CW&#xff09;圆弧插补G03&#xff1a;逆&#xff08;CCW&#xff09;圆弧插补根据所选择的X、Y平面&#xff0c;指令格式如下两种&#xff1a;G17 G02/G03 X_ Y_ I_ J_ F_;G17 G02/G03 X_ Y_ R_ F_;定义方式&#xff1a;依右手坐标系统&#xf…

AutoMapper 使用实践

一. 使用意图 常常在开发过程中&#xff0c;碰到一个实体上的属性值&#xff0c;要赋值给另外一个相类似实体属性时&#xff0c;且属性有很多的情况。一般不利用工具的话&#xff0c;就要实例化被赋值实体B&#xff0c;然后再将实体A的字段一个个赋值给B的属性&#xff0c;单…

kafka可靠数据传递

【README】 本文阐述了kafka可靠消息传递机制&#xff1b; 本文部分内容总结于《kafka权威指南》&#xff08;一本好书&#xff0c;墙裂推荐&#xff09;&#xff0c;再加上自己的理解&#xff1b; 【1】可靠性保证 1&#xff0c;在讨论可靠性时&#xff0c;一般使用保证这个…

JAVA面试常考系列二

转载自 JAVA面试常考系列二 题目一 解释一下线程和进程 进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。 线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位.线程自己基本上…

雨滴桌面时间插件_Win10美化向——如何搭配你的桌面

// 2020-02-11 //桌面这个东西大家肯定不陌生了&#xff0c;很多人的桌面都如下。_______滑动查看更多图片这多重水印是什么鬼&#xff1f;&#xff1f;&#xff1f;&#xff1f;&#xff1f;还有很多网友呢&#xff0c;也美化了一下自己的桌面。不过呢严格来说&#xff0c;这应…