当float和absolute和display搞在一起。。。

最近在复习CSS,深感 css “易学难精”。
display:flex 配合div以百分比设定宽高可以达到非常好的效果,但精确性仍然有缺憾之处。

一般来讲,此时内部自元素再定义margin就没意义了,但如果里面还有文本,则可以通过box-sizing : border-box 和padding 来设置文字的排布方式。

float 有人说 已经过时了,不过仍然有许多老代码,包括现在的诸多主流网站依然在用,可见刀虽老,管用就成。关于它的教程也有不少,我记得《无懈可击的WEB设计》一书中,就介绍了非常多的float细节。
以下是总结的一些细节。大量参考了这一篇文章。

在position:relative时,没有脱离普通流。设display是有效的,不管是inline-block 还是block都会有效果,注意不同display时对应的default position, top left的起点从哪里算

span等行内元素width属性无效,block,inline-block时有效

absolute时,display就自动变为block级别的了。width不再是默认100%而要看内部文字的长短自动变,和父元素(如父元素为absolute时)的宽度。
absolute的元素是脱离了文档流的。

abosulute/relative/fixed的元素都会覆盖static的元素,可调整z-index

fixed的元素不会改变inline的display

float 元素可以relative,但如果设为了abosulte,那就浮动不起来了。absolute/fixed的优先级大于float ,大于display

z-index和float元素无关

清除浮动:
float+absolute 不可以清除
float+relative 可以

你可能感兴趣的:(前端/CSS)