本帖最后由 AngularBaby 于 2018-6-7 17:24 编辑
往期回顾:
【广州前端】- CSS基础面试题及答案(一)
21、rgba()和opacity的透明效果有什么不同?rgba()和opacity都能实现透明效果,但最大的不同是opacity作用于元素,以及元素内的所有内容的透明度,而rgba()只作用于元素的颜色或其背景色(设置rgba透明的元素的子元素不会继承透明效果!)
22、css中可以让文字在垂直和水平方向上重叠的两个属性是什么?
垂直方向:line-height水平方向:letter-spacing那么问题来了,关于letter-spacing的妙用知道有哪些么?答案:可以用于消除inline-block元素间的换行符空格间隙问题。
23、如何垂直居中一个浮动元素?
// 方法一:已知元素的高宽#div1{ background-color:#6699FF; width:200px; height:200px; position: absolute; //父元素需要相对定位 top: 50%; left: 50%; margin-top:-100px ; //二分之一的height,width margin-left: -100px; }
//方法二:未知元素的高宽 #div1{ width: 200px; height: 200px; background-color: #6699FF; margin:auto; position: absolute; //父元素需要相对定位 left: 0; top: 0; right: 0; bottom: 0; }
那么问题来了,如何垂直居中一个<img>?(用更简便的方法。)
#container //<img>的容器设置如下{ display:table-cell; text-align:center; vertical-align:middle;}
24、px和em的区别。
px和em都是长度单位,区别是,px的值是固定的,指定是多少就是多少,计算比较容易。em得值不是固定的,并且em会继承父级元素的字体大小。浏览器的默认字体高都是16px。所以未经调整的浏览器都符合: 1em=16px。那么12px=0.75em, 10px=0.625em。
25、描述一个”reset”的CSS文件并如何使用它。
知道normalize.css吗?你了解他们的不同之处?重置样式非常多,凡是一个前端开发人员肯定有一个常用的重置CSS文件并知道如何使用它们。他们是盲目的在做还是知道为什么这么做呢?原因是不同的浏览器对一些元素有不同的默认样式,如果你不处理,在不同的浏览器下会存在必要的风险,或者更有戏剧性的性发生。你可能会用Normalize来代替你的重置样式文件。它没有重置所有的样式风格,但仅提供了一套合理的默认样式值。既能让众多浏览器达到一致和合理,但又不扰乱其他的东西(如粗体的标题)。在这一方面,无法做每一个复位重置。它也确实有些超过一个重置,它处理了你永远都不用考虑的怪癖,像HTML的audio元素不一致或line-height不一致。
26、Sass、LESS是什么?大家为什么要使用他们?
他们是CSS预处理器。他是CSS上的一种抽象层。他们是一种特殊的语法/语言编译成CSS。例如Less是一种动态样式语言. 将CSS赋予了动态语言的特性,如变量,继承,运算, 函数. LESS 既可以在客户端上运行 (支持IE 6+, Webkit, Firefox),也可一在服务端运行 (借助 Node.js)。
为什么要使用它们?结构清晰,便于扩展。可以方便地屏蔽浏览器私有语法差异。这个不用多说,封装对浏览器语法差异的重复处理,减少无意义的机械劳动。可以轻松实现多重继承。完全兼容 CSS 代码,可以方便地应用到老项目中。LESS 只是在 CSS 语法上做了扩展,所以老的 CSS 代码也可以与 LESS 代码一同编译。
27、display:none与visibility:hidden的区别是什么?
display : 隐藏对应的元素但不挤占该元素原来的空间。visibility: 隐藏对应的元素并且挤占该元素原来的空间。
即是,使用CSSdisplay:none属性后,HTML元素(对象)的宽度、高度等各种属性值都将“丢失”;而使用visibility:hidden属性后,HTML元素(对象)仅仅是在视觉上看不见(完全透明),而它所占据的空间位置仍然存在。
28、CSS中link和@import的区别是:
Link属于html标签,而@import是CSS中提供的在页面加载的时候,link会同时被加载,而@import引用的CSS会在页面加载完成后才会加载引用的CSS@import只有在ie5以上才可以被识别,而link是html标签,不存在浏览器兼容性问题Link引入样式的权重大于@import的引用(@import是将引用的样式导入到当前的页面中)
29、简介盒子模型:
CSS的盒子模型有两种:IE盒子模型、标准的W3C盒子模型模型盒模型:内容、内边距、外边距(一般不计入盒子实际宽度)、边框
30、为什么要初始化样式?
由于浏览器兼容的问题,不同的浏览器对标签的默认样式值不同,若不初始化会造成不同浏览器之间的显示差异但是初始化CSS会对搜索引擎优化造成小影响
31、BFC是什么?
BFC(块级格式化上下文),一个创建了新的BFC的盒子是独立布局的,盒子内元素的布局不会影响盒子外面的元素。在同一个BFC中的两个相邻的盒子在垂直方向发生margin重叠的问题BFC是指浏览器中创建了一个独立的渲染区域,该区域内所有元素的布局不会影响到区域外元素的布局,这个渲染区域只对块级元素起作用
32、html语义化是什么?
当页面样式加载失败的时候能够让页面呈现出清晰的结构有利于seo优化,利于被搜索引擎收录(更便于搜索引擎的爬虫程序来识别)便于项目的开发及维护,使html代码更具有可读性,便于其他设备解析。
33、Doctype的作用?严格模式与混杂模式的区别?
<!DOCTYPE>用于告知浏览器该以何种模式来渲染文档严格模式下:页面排版及JS解析是以该浏览器支持的最高标准来执行混杂模式:不严格按照标准执行,主要用来兼容旧的浏览器,向后兼容
34、IE的双边距BUG:
块级元素float后设置横向margin,ie6显示的margin比设置的较大。解决:加入_display:inline
35、HTML与XHTML——二者有什么区别?
①所有的标记都必须要有一个相应的结束标记②所有标签的元素和属性的名字都必须使用小写③所有的 XML 标记都必须合理嵌套④所有的属性必须用引号"" 括起来⑤把所有 < 和 & 特殊符号用编码表示⑥给所有属性赋一个值⑦不要在注释内容中使用"--"⑧图片必须有说明文字
36、html常见兼容性问题?
①双边距BUG float引起的 使用display
②像素问题 使用float引起的 使用dislpay:inline-3px
③超链接hover 点击后失效 使用正确的书写顺序 linkvisited hover active
④Iez-index问题 给父级添加position:relative
⑤Png 透明 使用js代码 改
⑥Min-height最小高度 !Important 解决’
⑦select在ie6下遮盖 使用iframe嵌套
⑧为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
⑨IE5-8不支持opacity,解决办法:.opacity{ opacity: 0.4 filter: alpha(opacity=60); /* for IE5-7 */ -ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=60)"; /* for IE 8*/}
⑩IE6不支持PNG透明背景,解决办法: IE6下使用gif图片
37、对WEB标准以及W3C的理解与认识答:
标签闭合、标签小写、不乱嵌套、提高搜索机器人搜索几率、使用外 链css和js脚本、结构行为表现的分离、文件下载与页面速度更快、内容能被更多的用户所访问、内容能被更广泛的设备所访问、更少的代码和组件,容易维护、改版方便,不需要变动页面内容、提供打印版本而不需要复制内容、提高网站易用性。
38、行内元素有哪些?块级元素有哪些?CSS的盒模型?
答:块级元素:div p h1 h2 h3 h4 form ul行内元素: a b br i span input selectCss盒模型:内容,border ,margin,padding
39、前端页面有哪三层构成,分别是什么?
作用是什么?答:结构层 Html 表示层 CSS 行为层 js。
40、Doctype作用? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
(1)、<!DOCTYPE> 声明位于文档中的最前面,处于 <html> 标签之前。告知浏览器的解析器,用什么文档类型 规范来解析这个文档。
(2)、严格模式的排版和 JS 运作模式是 以该浏览器支持的最高标准运行。
(3)、在混杂模式中,页面以宽松的向后兼容的方式显示。模拟老式浏览器的行为以防止站点无法工作。
(4)、DOCTYPE不存在或格式不正确会导致文档以混杂模式呈现。
|
|