Heim  >  Artikel  >  Web-Frontend  >  CSS 各种定位(position)方式的区别

CSS 各种定位(position)方式的区别

高洛峰
高洛峰Original
2016-10-20 17:10:281425Durchsuche

static:静态定位是position的默认值,元素框正常生成,也就是没有定位时的正常显示。


  relative:相对定位


  用法一:元素相对自身的原位置偏移某个距离,但是原本的空间依旧保留,表现为空白。


  用法二:把一个元素设置为position: relative; 可以使该元素的子元素相对该元素绝对定位。


  absolute:绝对定位


  元素从文档流删除,并相对于包含块定位。元素在原本的空间关闭。元素定位后生成一个块级框,不论它原来是行内元素还是块级元素。


  包含块:最近的position值不是static的祖先元素(块级或行内),一般会指定一个元素作为绝对定位元素的包含块,将其position设置为relative而且没有偏移。


  fixed:固定定位


  元素从文档流删除,并相对于浏览器视窗定位,因此不随文档滚动而移动。元素在原本的空间关闭。元素定位后生成一个块级框,不论它原来是行内元素还是块级元素。与绝对定位的区别仅仅是包含块不同。


  包含块:浏览器视窗。


  absolute/fixed和float对比


  类似:元素都会从文档流删除,但是依旧会影响布局;都会生成一个块级框,无论原来是不是块级元素。


  区别:float的包含块是最近的块级祖先元素。


  偏移属性:top/right/bottom/left,初始值是auto。


  采用position定位之后必须采用偏移属性定义偏移量,也就是相对包含块的偏移。注意应用于position值不是static的元素。


  有时也需要定义width和heigth,但是可能会和偏移属性的定义冲突,因为四个偏移属性实际上已经定义了元素的大小。此时,根据width和left属性定义左右,根据top和height属性定义上下。


  内容溢出overflow: visible/ hidden/ scroll /auto/ inherit,初始值是visible。


  一个元素的大小固定,但是其内容放不下,就会导致溢出。overflow控制溢出部分的可见(visible)、不可见(hidden)、滚动可见(scroll)。


  元素可见性visibility: visible/ hidden/ collapse/ inherit,初始值是visible。


  visibility:hidden和display:none的区别:visibility:hidden设置元素不可见,但是元素依旧会影响布局,只是元素部分呈现为空白;display:none元素不显示并且从文档流中删除,对文档布局没有任何影响。



Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:CSS3的box-shadowNächster Artikel:CSS 实现 1px 以内的移动