- 求一个div的
offsetWidth就是求他的content+padding+border
div {
width:100px;
padding:10px;
border:1px solid red;
margin:10px
}
-
margin-right和margin-bottom若为负值,则自身不受影响,其右边的元素或者下边的元素会向左移动或者向上移动 案例
-
BFC 块级格式上下文 一块独立的渲染区域,内部元素的渲染不会影响到边界外的元素,应用
清除浮动
实现方式:
- float不是none
- position 是 absolute 或 fixed
- overflow 不是 visible
- display 是 inline-block 或 flex
4.圣杯布局
重点就是:
- 首先
container的padding左右边要和左右边div的宽度一样,main的宽度设置为100% left的margin-left:-100%,以后left会跑到main的左侧,可以想象是因为left原本是接在main后面的,然后跑了一个container的宽度,所以跑到了main的左侧,然后让left相对自己定位(position:relative),在right一个自己的宽度就可以跑到左边了- right的
margin-right一个自己的宽度就会跑到右边去,可以理解成,原本margin-right是应该自己不动,然后右边元素往左移,相当于自身元素减少了,所以,当减少为0的时候,右边元素会跑到main的右边
- 双飞翼布局
与圣杯布局不同,圣杯布局设置的是
padding,但是双飞翼设置的是margin,margin的左右宽度等于left和right的左右宽度,然后left设置margin-left:-100%,会往左移动container的一个宽度,所以到了左边,然后right,假想他原本就是接在main后面的,如果移动margin-right的话他会填充在后面,所以用margin-left=-他的宽度即可 - .clearfix
.clearfix:after {
content:'';
display:table;
clear:both;
}
.clearfix:{
zoom:1 /*兼容ie*/
}
-
absolute 和 relative relative 是依据自身元素定位,不会影响其他元素的布局 absolute 是依据最近一层的定位元素定位 定位元素指:absolute,relative,fixed 和body
-
居中对齐
- 水平居中
对于
inline的元素可以用text-align:center
对于block的元素可以用margin:auto
absolute元素可以设置 left:50%+margin-left=-元素的宽度的一半
- 垂直居中
对于
inline元素可以用line-height = height
absolute可以用top:50%+margin-top:-元素的高度的一半
absolute可以用transform:translate(-50%,-50%)
absolute可以用lef,right,top,bottom=0 + margin= auto
- line-height的继承问题
若元素的
line-height没有设置,则继承他父元素的line-height,若父元素的line-height是实际的数字或者比例,则自动继承然后转化成自己高度或数字大小高度的比例,若line-height是一个百分比,则现换算成父元素的line-height,然后继承其父元素的line-height
<div>
<p></p>
</div>
-------css
div{
font-size:20px;
line-height:200%
}
p {
font-size:16px
}
则此时的p的line-height是40px (20*200%)
<div>
<p></p>
</div>
-------css
div{
font-size:20px;
line-height:1.5
}
p {
font-size:16px
}
则此时的p的line-height是24px (16*1.5)
- 响应式
em:相对于父元素的相对长度单位rem:相对于根元素的相对长度单位window.screen.height是指屏幕的高度
window.innerheight 是指除去了header和footer的高度,网页视口高度
document.body.clientHeight 是指页面显示的内容的高度
- vh 是指的网页视口高度的1/100 window.innerheight = 100 vh
- vw 是指网页视口宽度的1/100