43
本文首发于公众号:符合预期的CoyPan

写在前面

css大家都很熟悉了,这里就不多介绍了。本文主要介绍一下两个在日常的工作中可能会出错的地方。

margin-top 与 padding-top

这两个属性大家都很熟悉了,margin-top表示外部的上边距,padding-top表示内部的上边距。

取值可以是一个具体的值或者一个百分比,如:

margin-top: 10px;
margin-top: 10%;

padding-top: 20px;
margin-top: 20%;

当取值为具体的值时,没有什么好说的。当取值为百分比时,需要特别注意:百分比不是相对于父元素的高度的,而是相对于父元素的宽度的

w3c标准如下:

clipboard.png

clipboard.png

直接看例子:

clipboard.png

用处:可以用来在页面中显示 固定宽高比的图片

注意:heighttop的百分比取值,总是相对于父元素的高度

这里提一下,w3cSchool中文站中,关于margtin-top的描述是错误的。地址在这里:http://www.w3school.com.cn/css/pr_margin-top.asp

clipboard.png

position: fixed

一提到position:fixed,自然而然就会想到:相对于浏览器窗口进行定位

但其实这是不准确的。如果说父元素设置了transform,那么设置了position:fixed的元素将相对于父元素定位,否则,相对于浏览器窗口进行定位。

w3c的官方标准如下:

clipboard.png

看例子:

clipboard.png

.parent加上transform:translateY(0)以后,

clipboard.png

总结

  • padding-topmargin-toppadding-bottommargin-bottom取值为百分比时,是相对于父元素的宽度
  • position:fixed,相对于浏览器窗口定位。例外:父代元素中,有元素设置了transform,则postion:fixed相对于设置了transform的父元素定位。

写在后面

本文总结了平时css开发中需要稍微注意一下的,可能会出错的两个问题。符合预期。


欢迎关注我的公众号: 符合预期的CoyPan
这里只有干货,符合你的预期
图片描述


CoyPan
3.8k 声望3.7k 粉丝

FE