发表于: 2018-11-26 22:38:36
2 791
今天完成的事情:学习了定位、浮动
css定位机制:三总基本的定位机制:普通流、浮动、绝对定位
普通流:个人理解就是文档流总由上之下的普通布局
浮动float:浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。浮动元素会生成一个块级框,而不论它本身是何种元素。
浮动带来的负作用:
1、背景不能显示
由于浮动产生,如果对父级设置了(CSS background背景)CSS背景颜色或CSS背景图片,而父级不能被撑开,所以导致CSS背景不能显示。
2、边框不能撑开
如果父级设置了CSS边框属性(css border),由于子级里使用了float属性,产生浮动,父级不能被撑开,导致边框不能随内容而被撑开。
3、margin padding设置值不能正确显示
由于浮动导致父级子级之间设置了css padding、css margin属性的值不能正确表达。特别是上下边的padding和margin不能正确显示。(这个我在任务一中遇到了)
这时候需要清除浮动:1、添加额外标签、2、父元素设置 overflow:hidden、三、父元素也使用浮动。(任务一中我使用的是第二种)我参考的链接:http://www.divcss5.com/jiqiao/j406.shtml
绝对定位:相对于最近的已定位祖先元素,如果不存在已定位的祖先元素,那么相对于最初的包含块(根据代理的不同,最初的包含块可能是画布或html元素)
设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或者是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论原来它在正常文档流 中生成何种类型的框。
绝对定位使元素的位置与文档流无关,因此不占据空间。注:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素,可以通过设置z-index属性来控制这些框的对方次序。
相对定位:相对于元素在文档中的初始位置。
设置为相对定位的元素框会偏移某个距离,元素仍然保持其未定位前的状态,它原本所占的空间仍然保留。注:在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间,因此元素会导致它覆盖其它框。
行框:指本行的一个虚拟的矩形框,其高度等于本行内所有元素中行高最大的值。
行内框:在没有其它因素影响的时候,行内框等于内容区域,而设定行高则可以增加或者减少行内框的高度,即:讲行距的值(行高-字体尺寸)除以2,分别增加到内容区域的上下两边。
明天计划的事情:通过任务一,完成任务二,学习任务三
遇到的问题:任务一外层总是不居中,不会清除浮动。
收获:懂得了在有浮动的情况下,为什么父级撑不起来。
评论