float定位学习

CSS的float属性,即浮动属性,也是常用的用来定位的属性,可以使一个元素脱离正常的文档流,然后被安放到它所在容器的的左端或者右端,并且可以使其他的文本和行内元素围绕它安放。

在CSS中,任何元素都可以浮动,并且不论他本身是什么元素,都会变成一个块级框。即使设置了其他的display属性值,大部分也会被计算为block,这里具体可以查看MDN

语法

float: none|right|left|inherit;

属性值

属性 描述
none 默认值,即元素不浮动,就是正常的情况
left 元素向左浮动
right 元素向右浮动
inherit 继承父元素的float属性

正常情况

<div class="container">
  <div class="box">box1</div>
  <div class="box" id="two">box2</div>
  <div class="box">box3</div>
</div>
.container {
  width: 200px;
  height: 200px;
  background-color: #e8eae9;
}
.box {
    float: none;
    width: 50px;
    height: 50px;
    border: 2px solid #0dd;
    margin: 2px;
    background-color: #0ff;
}

此时示意图如下:

float_none

左浮动或右浮动

当一个元素浮动之后,它会被移出正常的文档流,向左或者向右浮动,直到所在容器的边缘,或者碰到了其他的浮动元素。

#two {
  float: left;
}

此时,id为two的div,就会脱离文档流,浮动到父元素的最左边,然后后面的div就会上来填充他本来的位置。

float_left
#two {
  float:right;
}

与float为left时的表现相似,只不过是向右浮动

float_right

常见应用

.box {
    float: left
}

此时的效果:

float_all

可是使用这种方式来制作导航栏

float元素与行内元素

上面主要是展示了 float之后的元素在多个块元素中的位置变化,下面说一说在文本元素中或者行内元素中的表现

float之后的元素,可以使其他的文本和行内元素围绕它安放。

<div class="container">
  <div class="box" id="one">box1</div>
  <div class="box inline">inline</div>
</div>
.container {
  width: 200px;
  height: 200px;
  background-color: #e8eae9;
}
.box {
    width: 50px;
    height: 50px;
    border: 2px solid #0dd;
    margin: 2px;
    background-color: #0ff;
}
.inline {
  display: inline-block;
}
#one {
  float: left;
}

可以看到此时行内元素并不会填充到float元素之前的位置,而是围绕着它。

inline

float元素与文本元素

float之后的元素与文本元素直接的表现,和行内元素直接的表现一样,也是围绕这它;

<div class="container">
  <div class="box" id="one">box1</div>
  <p>
    Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat.
  </p>
</div>
.container {
  width: 200px;
  height: 200px;
  background-color: #e8eae9;
}
.box {
    width: 50px;
    height: 50px;
    border: 2px solid #0dd;
    margin: 2px;
    background-color: #0ff;
}
#one {
  float: left;
}
float_text
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,827评论 1 92
  • 学习CSS的最佳网站没有之一 http://www.w3school.com.cn/tags/index.asp ...
    Amyyy_阅读 1,102评论 0 1
  • 一、浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 特征:1、浮动模型是一种可视化格式...
    青鸣阅读 1,093评论 0 0
  • 一、文档流的概念指什么?有哪种方式可以让元素脱离文档流? 1、文档流指的是元素在排列布局中所占用的位置,具体的说是...
    鸿鹄飞天阅读 808评论 0 0
  • 06住校风云 中考时,我们几个只有我考上了市一中,杨娇和娟子她们几个都落了榜。 据说娟子那成绩优秀的哥哥也只考了师...
    金萝阅读 330评论 0 1