前端笔记

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

链接1
链接2

相对定位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的区别(考察点与上一条重叠,切入点不同)。

链接
链接1
链接2


8、JS变量提升、匿名函数、原型继承、作用域、闭包机制等。

变量提升,函数声明

匿名函数,闭包机制

变量和函数的解析过程

当进入执行上下文(代码执行之前)时,VO(变量对象)里已经包含了下列属性:

函数的所有形参(如果我们是在函数执行上下文中)

— 由名称和对应值组成的一个变量对象的属性被创建;没有传递对应参数的话,那么由名称和undefined值组成的一种变量对象的属性也将被创建。

所有函数声明(FunctionDeclaration, FD)

—由名称和对应值(函数对象(function-object))组成一个变量对象的属性被创建;如果变量对象已经存在相同名称的属性,则完全替换这个属性。

所有变量声明(var, VariableDeclaration)

— 由名称和对应值(undefined)组成一个变量对象的属性被创建;如果变量名称跟已经声明的形式参数或函数相同,则变量声明不会干扰已经存在的这类属性。


9、对HTTP协议的理解。


10、Ajax的常用操作,JS跨域的实现原理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值