前端面试题(三)

1.有哪项方式可以对一个DOM设置它的CSS样式?
•外部样式表,引入一个外部css文件
•内部样式表,将css代码放在 标签内部
•内联样式,将css样式直接定义在 HTML 元素内部
2.CSS都有哪些选择器?
•派生选择器(用HTML标签申明)
•id选择器(用DOM的ID申明)
•类选择器(用一个样式类名申明)
•属性选择器(用DOM的属性申明,属于CSS2,IE6不支持,不常用,不知道就算了)
除了前3种基本选择器,还有一些扩展选择器,包括
•后代选择器(利用空格间隔,比如div .a{  })
•群组选择器(利用逗号间隔,比如p,div,#a{  }) 
那么问题来了,CSS选择器的优先级是怎么样定义的?
基本原则:
一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。
复杂的计算方法:
•用1表示派生选择器的优先级
•用10表示类选择器的优先级
•用100标示ID选择器的优先级 
•div.test1 .span var 优先级 1+10 +10 +1  
•span#xxx .songs li 优先级1+100 + 10 + 1  
•#xxx li 优先级 100 +1
那么问题来了,看下列代码,

标签内的文字是什么颜色的?。
CSS Code复制内容到剪贴板
1.   
5.   
6.

 123 

  
7.  
答案:red。与样式定义在文件中的先后顺序有关,即是后面的覆盖前面的,与在

中的先后关系无关。
3.CSS中可以通过哪些属性定义,使得一个DOM元素不显示在浏览器可视范围内?
最基本的:
设置display属性为none,或者设置visibility属性为hidden
技巧性:
设置宽高为0,设置透明度为0,设置z-index位置在-1000
4.超链接访问过后hover样式就不出现的问题是什么?如何解决?
答案:被点击访问过的超链接样式不在具有hover和active了,解决方法是改变CSS属性的排列顺序: L-V-H-A(link,visited,hover,active)
5.什么是Css Hack?ie6,7,8的hack分别是什么?
答案:针对不同的浏览器写不同的CSS code的过程,就是CSS hack。
示例如下:
CSS Code复制内容到剪贴板
1.#test       {      
2.        width:300px;      
3.        height:300px;      
4.             
5.        background-color:blue;      /firefox/  
6.        background-color:red\9;      /all ie/  
7.        background-color:yellow\0;    /ie8/  
8.        +background-color:pink;        /ie7/  
9.        _background-color:orange;       /ie6/    }     
10.        :root #test { background-color:purple\9; }  /ie9/  
11.    @media all and (min-width:0px){ #test {background-color:black\0;} }  /opera/  
12.    @media screen and (-webkit-min-device-pixel-ratio:0){ #test {background-color:gray;} }       /chrome and safari/  
6.请用Css写一个简单的幻灯片效果页面

答案:知道是要用css3。使用animation动画实现一个简单的幻灯片效果。 
CSS Code复制内容到剪贴板
1./HTML/  
2.        div.ani   
3.  
4.        /css/  
5.        .ani{   
6.          width:480px;   
7.          height:320px;   
8.          margin:50px auto;   
9.          overflow: hidden;   
10.          box-shadow:0 0 5px rgba(0,0,0,1);   
11.          background-size: cover;   
12.          background-position: center;   
13.          -webkit-animation-name: “loops”;   
14.          -webkit-animation-duration: 20s;   
15.          -webkit-animation-iteration-count: infinite;   
16.        }   
17.        @-webkit-keyframes “loops” {   
18.            0% {   
19.                background:url(http://d.hiphotos.baidu.com/image/w%3D400/sign=c01e6adca964034f0fcdc3069fc27980/e824b899a9014c08e5e38ca4087b02087af4f4d3.jpg) no-repeat;                
20.            }   
21.            25% {   
22.                background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=edee1572e9f81a4c2632edc9e72b6029/30adcbef76094b364d72bceba1cc7cd98c109dd0.jpg) no-repeat;   
23.            }   
24.            50% {   
25.                background:url(http://b.hiphotos.baidu.com/image/w%3D400/sign=937dace2552c11dfded1be2353266255/d8f9d72a6059252d258e7605369b033b5bb5b912.jpg) no-repeat;   
26.            }   
27.            75% {   
28.                background:url(http://g.hiphotos.baidu.com/image/w%3D400/sign=7d37500b8544ebf86d71653fe9f9d736/0df431adcbef76095d61f0972cdda3cc7cd99e4b.jpg) no-repeat;   
29.            }   
30.            100% {   
31.                background:url(http://c.hiphotos.baidu.com/image/w%3D400/sign=cfb239ceb0fb43161a1f7b7a10a54642/3b87e950352ac65ce2e73f76f9f2b21192138ad1.jpg) no-repeat;   
32.            }   
33.        }  
7.行内元素和块级元素的具体区别是什么?行内元素的padding和margin可设置吗?
块级元素(block)特性:
•总是独占一行,表现为另起一行开始,而且其后的元素也必须另起一行显示;
•宽度(width)、高度(height)、内边距(padding)和外边距(margin)都可控制;
内联元素(inline)特性:
•和相邻的内联元素在同一行;
•宽度(width)、高度(height)、内边距的top/bottom(padding-top/padding-bottom)和外边距的top/bottom(margin-top/margin-bottom)都不可改变(也就是padding和margin的left和right是可以设置的),就是里面文字或图片的大小。
那么问题来了,浏览器还有默认的天生inline-block元素(拥有内在尺寸,可设置高宽,但不会自动换行),有哪些?
答案: 、 、 、 、

那么问题来了,如何垂直居中一个?(用更简便的方法。) 
CSS Code复制内容到剪贴板
1.#container     //的容器设置如下   
2. {   
3.     display:table-cell;   
4.     text-align:center;   
5.     vertical-align:middle;   
6. }

12.px和em的区别。

px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。

浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。

13.描述一个"reset"的CSS文件并如何使用它。知道normalize.css吗?你了解他们的不同之处?

重置样式非常多,凡是一个前端开发人员肯定有一个常用的重置CSS文件并知道如何使用它们。他们是盲目的在做还是知道为什么这么做呢?原因是不同的浏览器对一些元素有不同的默认样式,如果你不处理,在不同的浏览器下会存在必要的风险,或者更有戏剧性的性发生。

你可能会用Normalize来代替你的重置样式文件。它没有重置所有的样式风格,但仅提供了一套合理的默认样式值。既能让众多浏览器达到一致和合理,但又不扰乱其他的东西(如粗体的标题)。

在这一方面,无法做每一个复位重置。它也确实有些超过一个重置,它处理了你永远都不用考虑的怪癖,像HTML的audio元素不一致或line-height不一致。

14.Sass、LESS是什么?大家为什么要使用他们?

他们是CSS预处理器。他是CSS上的一种抽象层。他们是一种特殊的语法/语言编译成CSS。

例如Less是一种动态样式语言. 将CSS赋予了动态语言的特性,如变量,继承,运算, 函数. LESS 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可一在服务端运行 (借助 Node.js)。

为什么要使用它们?

•结构清晰,便于扩展。 
•可以方便地屏蔽浏览器私有语法差异。这个不用多说,封装对浏览器语法差异的重复处理,减少无意义的机械劳动。 
•可以轻松实现多重继承。 
•完全兼容 CSS 代码,可以方便地应用到老项目中。LESS 只是在 CSS 语法上做了扩展,所以老的 CSS 代码也可以与 LESS 代码一同编译。 
   
15.display:none与visibility:hidden的区别是什么?

•display : 隐藏对应的元素但不挤占该元素原来的空间。 
•visibility: 隐藏对应的元素并且挤占该元素原来的空间。 
  即是,使用CSS display:none属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”;而使用visibility:hidden属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在。

16.知道css有个content属性吗?有什么作用?有什么应用?

答案: 
  知道。css的content属性专门应用在 before/after 伪元素上,用于来插入生成内容。

最常见的应用是利用伪类清除浮动。
CSS Code复制内容到剪贴板
1.//一种常见利用伪类清除浮动的代码   
2. .clearfix:after {   
3.    content:".";       //这里利用到了content属性   
4.    display:block;    
5.    height:0;   
6.    visibility:hidden;    
7.    clear:both; }   
8.  
9…clearfix {    
10.    *zoom:1;    
11.}  
after伪元素通过 content 在元素的后面生成了内容为一个点的块级元素,再利用clear:both清除浮动。

那么问题继续还有,知道css计数器(序列数字字符自动递增)吗?如何通过css content属性实现css计数器?

答案:css计数器是通过设置counter-reset 、counter-increment 两个属性 、及 counter()/counters()一个方法配合after / before 伪类实现。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一介青烟小生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值