web前端面试 3.less和less与css的区别别

2015前端面试题(含答案)_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
2015前端面试题(含答案)
阅读已结束,下载文档到电脑
想免费下载本文?
定制HR最喜欢的简历
下载文档到电脑,方便使用
还剩25页未读,继续阅读
定制HR最喜欢的简历
你可能喜欢1.CSS3有哪些新特性?
CSS3实现圆角(border-radius),
阴影(box-shadow),
对文字加特效(text-shadow、),
线性渐变(gradient),
旋转(transform)transform:rotate(9deg) scale(0.85,0.90)
translate(0px,-30px) skew(-9deg,0deg);
增加了更多的CSS选择器 多背景 rgba&
在CSS3中唯一引入的伪元素是::selection.
媒体查询,多栏布局,border-image;
2.XML和JSON的区别?
(1).数据体积方面。JSON相对于XML来讲,数据的体积小,传递的速度更快些。
(2).数据交互方面。JSON与JavaScript的交互更加方便,更容易解析处理,更好的数据交互。
(3).数据描述方面。JSON对数据的描述性比XML较差。
(4).传输速度方面。JSON的速度要远远快于XML。
3.对BFC规范的理解?
BFC,块级格式化上下文,一个创建了新的BFC的盒子是独立布局的,盒子里面的子元素的样式不会影响到外面的元素。在同一个BFC中的两个毗邻的块级盒在垂直方向(和布局方向有关系)的margin会发生折叠。 & &(W3C CSS
2.1 规范中的一个概念,它决定了元素如何对其内容进行布局,以及与其他元素的关系和相互作用。)
4.解释下 CSS sprites,以及你要如何在页面或网站中使用它。
CSS Sprites其实就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的“background-image”,“background- repeat”,“background-position”的组合进行背景定位,background-position可以用数字能精确;
5.position的值, relative和absolute分别是相对于谁进行定位的?
absolute 生成绝对定位的元素, 相对于最近一级的 定位不是&static
的父元素来进行定位。
fixed (老IE不支持) 生成绝对定位的元素,相对于浏览器窗口进行定位。&
relative 生成相对定位的元素,相对于其在普通流中的位置进行定位。&
static 默认值。没有定位,元素出现在正常的流中。
6.display:none和visibility:hidden的区别?
display:none 隐藏对应的元素,在文档布局中不再给它分配空间,它各边的元素会合拢,就当他从来不存在。
visibility:hidden 隐藏对应的元素,但是在文档布局中仍保留原来的空间。
7.CSS中 link 和&的区别是?
link属于HTML标签,而@import是CSS提供的;&
(2) 页面被加载的时,link会同时被加载,而@import引用的CSS会等到页面被加载完再加载;
(3) import只在IE5以上才能识别,而link是HTML标签,无兼容问题;&
link方式的样式的权重 高于@import的权重.
8.position:absolute和float属性的异同?
A:共同点:对内联元素设置`float`和`absolute`属性,可以让元素脱离文档流,并且可以设置其宽高。
B:不同点:float仍会占据位置,position会覆盖文档流中的其他元素。
9.介绍一下box-sizing属性?
box-sizing属性主要用来控制元素的盒模型的解析模式。默认值是content-box。
content-box:让元素维持W3C的标准盒模型。元素的宽度/高度由border
+ padding + content的宽度/高度决定,设置width/height属性指的是content部分的宽/高
border-box:让元素维持IE传统盒模型(IE6以下版本和IE6~7的怪异模式)。设置width/height属性指的是border
+ padding + content
标准浏览器下,按照W3C规范对盒模型解析,一旦修改了元素的边框或内距,就会影响元素的盒子尺寸,就不得不重新计算元素的盒子尺寸,从而影响整个页面的布局。
选择符有哪些?哪些属性可以继承?优先级算法如何计算? CSS3新增伪类有那些?
1.id选择器(
2.类选择器(.myclassname)
3.标签选择器(,
4.相邻选择器(
5.子选择器(
6.后代选择器(
7.通配符选择器(
8.属性选择器([rel
= &external&])
9.伪类选择器(:
, :nth-child)
可继承的样式:
font-size font-family color, text-
不可继承的样式:border
优先级就近原则,同权重情况下样式定义最近者为准;
载入样式以最后载入的定位为准;
!important
css3新增伪类:
p:first-of-type
选择属于其父元素的首个&&p& 元素的每个
&p& 元素。
p:last-of-type 选择属于其父元素的最后
&p& 元素的每个
&p& 元素。
p:only-of-type 选择属于其父元素唯一的
&p& 元素的每个
&p& 元素。
p:only-child 选择属于其父元素的唯一子元素的每个
&p& 元素。
p:nth-child(2)
选择属于其父元素的第二个子元素的每个 &p& 元素。
:enabled :disabled 控制表单控件的禁用状态。
:checked 单选框或复选框被选中。
本文已收录于以下专栏:
相关文章推荐
1.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
 IE: trident内核
 Firefox:gecko内核
 Safari...
JavaScript
1.1 简要描述JavaScript的数据类型?
JavaScript的数据类型可以分为原始类型和对象类型。
原始类型包括string、number和boolean三种。其...
面试题汇总(CSS篇)
1.说说你对语义化的理解?
1,去掉或者丢失样式的时候能够让页面呈现出清晰的结构
2,有利于SEO:和搜索引擎建立良好沟通,有助于爬虫抓取更多的有效信息:爬虫依赖于标签来确定上下文和各个关键字的权...
2.1 link和@import都可以为页面引入CSS文件,其区别是?
将样式定义在单独的.css的文件里,link和@import都可以在html页面引入css文件。有link和@i...
1.1请描述一个网页从开始请求到最终显示的完整过程?
一般可分为7个步骤: 
1.在浏览器中输入网址; 
2.发送至DNS服务器并获得域名对应的WEB服务器的IP地址; 
巧用JSON.stringify()生成漂亮格式的JSON字符串使用JavaScript处理XML基本上就是一个杯具,这也是JSON在程序开发中广受欢迎的原因。我曾经写过一个 JavaScript函数...
HTML+CSS常见面试题目
1.    对WEB标准以及W3C的理解与认识?
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外链css和js脚本、结构行为表现的分离、文件下载与页面速...
1.你做的页面在哪些流览器测试过?这些浏览器的内核分别是什么?
 IE: trident内核 Firefox:gecko内核 Safari:webkit内核 Opera:以前是pre...
他的最新文章
讲师:姜飞俊
您举报文章:
举报原因:
原文地址:
原因补充:
(最多只允许输入30个字)前端面试题整理——CSS篇
1. 中类 (classes) 和 ID 的区别。
1.书写上的差别:class名用&.&号开头来定义,id名用&#&号开头来定义;
2.调用上的区别:在同一个html网页页面中class是可以被多次调用的(在不同的地方)。而id名作为标签的身份则是唯一的,id在页面中只能出现一次。在js脚本中经常会用到id来修改一个标签的属性
3.id作为元素的标签,用于区分不同结构和内容,而class作为一个样式,它可以应用到任何结构和内容上。
4.在布局思路上,一般坚持这样的原则:id是先确定页面的结构和内容,然后再为它定义样式:而class相反,它先定义好一类样式,然后再页面中根据需要把类样式应用到不同的元素和内容上面。
5.在实际应用时,class更多的被应用到文字版块以及页面修饰等方面,而id更多地被用来实现宏伟布局和设计包含块,或包含框的样式。
2.请问 &resetting& 和 &normalizing& CSS 之间的区别?你会如何选择,为什么?
Normalize 相对「平和」,注重通用的方案,重置掉该重置的样式,保留有用的 user agent 样式,同时进行一些 bug 的修复,这点是 reset 所缺乏的。
Reset 相对「暴力」,不管你有没有用,统统重置成一样的效果,且影响的范围很大,讲求跨的一致性。【摘自知乎】
Normalize.css是一种CSS reset的替代方案。它们的区别有:
1. Normalize.css 保护了有价值的默认值,Reset通过为几乎所有的元素施加默认样式,强行使得元素有相同的视觉效果。相比之下,Normalize.css保持了许多默认的浏览器样式。这就意味着你不用再为所有公共的排版元素重新设置样式。当一个元素在不同的浏览器中有不同的默认值时,Normalize.css会力求让这些样式保持一致并尽可能与现代标准相符合。
2. Normalize.css 修复了浏览器的bug,它修复了常见的桌面端和移动端浏览器的bug。这往往超出了Reset所能做到的范畴。关于这一点,Normalize.css修复的问题包含了HTML5元素的显示设置、预格式化文字的font-size问题、在IE9中SVG的溢出、许多出现在各浏览器和操作中的与表单相关的bug。
3.Normalize.css 不会让你的调试工具变的杂乱
4. Normalize.css 是模块化的
5. Normalize.css 拥有详细的文档
选择Normalize.css ,主要是reset.css为几乎所有的元素施加默认样式,所以需要对所有公共的排版元素重新设置样式,这是一件很麻烦的工作。
3.请解释浮动 (Floats) 及其工作原理。
答:float属性定义了元素是否浮动及在哪个方向浮动,在CSS中任何元素都可以浮动,且浮动元素会生成一个块级框,而不论它本身是何种元素。并且盒子的宽度不在伸展,而是根据盒子里面的内容的宽度来确定。浮动属性会使得浮动的元素脱离文档流,所以文档的普通流中的块框会表现的像浮动框不存在一样。
4.描述z-index和叠加上下文是如何形成的。
首先来看在CSS中叠加上下文形成的原因:
margin为负值时元素会依参考线向外偏移。margin-left/margin-top的参考线为左边的元素/上面的元素(如无兄弟元素则为父元素的左内侧/上内侧),margin-right和margin-bottom的参考线为元素本身的border右侧/border下侧。一般可以利用负边距来就行布局,但没有计算好的话就可能造成元素重叠。堆叠顺序由元素在文档中的先后位置决定,后出现的会在上面。
2.position的relative/absolute/fixed定位
当为元素设置position值为relative/absolute/fixed后,元素发生的偏移可能产生重叠,且z-index属性被激活。z-index值可以控制定位元素在垂直于显示屏方向(Z 轴)上的堆叠顺序(stack order),值大的元素发生重叠时会在值小的元素上面。
z-index属性
z-index只能在position属性值为relative或absolute或fixed的元素上有效。
基本原理:z-index值可以控制定位元素在垂直于显示屏方向(Z 轴)上的堆叠顺序(stack order),值大的元素发生重叠时会在值小的元素上面。
使用相对性:z-index值只决定同一父元素中的同级子元素的堆叠顺序。父元素的z-index值(如果有)为子元素定义了堆叠顺序(css版堆叠&拼爹&)。向上追溯找不到含有z-index值的父元素的情况下,则可以视为自由的z-index元素,它可以与父元素的同级兄弟定位元素或其他自由的定位元素来比较z-index的值,决定其堆叠顺序。同级元素的z-index值如果相同,则堆叠顺序由元素在文档中的先后位置决定,后出现的会在上面。所以如果当你发现一个z-index值较大的元素被值较小的元素遮挡了,请先检查它们之间的dom结点关系,多半是因为其父结点含有激活并设置了z-index值的position定位元素。
5.请描述 BFC(Block Formatting Context) 及其如何工作。
BFC(Block Formatting Context)直译为&块级格式化范围&。
6.block,inline和inline-block的概念以及区别
首先这是display中的三个属性值,不是元素指类型,元素类型在HTML5之前分为两种分别是块级元素( block-level elements)和内连元素( inline elements)。但是当display的属性值被设置为block时,元素会以块级元素( block-level elements)显示,而设置为inline时会以内连元素( inline elements)显示。
display:block
block元素会独占一行,多个block元素会各自新起一行。默认情况下,block元素宽度自动填满其父元素宽度。
block元素可以设置width,height属性。块级元素即使设置了宽度,仍然是独占一行。
block元素可以设置margin和padding属性。
display:inline
inline元素不会独占一行,多个相邻的行内元素会排列在同一行里,直到一行排列不下,才会新换一行,其宽度随元素的内容而变化。
inline元素设置width,height属性无效。
inline元素的margin和padding属性,水平方向的padding-left, padding-right, margin-left, margin-right都产生边距效果;但竖直方向的padding-top, padding-bottom, margin-top, margin-bottom不会产生边距效果。
display:inline-block
简单来说就是将对象呈现为inline对象,但是对象的内容作为block对象呈现。之后的内联对象会被排列在同一行内。比如我们可以给一个link(a元素)inline-block属性值,使其既具有block的宽度高度特性又具有inline的同行特性。即对inline-block元素可以设置宽度和高度,同时inline-block元素又可以在同行进行排列。
备注:属性为inline-block元素之间的空格或者换行在浏览器上会是一个空白的间隙。且IE6和7是不支持这个属性的,需要通过*display:*zoom:1做hack处理。
7.列举不同的清除浮动的技巧,并指出它们各自适用的使用场景。
首先来说明为什么要清除浮动?
当一个容器中的元素全部浮动之后,由于浮动会让元素脱离普通文档流,所以对于外面的这个容器来讲它就没有内容将它撑开,背景设置无法显示,margin设置无法显示。
清除浮动的方法:
一、添加新的元素 、应用 clear:both;
.clear{clear: height: 0; line-height: 0; font-size: 0}
优点:简单,代码少,浏览器支持好,不容易出现怪问题
缺点是要增加很多无效布局,但这是清除浮动用的比较多的一种方法。
二、父级p定义overflow:auto或者hidden
//这里添加了一个class
.over-flow{
overflow: zoom: 1; //zoom: 1; 是在处理兼容性问题
原理:必须定义width或zoom:1,同时不能定义height,使用overflow属性来清除浮动有一点需要注意,overflow属性共有三个属性值:hidden,auto,visible。我们可以使用hiddent和auto值来清除浮动,但切记不能使用visible值,如果使用这个值将无法达到清除浮动效果。
优点:简单,代码少,浏览器支持好
缺点:使用auto时内部宽高超过父级p时,会出现滚动条,使用hidden时会被隐藏
三、after 方法
原理:利用:after和:before来在元素内部插入两个元素块,从面达到清除浮动的效果。其实现原理类似于clear:both方法,只是区别在于:clear在html插入一个p.clear标签,而这种方法则是利用其伪类clear:after在元素内部增加一个类似于p.clear的效果。下面来看看其具体的使用方法:
.outer {zoom:1;} /==for IE6/7 Maxthon2==/
.outer :after {clear:content:&.&;display:width: 0;height: 0;visibility:}
其中clear:指清除所有浮动;content: &.&; display:对于FF/chrome/opera/IE8不能缺少,其中content()可以取值也可以为空。visibility:的作用是允许浏览器渲染它,但是不显示出来,这样才能实现清除浮动。
所以总的来说,推荐使用伪类的办法。
8.请解释 CSS sprites,以及你要如何在页面或网站中实现它。
通常被意译为&CSS图像拼合&或&CSS贴图定位&。
CSS Sprites就是把网页中一些背景图片整合到一张图片文件中,再利用CSS的&background-image&,&background- repeat&,&background-position&的组合进行背景定位,background-position可以用数字能精确的定位出背景图片的位置。
优点:当页面加载时,不是加载每个单独图片,而是一次加载整个组合图片。这是一个了不起的改进,它大大减少了HTTP请求的次数,减轻服务器压力,同时缩短了悬停加载图片所需要的时间延迟,使效果更流畅,不会停顿。
缺点:做图像拼合的时候很麻烦。
9.你最喜欢的图片替换方法是什么,你如何选择使用。
设计师能够用一张背景图像替代某元素中的原始文字,以期显示出更美观的字体。
一:添加span标签
该技巧的实现非常简单:用span将元素中的文本包围起来,然后通过应用CSS样式隐藏这个span中的文本,最后将背景图像应用到该元素之上即可。例如,对于下面的这一段HTMl标记。
二、负text-indent属性值
设计师Mike Rundle提出了一种使用负text-indent属性值的方法,将文本推到屏幕的左边缘之外。虽然该方案的适用性并不广泛&&IE 5.0会将背景图片随文本一起推出浏览者的视线范围&&但却相当简洁优雅。
缺点:并没有解决浏览器禁用图像后空白页面的可访问性问题;有时在IE 5.0中无法使用。
意义:而图像替换技术则保留了被替换元素中的原有文本,因此无论对何种客户而言,理解页面内容都不成问题。主要是考虑SEO,而非视觉上的效果。
10.你会如何解决特定浏览器的样式问题?
这个问题有点不太明白想要问什么,就当时问跨浏览器的兼容性问题好了。CSS hack方法
1.IE条件注释
2.符号前缀发
3.!important方法
11.如何为有功能限制的浏览器提供网页?你会使用哪些技术和处理方法?
渐进增强 progressive enhancement:针对低版本浏览器进行构建页面,保证最基本的功能,然后再针对高级浏览器进行效果、交互等改进和追加功能达到更好的用户体验。
优雅降级 graceful degradation:一开始就构建完整的功能,然后再针对低版本浏览器进行兼容。
12.有哪些的隐藏内容的方法 (如果同时还要保证屏幕器可用呢)?
方法一:display:搜索引擎可能认为被隐藏的文字属于垃圾信息而被忽略,屏幕阅读器(是为视觉上有障碍的人设计的读取屏幕内容的程序)会忽略被隐藏的文字。所以这个方法并不适用。
方法二:visibility:这个大家应该比较熟悉就是隐藏的内容会占据他所应该占据物理空间。即内容虽然被隐藏,但是它所在的文档流的位置变成空白,会占据页面上的空间。
方法三:overflow:hidden;可以达到隐藏内容的目的且同时可以被屏幕阅读器可用。
方法四:利用定位将内容移出屏幕。
方法五:内容透明度设置为0.
13.你用过栅格系统 (grid system) 吗?如果使用过,你最喜欢哪种?
14.你用过媒体查询,或针对移动端的布局/CSS 吗?
media query(媒体查询)是对media type的一种增强,是CSS 3的重要内容之一。
media type(媒体类型)是css 2中的一个非常有用的属性,通过media type我们可以对不同的设备指定特定的样式.
我们通常会用到的media type会是all 和screen,然后是print.
media type的几种使用方法:
@import url(&style.css&)
@media screen{
selector{rules}
最常用的是第一种和第四种方法。
media query 媒体查询,media query是CSS 3对media type的增强,事实上我们可以将media query看成是media type+css属性判断。
http://www.jb51.net/css/27232.html
18.使用 CSS 预处理器的优缺点有哪些?请描述你曾经使用过的 CSS 预处理器的优缺点。
普遍的三款 CSS 预处理器框架,分别是 Sass、Less CSS、Stylus。
CSS 预处理器是一种语言用来为 CSS 增加一些的的特性,无需考虑浏览器的兼容性问题,例如你可以在 CSS 中使用变量、简单的程序逻辑、函数等等在编程语言中的一些基本技巧,可以让你的 CSS 更见简洁,适应性更强,代码更直观等诸多好处。
总结来讲就是用编程的方法来写CSS样式,而不是手工一行行码,相当于从手工业时代进化到工业时代。
19.如果设计中使用了非标准的字体,你该如何去实现?
1、用图片代替。
2、使用在线字库。
css selector{
Font-family: &font name&,}
20.请解释浏览器是如何判断元素是否匹配某个 CSS 选择器?

我要回帖

更多关于 less css 教程 的文章

 

随机推荐