前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CSS定位概述

CSS定位概述

作者头像
菜的黑人牙膏
发布2019-01-21 16:46:32
8920
发布2019-01-21 16:46:32
举报

CSS中有三种基本的定位机制:普通流,浮动和绝对定位。

1.相对定位:relative

如果对一个元素进行相对定位,它将出现在它所在的位置上,然后可以通过设置垂直或者水平位置,让这个元素“相对于”它原来的位置进行移动,这时元素依然占据原来的位置,但移动后会覆盖其他的元素,可以通过z-index属性来对其显示位置进行设置。

代码语言:javascript
复制
#mybox{

  position:relative;

  left:20px;

  top:20px;

}

2.绝对定位:absolute

相对定位实际上依然是存在文档流中,但绝对定位则会使元素脱离文档流,绝对定位的元素是相对于距离他最近得已定位的祖先元素确定的,如果元素没有已定位的祖先元素,那么它的位置是相对于初始包含块的。

绝对定位同样可以通过z-index来对其设置叠放层次。

3.固定定位:

顾名思义,固定在浏览器某一位置。

4.浮动:float

浮动的框可以左右移动,直至其碰到包含框或另一浮动框的边缘。浮动同样会使元素脱离文档流。

上面说浮动会使元素脱离文档流,文档流中的元素会将其当做不存在,实际上并非如此。当下一个元素存在文本内容时,文本内容会受到浮动元素的影响,会移动留出空间,实际上。创建浮动框使文本围绕图像。即浮动元素旁边的行框被缩短。

要想阻止浮动元素对行框的影响,可以对包含这些行框的元素应用clear属性,其值可以是left,right,both或None;它表示框的那些边不应该挨着浮动框,其实质是浏览器对这些元素添加了一个外边距,使其下降位置到浮动框下边。

通过更多例子来说明浮动和清理,假设有一个图片和文本,你想让图片在左,文本在右,两者被包含在一个div中。

代码语言:javascript
复制
.news{

  background-color:gray;

 border:1px solid black;

}

.news  img{

  float:left;

}

.news p{

 float:right;

 }

<div>

  <img src=""/>

  <p>some thing</p>

</div>

 由于浮动元素不占据空间,所以运行结果如下图:

解决办法通常有三种:

1.添加一个新的div空元素在news里面,并对其设置clear属性,浏览器会自动赋予外边距。如图:

缺点:添加无意义的元素。

 2.也可以对父元素添加overflow:hidden属性,该属性会自动清理包含的任何浮动元素。

缺点:可能会对原来的布局有所影响,例如增加滚动条或截断内容。

3.使用js代码动态控制。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-02-22 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档