这篇文章给大家分享的是有关CSS定位的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。
创新互联建站于2013年成立,先为衡水等服务建站,衡水等地企业,进行企业商务咨询服务。为衡水企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
定位允许定义元素框相对于其正常位置或父元素、另一个元素甚至是浏览器本身来重新定义应该出现的位置。
CSS为定位和浮动提供了一些属性,利用这些属性,可以建立列式布局,将布局的一部分与另一部分重叠,还可以完成多年来通常需要使用多个表格才能完成的任务。
div、h2或p元素常常被称为块级元素。这意味着这些元素显示为一块内容,即“块框”。
与之相反,span和strong等元素称为“行内元素”,这是因为它们的内容显示在行内,即“行内框”。
普通流
浮动
绝对定位
除非专门指定,否则所有框都在普通流中定位。即普通流中的元素位置由元素在(X)HTML中的位置决定。
块级框从上到下依次排列,框之间的垂直距离是由框的垂直外边距计算得来。
行内框在一行中水平布置。可以使用水平内边距、边框和外边距来调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。
由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
static静态定位:元素框正常生成,默认值。块级元素生成一个矩形框,作为文档流的一部分,行内元素则会创建一个或多个行框,置于其父元素中。
relative相对定位:元素框偏移某个距离。元素仍保持其未定位前的形状,它原本所占的空间仍保留。
abslute绝对定位:元素框从文档流完全删除,并相对于其包含块定位。包含块可能是文档中的另一个元素或是初始包含块。元素原先在正常文档流中所占的空间会关闭,就好像元素不存在一样。元素定位后生成一个块级框,而不论原来它在正常流中所生成何种类型的框
fixed固定定位:元素框的表现类似于将position设置为absolute,不过其包含块是视窗本身。
属性 | 描述 |
---|---|
position | 把元素放置到一个静态的、相对的、绝对的或固定的位置中。 |
top | 定义元素的上外边距边界与其包含块上边界之间的偏移。 |
right | 定义元素的右外边距边界与其包含块右边界之间的偏移。 |
bottom | 定义元素的下外边距边界与其包含块下边界之间的偏移。 |
left | 定义元素的左外边距边界与其包含块左边界之间的偏移。 |
overflow | 设置当元素的内容溢出其区域时发生的事情。 |
clip | 设置元素的形状。元素被剪入这个形状之中,然后显示出来。 |
vertical-align | 设置元素的垂直对齐方式。 |
z-index | 设置元素的堆叠顺序。 |
设置为相对定位的元素框会偏移某个距离。元素仍然保持其未定位前的形状,它原本所占的空间仍保留。
注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
例如:若将top设置为20px,那么框将在原位置顶部下20像素的地方。若left设置为30像素,那么会在元素左边创建30像素的空间,也就是将元素向右移动。
#box_relative{ position:relative; left:30px; top:20px; }
案例:
设置为绝对定位的元素框从文档流完全删除,并相对于其包含块定位,包含块可能是文档中的另一个元素或是初始包含块。
元素原先在正常文档流中所占的空间会关闭,就好像该元素原来不存在一样。元素定位后生成一个块级框,而不论它在正常流中生成何种类型的框。
普通流中其它元素的布局就像绝对定位的元素不存在一样。
绝对定位的元素其位置相对于最近的已定位祖先元素,若元素没有已定位的祖先元素,那么它的位置相对于最初的包含块。
根据用户代理的不同,最初的包含块可能是画布或HTML元素。
提示:因为绝对定位的框与文档流无关,所以它们可以覆盖页面上的其它元素。可以通过设置z-index属性来控制这些框的堆放次序。
案例:
浮动的框可以向左或向右移动,直到它的外边缘碰到包含框或另一个浮动框的边框为止。
由于浮动框不在文档的普通流中,所以文档的普通流中的块框表现得就像浮动框不存在一样。
案例1:当把框1向右浮动时,它脱离文档流并且向右移动,直到它的右边缘碰到包含框的右边缘。
案例2:当框1向左浮动时,它脱离文档流并且向左移动,直到它的左边缘碰到包含框的左边缘。因为它不再处于文档流中,所以它不占据空间,实际上覆盖了框2,使框2从视图中消失。
案例3:若把所有三个框都向左浮动,那么框1向左浮动直到碰到包含框,另外2个框向左浮动直到碰到前一个浮动框。
案例4:若包含框太窄,无法容纳水平排列的三个浮动元素,那么其它浮动块向下移动,直到有足够的空间。若浮动元素的高度不同,那么当它们向下移动时可能被其它浮动元素“卡住”。
通过float属性实现元素的浮动。
CSS中,任何元素都可以浮动。浮动元素会生成一个块级框,而不论它本身是何种元素。
CSS float属性。
left:元素向左浮动。
right:元素向右浮动。
none:默认值。元素不浮动,并会显示在文本中出现的位置。
inherit:从父元素继承float属性值。
如果浮动为非替换元素,则要指定一个明确的宽度;否则它们会尽可能地窄。
假如在一行之上只有极少的空间可供浮动,那么这个元素会跳到下一行,直到某一行拥有足够的空间为止。
可能的值:
案例:
浮动框旁边的行距被缩短,从而给浮动框流出空间,行框围绕浮动框。因此,创建浮动框可以使文本围绕图像。
清理(clear)
none:默认值,两侧允许浮动。
left:左侧不能浮动。
right:右侧不能浮动。
both:两侧都不能浮动。
inherib:从父元素继承clear属性值。
想要阻止行框围绕浮动框,需要对该框应用clear属性。
clear属性的值可以是left、right、both或none,它表示框的哪些边旁边不能有浮动框。它让周围的元素为浮动框流出空间。
可能的值:
案例:
感谢各位的阅读!关于“CSS定位的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!