前端面试题总结(二)CSS篇
前端面试题总结(二)CSS篇
一、link和@import的区别?
- link属于HTML标签,可以引入出css以外的事务,如RSS,而@import是css提供的,只能加载css文件。
- link会在页面加载同时加载,@import会等到页面加载完成再加载。
- import只在IE5以上才能识别,link五兼容性问题。
- link防止的样式权重,高于@import的权重。
- link可以使用JavaScript控制dom改变样式,@import不可以。
二、常见兼容性?
- png24位的图片在IE6浏览器上会出现背景(做成png8)。
- 浏览器默认的margin和padding不同(加一个全局的样式padding:0;margin:0;)。
- IE6双边距(块元素浮动后,又有横向margin情况下,在IE6显示的margin比设置的大)。
- 设置子元素与父元素之间的外间距时会产生塌陷(给父元素设置浮动或overflow,尽量使用padding)。
- 浮动IE产生的双倍距离(#box{ float:left; width:10px; margin:0 0 0 100px;})。
- 上下margin重合问题
- ie和ff都存在,相邻的两个div的margin-left和margin-right不会重合,但是margin-top和margin-bottom却会发生重合。
- 解决方法,养成良好的代码编写习惯,同时采用margin-top或者同时采用margin-bottom。
- 超链接hover 点击后失效 使用正确的书写顺序 link visited hover active。
- 3像素问题 使用float引起的 使用dislpay:inline -3px。
- Ie z-index问题 给父级添加position:relative。
- Min-height 最小高度 !Important 解决’。
- select 在ie6下遮盖 使用iframe嵌套。
- 为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)。
- IE5-8不支持opacity,解决办法:
1
2
3
4
5
6
|
.opacity { opacity: 0.4 filter: alpha(opacity= 60 ); /* for IE5-7 */ -ms-filter: "progid:DXImageTransform.Microsoft.Alpha(Opacity=60)" ; /* for IE 8*/ } |
三、css3有哪些新特性?
- 圆角。(border-radius)
- 阴影。(box-shadow/text-shadow)
- 渐变。(gradient)
- 旋转、定位、缩放、倾斜。(transform:rotate/translate/scale/skew)
- 增加了更多选择器。
- 多背景。
- rgba。
- 动画。
- 媒体查询。
- 多栏布局与盒布局。
- 新的盒模型计算方式(box-sizing)。
四、css3的新增伪类举例?
first-of-type、first-child、last-child、last-of-type、only-child、nth-child、enabled、checked、only-of-type、roo。。。。
唯一的伪元素:::selection。
五、什么是css层叠?
css层叠式针对同一元素配置同一属性,权重高。
六、display:none和visibility:hidden的区别?
display:none隐藏元素,在文档布局中不在给它分配空间,它个边的元素会合拢,就当他从来不存在。
visibility:hidden隐藏元素,但是在文档布局中仍保留原来的空间。
七、position的absolute和fixed共同点与不同点?
共同点:
- 改变行内元素的呈现方式,display被设置为block。
- 让元素脱离正常文档流,不占据空间。
- 默认会覆盖到非定位元素上。
不同点:
absolute的根元素是可以设置的,非fixed的根元素固定为浏览器窗口。当滚动页面时,fixed元素与浏览器窗口直接的距离是不变的。
八、为什么要初始化样式?“reset.css”的作用和使用它的好处。
- 因为浏览器的兼容问题,不同浏览器对有些标签的默认值是不同的,如果没对CSS初始化往往会出现浏览器之间的页面显示差异。但是会对SEO有一定的影响,但鱼与熊掌不可兼得,但力求影响最小的情况下初识话。
- 初始化CSS样式主要是提高编码质量,如果不初始化整个页面做完很糟糕,重复的CSS样式很多。去掉标签的默认样式如:margin,padding,其他浏览器默认解析字体大小,字体设置。
- 浏览器品种很多,每个浏览器默认样式也不同,所以定义一个reset.css可以使浏览器默认样式统一。
九、CSS Sprites是什么?如何使用?
其实就是把网页中一些背景图整合一张图片文件中,再利用css的background进行背景定位。可以减少图片请求的开销。但是请求虽然可以并发,一般浏览器都只有6个。但是对于未来而言,就不需要这样了,因为有了http2。
十、解释下浮动、以及其工作原理?清除浮动的技巧。
- 浮动元素脱离文档流,不占据空间。浮动元素碰到包含它的边框或浮动元素的边框停留。
- 浮动会导致父元素高度塌陷,与浮动元素同级的非浮动元素会跟随其后,若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构。
- 清除浮动:浮动元素后面使用空标签设置clear:both,父元素使用overflow,父元素浮动,父元素设置固定高,使用after伪对象清除。
十一、position:absoiute和float的异同?
- 共同点:对内联元素设置absoiute和float属性,可以让元素脱离文档流,并且可以设置其宽高。
- 不同点:float仍会占用位置,absolute会覆盖文档流中的其他元素。
十二、zoom:1清除浮动的原理?
- 触发hasLayout。
- zoom属性是IE浏览器的专有属性,可以设置或检索对象的缩放比例。解决IE下比较奇葩的bug。当设置zoom的值后,所设置的元素就会扩大或缩小,高度宽度就会重新计算了,这里一旦改变zoom值时其实也会发生重新渲染,运用这个原理,也就解决了IE下子元素浮动时父元素不随着自动扩大的问题。
十三、什么是css Hack?
一般来说是针对不同浏览器写不同的css就是css Hack。
IE浏览器Hack又分为三种,条件、属性级、选择符。
十四、less与sass和scss?以及区别?
- 他们是动态的样式语言,是CSS预处理器,CSS上的一种抽象层。他们是一种特殊的语法/语言而编译成CSS。
- 变量符不一样,less是@,而Sass是$;
- Sass支持条件语句,可以使用if{}else{},for{}循环等等。而Less不支持;
- Sass是基于Ruby的,是在服务端处理的,而Less是需要引入less.js来处理Less代码输出Css到浏览器
十五、什么是css预处理、后处理?
预处理如less、sass、stylus用来预编译sass或less,增强了css代码的复用性,还有层级、mixin、变量、循环、函数等,具有很方便的UI组件模块化开发能力,极大的提高工作效率。
后处理如PostCSS,通常被视为在完成的样式表中根据css规范处理css,让其更有效;目前最常做的是给css属性添加浏览器私有前缀,实现跨浏览器兼容性的问题。
十六、书写高效css时会有哪些问题?
- 样式:从右往左的解析一个选择器。
- ID最快,依次是ID、class、tag、universal。
- 不要tag-qualify(tag#id),ID已经是唯一了,不需要tag来标识,这样做会让选择器变慢。
- 后代选择器最糟糕。
- 知道为什么这么写。
- css3的效率问题(css3的选择器能很快的定位到想要的元素,又保证了代码整洁易读,但是会浪费很多的浏览器资源)。
- 我们知道ID速度是最快的,但不能为了效率而牺牲可读性和可维护性。
十七、你用过媒体查询,或针对移动端的布局/CSS嘛?
媒体查询,就是响应式布局。通过不同的媒介类型和条件定义样式表规则。媒介查询让css可以更精确作用于不同的媒介类型和同一媒介的不同条件。
语法结构:@media 设备名 only(选取条件) not(选取条件) and(设备选取条件),设备二{sRules};
十八、如果设计中使用了非标准字体,你该如何实现?
所谓的标准字体是多数机器上都会有的,或者即使没有也可以由默认字体代替的字体。
- 用图片代替。
- web fonts在线字库。
- @font-facs,webfonts。
十九、解释下浏览器是如何判断元素是否匹配某个css选择器?
从后往前判断。浏览器先产生一个集合,这个集合往往由最后一个部分的索引产生(如果没有索引就是所有元素的集合)。然后向上匹配,如果不符合上一个部分,就把元素从集合中删除,知道整个选择器都匹配完,还在集合中的元素就匹配这个选择器了。
二十、超链接访问过后hover样式就不出现的问题是什么?如何解决?
被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序: L-V-H-A(link,visited,hover,active)
二十一、css中可以让文字在垂直和水平方向上重叠的两个属性是什么?
- 垂直方向:line-height
- 水平方向:letter-spacing
- letter-spacing的妙用知道有哪些么?
- 可以用于消除inline-block元素间的换行符空格间隙问题
二十二、列出display的值,说明他们的作用。position的值, relative和absolute定位原点是?
- block 象块类型元素一样显示。
- none 缺省值。向行内元素类型一样显示。
- inline-block 象行内元素一样显示,但其内容象块类型元素一样显示。
- list-item 象块类型元素一样显示,并添加样式列表标记。
2. position的值
- absolute:生成绝对定位的元素,相对于 static 定位以外的第一个父元素进行定位。
- fixed (老IE不支持):生成绝对定位的元素,相对于浏览器窗口进行定位。
- relative:生成相对定位的元素,相对于其正常位置进行定位。
- static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right z-index 声明)。
- inherit 规定从父元素继承 position 属性的值。
二十三、知道css有个content属性吗?有什么作用?有什么应用?
- css的content属性专门应用在 before/after 伪元素上,用来插入生成内容。最常见的应用是利用伪类清除浮动。
- 知道css计数器(序列数字字符自动递增)吗?如何通过css content属性实现css计数器?
- css计数器是通过设置counter-reset、counter-increment两个属性、及 counter()/counters()一个方法配合after/before 伪类实现
二十四、有哪项方式可以对一个DOM设置它的CSS样式?
- 外部样式表,引入一个外部css文件
内部样式表,将css代码放在 <head> 标签内部内联样式,将css样式直接定义在 HTML 元素内部
二十五、对BFC规范的理解?
- BFC,块级格式化上下文,以创建了新的BFC的盒子是独立布局的,盒子里面的子元素的样式不会影响到外面的元素。在同一个BFC中的两个毗邻的块级盒在垂直方向(和布局方向有关)的margin会发生折叠。
- w3c css2.1规范中的一个概念,它决定了元素如何对其内容进行布局,以及与其他元素的关系和相互作用。
二十六、什么是FOUC(无样式内容闪烁)?如何避免FOUC?
- FOUC(Flash Of Unstyled Content)——文档样式闪烁。
- 而引用css文件的@import就是造成这个问题的罪魁祸首。IE会先加载整个HTML文档的dom,然后再去导入外部的css文件,因此,在页面dom加载完成到css导入完成中间会有一段时间页面上的内容是没有样式的,这段时间的长短和网速、电脑速度有关。解决方法是在head之间加入一个link标签或script标签。或者是把@import换成link引入。
前端面试题总结(二)CSS篇的更多相关文章
- 前端面试题整理—HTML/CSS篇
1.简述一下你对HTML语义化的理解 1)用正确的标签做正确的事情 2)html语义化让页面的内容结构化,结构更清晰,便于对浏览器.搜索引擎解析 3)即使在没有样式CSS情况下也以一种文档格式显示,并 ...
- 常见前端面试题之HTML/CSS部分
转自http://www.cnblogs.com/jscode/archive/2012/07/10/2583856.html Doctype是什么?如何触发严格模式与混杂模式模式?区分它们有何意义? ...
- 史上最全前端面试题(含答案)-A篇
HTML+CSS1.对WEB标准以及W3C的理解与认识标签闭合.标签小写.不乱嵌套.提高搜索机器人搜索几率.使用外 链css和js脚本.结构行为表现的分离.文件下载与页面速度更快.内容能被更多的用户所 ...
- 前端面试题(HTML/CSS)
(前端面试题大全,持续更新) 常用的块级元素和行内元素有哪些?说说他们的特点? 浮动产生的原因?清除浮动? 说说一下盒模型 float和position一起用是什么效果 rem用过吗?做不同手机的适配 ...
- 各大互联网公司前端面试题(HTML/CSS)
Html篇: 1.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么? IE: trident内核 Firefox:gecko内核 Safari:webkit内核 Opera:以前是presto ...
- 前端面试题——html与css基础篇
整理一波html和css的面试题,侧重基础,希望明天面试能用到~(╥╯^╰╥) 一.HTML部分 1.浏览器页面有哪三层构成,分别是什么,作用是什么? 构成:结构层.表示层.行为层分别是:HTML.C ...
- 前端面试题整理(css)
1.介绍所知道的CSS hack技巧(如:_, *, +, \9, !important 之类). CSS hack的原理: 由于不同的浏览器和浏览器各版本对CSS的支持及解析结果不一样,以及CSS优 ...
- 史上最全前端面试题(含答案)-B篇
面试有几点需要注意面试题目: 根据你的等级和职位变化,入门级到专家级:范围↑.深度↑.方向↑.题目类型: 技术视野.项目细节.理论知识型题,算法题,开放性题,案例题.进行追问: 可以确保问到你开始不懂 ...
- 最近面试前端面试题整理(css部分)
对最近面试的面试题坐下总结: 一,css部分 1,html元素的垂直居中 答案: <div id="box"> <div> 测试 </div> ...
- 前端面试题整理(html篇)
1.Doctype作用?标准模式与兼容模式各有什么区别? <!DOCTYPE>声明位于位于HTML文档中的第一行,处于 <html> 标签之前.告知浏览器的解析器用什么文档标准 ...
随机推荐
- eos管理页面
调用此方法删除需要在po_module_processdef添加数据如下 默认情况下申请页面是有权限的 但是在此表加过之后 管理页面要打开拟稿页面还必须在 系统管理页面(xtgl.jsp ) 分 ...
- UVaLive 4254 Processor (二分+优先队列)
题意:有n个任务,每个任务有三个参数,r,d,w,表示该任务必须在[r,d]之间执行,工作量是w,处理器执行速度可以变化,当执行速度是s的时候, 一个工作量是w的任务需要需要的执行时间是w/s个工作单 ...
- JAVA企业级开发-xml基础语法&约束&解析(04)
一.什么是xml html:超文本标记语言.它主要是用来封装页面上要显示的数据,最后通过浏览器来解析html文件,然后把数据展示在浏览器上.同样我们可以使用JS和DOM技术对html文件进行解析和操作 ...
- OrderBy和OrderByDescending排序
昨天有练习对数字阵列进行排序,<C#阵列Array排序>https://www.cnblogs.com/insus/p/10825174.html 其实一切都弄得很复杂,array已经有2 ...
- wordcount作业
搭档:201631062427,201631062627 代码地址:https://gitee.com/oyyyyyy/wordcount 作业地址: 一: 代码互审情况 我们采用的都是c语言的方式完 ...
- spring发布和接收定制的事件(spring事件传播)[转]
有事件,即有事件监听器. 有人问你spring监听器有哪些你看了下文即也知道了. 事件传播 ApplicationContext基于Observer模式(java.util包中有对应实现),提供了 ...
- 洛谷P2188 小Z的 k 紧凑数
P2188 小Z的 k 紧凑数 题目描述 小 Z 在草稿纸上列出了很多数,他觉得相邻两位数字差的绝对值不超过 k 的整数特别奇特,称其为 k 紧凑数. 现在小 Z 想知道 [l,r] 内有多少个 k ...
- 洛谷P4318 完全平方数(容斥,莫比乌斯反演)
传送门 求第$k$个没有完全平方数因数的数 一开始是想筛一波莫比乌斯函数,然后发现时间复杂度要炸 于是老老实实看了题解 一个数的排名$k=x-\sum_{i=1}^{x}{(1-|\mu(i)|)}$ ...
- Java工程打包成jar可执行文件
将一个工程中的类打包成jar文件,步骤参考如下: 1.选择file -> project structure 2. 选择Arifacts->JAR->form modules wit ...
- mysql错误之errorcode 1215问题
1.此类问题出现时我们往往会迫不及待的去百度,但是问题偶尔也不是我们想的那样,比如我本次犯下的错误如下: 上图是我给表添加外键约束的时候的sql.下图是我建的表,问题出哪里了?原来是我的数据库根本没有 ...