css的position定位(CSS中的利用margin和position定位时的不同)
本文目录
CSS中的利用margin和position定位时的不同
先来看例子吧:《HTML》 《head》 《style》 .red{border:2px solid red;} 《/style》 《/head》 《body》 《div style="padding:10px;width:100px;" class="red"》 《div id="a" class="red"》AAAA《/div》 《div id="b" class="red"》BBBB《/div》 《/div》 《/body》《/html》以上代码在浏览器中的显示效果如下:AAAABBBB下面通过position属性来把AAAA往上移动8px,在head的style里面加入#a{position:relative;top:-8px;}即:《HTML》 《head》 《style》 .red{border:2px solid red;} #a{position:relative;top:-8px;} 《/style》 《/head》 《body》 《div style="padding:10px;width:100px;" class="red"》 《div id="a" class="red"》AAAA《/div》 《div id="b" class="red"》BBBB《/div》 《/div》 《/body》《/html》效果如下:AAAABBBB而如果通过margin-top:-8px来调整的话,即:《HTML》 《head》 《style》 .red{border:2px solid red;} #a{margin-top:-8px;} 《/style》 《/head》 《body》 《div style="padding:10px;width:100px;" class="red"》 《div id="a" class="red"》AAAA《/div》 《div id="b" class="red"》BBBB《/div》 《/div》 《/body》《/html》 效果如下:AAAABBBB看到不同了吧,用position属性来调整的时候,只是被调整的div移动了,而下面的div不会动;用margin属性调整就不同了,下面的div也会相应的向上移动8px,但是并不影响下面的padding值。
position属性是相对定位还是绝对定位呢
在CSS中,“position: relative”是设置定位类型为相对定位,它可以配合“top”、“bottom”、“left”、“right”这4个偏移量来实现相对它所属父元素的相对定位。
position属性规定元素的定位类型,这个属性定义建立元素布局所用的定位机制。任何元素都可以定位,不过绝对或固定元素会生成一个块级框,而不论该元素本身是什么类型。相对定位元素会相对于它在正常流中的默认位置偏移。
relative属性相对比较简单,它是相对它所属父元素来进行偏移的,可以通过“top”、“bottom”、“left”、“right”4个偏移属性进行定位。
扩展资料:
position属性的其它定位类型:
1、absolute
绝对定位,依据父元素中最近设置为relative定位类型的元素进行偏移。
2. fixed
fixed是特殊的absolute,即fixed总是以body为定位对象的,按照浏览器的窗口进行定位。
3. static
position的默认值,一般不设置position属性时,会按照正常的文档流进行排列。
参考资料来源:百度百科-position (定位元素)
css绝对定位和相对定位的区别
一:绝对定位
position: absolute;绝对定位:绝对定位是相对于元素最近的已定位的祖先元素(即是设置了绝对定位或者相对定位的祖先元素)。如果元素没有已定位的祖先元素,那么它的位置则是相对于最初的包含块(body)。
绝对定位本身与文档流无关,因此不占空间,普通文档流中的元素的布局就当绝对定位的元素不存时一样,所以 它们可以覆盖页面上其他的元素,且可以通过z-index属性来控制这些层的对方顺序。
#box_relative {position: absolute;left: 30px;top: 20px;}
二:相对定位
position: relative;相对定位:相对定位是相对于元素在文档中的初始位置——首先它出现在它所在的位置上(即不设置position时的位置,然后通过设置垂直或水平位置,让这个元素“相对于”它的原始起点进行移动;
注意,在使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框。
#box_relative {position: relative;left: 30px;top: 20px;}
注意:position:absolute,float会隐式地改变display的类型(display:none除外)。即是当元素设置position:absolute、float:left、float:right中任意一个时,都会让元素以display:inline-block的方式显示(特点是:可以设置长宽,默认宽度不占满父元素)。这时,即使故意设置display:inline; display:block都是无效的。但是float在IE6下的双边距bug就是用display:inline; 来解决的。position:relative不会隐式改变display的类型。
更多文章:
微信代码转换翻译文字(我喜欢你微信翻译代码 微信翻译重译表白代码)
2024年7月22日 09:13
barometric(barometric pressure是什么意思)
2024年7月10日 01:24
activities at my school作文(学校的哪些活动你喜欢什么写50字 英语作文)
2024年7月21日 07:40
开机一直general(电脑打开出现GeneralHelp,重启也没法,怎么办)
2024年6月5日 01:06
c语言lseek函数的用法(c语言 怎么样把一个三维数组写入一个txt的文件然后读入另一个三维数组里)
2024年2月19日 14:40
有关辩证思维的举例有哪些?怎样用Rational rose画部署图
2024年7月17日 06:57
郑州程序员培训机构(在郑州黑马程序员培训UI和北京有啥区别吗)
2024年7月22日 10:09
什么叫完全二叉树(满二叉树和完全二叉树的区别和联系(完全二叉树与满二叉树的区别))
2024年9月9日 09:10
日本nginx软件(轻量级HTTP服务器Nginx:为何要选择Nginx)
2024年7月23日 06:17