HTML+CSS
块级元素会独占一行,默认情况下,其宽度自动填满其父元素宽度.
行内元素不会独占一行,相邻的行内元素会排列在同一行里,直到一行排不下,才会换行,其宽度随元素的内容而变化.
块级元素可以设置width,height属性.
行内元素设置width,height属性无效.
块级元素即使设置了宽度,仍然是独占一行.
块级元素可以设置margin和padding属性.
行内元素的margin和padding属性,水平方向的padding-left,padding-right,margin-left,margin-right都产生边距效果,但竖直方向的padding-top,padding-bottom,margin-top,margin-bottom却不会产生边距效果.
块级元素对应于display:block.
行内元素对应于display:inline.
?2、行内块的使用,兼容性解决。
块级元素(block elements),来源于CSS盒子模型。块级元素包含width height,padding,border与margin,他们的排列方式是从上到下排列。 行内元素,排列方式是水平排列。
行内元素(inline elements)排列方式是水平排列。
行内块元素(inline-block elements)在内部他的表现类似block元素,比如他拥有block元素的width height,padding,border与margin,而外部的排列方式有类似行内元素,即水平排列,而不是像块级元素一样从上到下排列
由块级元素和行内元素的区别可以看出,div所在的块级元素一行只有一个,而行内元素一行可以存在多个,所以为了实现一行出现多个块级元素,所以出现了 行内块。
试用场景 “创建很多网格来铺满浏览器”
这种效果可以通过float 来实现,以下是代码。
.box {
float: left;
width: 200px;
height: 100px;
margin: 1em;
}
.after-box {
clear: left;
}
还有一种就是 inline-block了
.box2 {
display: inline-block;
width: 200px;
height: 100px;
margin: 1em;
}
虽然设置浮动跟设置inline-block有些特征类似,但两者的区别还是非常明显的:
文档流(Document flow):浮动元素会脱离文档流,并使得周围元素环绕这个元素。而inline-block元素仍在文档流内。因此设置inline-block不需要清除浮动。当然,周围元素不会环绕这个元素,你也不可能通过清除inline-block就让一个元素跑到下面去。
水平位置(Horizontal position):很明显你不能通过给父元素设置text-align:center让浮动元素居中。事实上定位类属性设置到父元素上,均不会影响父元素内浮动的元素。但是父元素内元素如果设置了display:inline-block,则对父元素设置一些定位属性会影响到子元素。(这还是因为浮动元素脱离文档流的关系)。
垂直对齐(Vertical alignment):inline-block元素沿着默认的基线对齐。浮动元素紧贴顶部。你可以通过vertical属性设置这个默认基线,但对浮动元素这种方法就不行了。这也是我倾向于inline-block的主要原因。
空白(Whitespace):inline-block包含html空白节点。如果你的html中一系列元素每个元素之间都换行了,当你对这些元素设置inline-block时,这些元素之间就会出现空白。而浮动元素会忽略空白节点,互相紧贴
IE6和IE7:Ie67对此属性部分支持。如果你要兼容这些浏览器,必须解决这个问题。这不是个大问题,但值得留意一下。
?3、清除浮动的方式以及各自的优劣。
(1)使用设置高度样式,清除浮动产生,前提是对象内容高度要能确定并能计算好
(2)为了统一样式,我们新建一个样式选择器CSS命名为“.clear”,并且对应选择器样式为“clear:both”然后我们在父级“”结束前加此div引入“class=”clear””样式。这样即可清除浮动。这个cssclear清除float产生浮动,可以不用对父级设置高度 也无需技术父级高度,方便适用,但会多加CSS和HTML标签。
.divcss5{ width:400px;border:1px solid #F00;background:#FF0}
.divcss5-left,.divcss5-right{width:180px;height:100px;
border:1px solid #00F;background:#FFF}
.divcss5-left{ float:left}
.divcss5-right{ float:right}
.clear{ clear:both}
<div class="divcss5">
<div class="divcss5-left">left浮动</div>
<div class="divcss5-right">right浮动</div>
<div class="clear"></div>
</div>
(3)对父级CSS选择器加overflow:hidden样式,可以清除父级内使用float产生浮动。优点是可以很少CSS代码即可解决浮动产生。
?4、文档流的概念、定位的理解以及z-index计算规则&浏览器差异性。
文档流:将窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流。
定位:relative,absolute,static , fixed
相对定位relative:相对于元素在文档流中位置进行偏移. 但保留原占位。相对定位实际上被看作普通流定位模型的一部分,因为元素的位置相对于它在普通流中的位置。
绝对定位absolute:完全脱离文档流, 相对于position属性非static值的最近父级元素进行偏移。
固定定位static:完全脱离文档流, 相对于视区进行偏移。
绝对定位fixed:元素框的表现类似于将 position 设置为 absolute,不过其包含块是视窗本身。
position的absolute与fixed共同点与不同点:
A:共同点:
1.改变行内元素的呈现方式,display被置为block;2.让元素脱离普通流,不占据空间;3.默认会覆盖到非定位元素上
B不同点:
absolute的”根元素“是可以设置的,而fixed的”根元素“固定为浏览器窗口。当你滚动网页,fixed元素与浏览器窗口之间的距离是不变的。
??5、CSS选择器以及优先级计算。?
一般而言,选择器越特殊,它的优先级越高。也就是选择器指向的越准确,它的优先级就越高。通常我们用1表示标签名选择器的优先级,用10表示类选择器的优先级,用100标示ID选择器的优先级。比如上例当中 .polaris span {color:red;}的选择器优先级是 10 + 1 也就是11;而 .polaris 的优先级是10;浏览器自然会显示红色的字。理解了这个道理之后下面的优先级计算自是易如反掌:
div.test1 .span var 优先级 1+10 +10 +1
span#xxx .songs li 优先级1+100 + 10 + 1
#xxx li 优先级 100 +1
??6、常用的CSS hack。?
??7、遇到的兼容性问题与解决方法。
?9、常用布局的实现(两列布局、三列适应布局,两列等高适应布局等)。
链接1-两栏布局,三栏布局,等高布局,流式布局
链接2-各种等高列布局
链接3-各种两列布局
?Javascript?
1、犀牛书封面的犀牛属于神马品种?(蛋逼活跃气氛用。。。)?
2、常用的浏览器内核。
Trident
Gecko
Presto
Webkit
Blink
?3、常用的DOM操作,新建、添加、删除、移动、查找等。
?5、设备与平台监测。?
?6、DOM的默认事件、事件模型、事件委托、阻止默认事件、冒泡事件的方式等。?
7、jQuery的bind、live、on、delegate的区别(考察点与上一条重叠,切入点不同)。
?8、JS变量提升、匿名函数、原型继承、作用域、闭包机制等。
变量和函数的解析过程
当进入执行上下文(代码执行之前)时,VO(变量对象)里已经包含了下列属性:
函数的所有形参(如果我们是在函数执行上下文中)
— 由名称和对应值组成的一个变量对象的属性被创建;没有传递对应参数的话,那么由名称和undefined值组成的一种变量对象的属性也将被创建。
所有函数声明(FunctionDeclaration, FD)
—由名称和对应值(函数对象(function-object))组成一个变量对象的属性被创建;如果变量对象已经存在相同名称的属性,则完全替换这个属性。
所有变量声明(var, VariableDeclaration)
— 由名称和对应值(undefined)组成一个变量对象的属性被创建;如果变量名称跟已经声明的形式参数或函数相同,则变量声明不会干扰已经存在的这类属性。
?9、对HTTP协议的理解。
??10、Ajax的常用操作,JS跨域的实现原理。
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文地址:http://blog.csdn.net/u010940300/article/details/47451921