坎帕斯学院日常讨论
话题:width:100%和width:auto的区别
width:100%
- 元素宽度等于父级元素的宽度。
width:auto
- 元素的宽度等于父元素的宽度减去margin,padding,border这些。
高度知识点
- 子元素的margin和padding百分比知识点根据父元素的width来算。test width=父元素width-margin-padding-border
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24//test1
<style>
body{
margin:0;
padding:0;
}
.main{
width:500px;
background:red;
}
.test{
width:auto;
padding:20px;
margin:10px;
border:5px solid blue;
background:green;
}
</style>
<div class="main">
<div class="wrap">
<div class="test">123</div>
</div>
</div>
1 | //test2 |
test width=123123123123123+margin+padding+border
1 | //test3 |
test width=500-padding-margin-border
这里的500px并不是继承,而是因为div块级元素的影响而来的。
1 | //test4a |
test width=50,height=100,margin-top=20
2017.4.19 21:00
话题:document.getElementByClassName()返回的是什么?
- 是一个HTML集合。
集合和数组的区别
- HTML集合:一直与文档保持着链接,每次你需要最新的信息时,都会重复执行查询的过程,哪怕只是获取集合里的元素个数,即集合的length属性也是这样。(简单的说就是这个集合会实时改变)
- 案例:
1
2
3
4
5var alldivs document.getElementsByTagName('div');
for(var i=0;i<alldivs.length;i++){
document.body.appendChild(document.createElement('div'));
}
//该循环会一直循环下去,因为每次添加一个div之后,alldicvs.length的值也会改变,导致循环条件一直为true,一直循环。
关于闭包和词法作用域
- 案例:
1
2
3
4
5
6
7
8
9
10function foo(){
concile.log(a);//2
}
function bar(){
var a=3;
foo();
}
var a=2;
bar();
//原理:js的运行原理是词法作用域,而非动态作用域,因此当foo函数被调用的时候,对a进行查询的时候会直接在全局作用域中查询。
话题:display:none和visibility:hidden区别?
- display:none;有dom树,没有渲染树,也就是说js可以找到display:none。
- visibility:hidden;只是将内容隐藏起来了,还是要占位的。
话题:两个inline-block元素在同一行中间的那个间距是多少?
- 每个浏览器间距不同。
- 字体大小不同间距不同。
如何去掉这个空格?
- 去掉最底层html标签的空格。
- margin为负值。(每个浏览器不同,值不同)
- 将父级元素的字体大小设置为0。(推荐方案)
注意:
- 这个间距不仅在水平方向有,在垂直方向也有!
- 距离大概是字体大小的1/8(可能会有叠加)。
- inline-block元素之间,block和inline-block和inline的元素之间都有间距。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 人间一趟!
评论