浮动和定位

float浮动

  • 脱离文档流
  • 元素会按照我们指定的方向移动,碰到父级的边界或者前边的浮动元素停止
    例:float:left; float:right;
  • float:none;元素不浮动,并会显示在其在文本中出现的位置。
  • 浮动元素折行
    在一行显示,父级的宽度放不下了,会自己折行
  • 支持宽高等样式,不设置宽度的时候,宽度由内容撑开
  • 浮动元素的上下margin值不会被重叠
    (margin:块级元素的垂直相邻外边距会合并,而行内元素实际上不占上下外边距。行内元素的的左右外边距不会合并。同样地,浮动元素的外边距也不会合并。允许指定负的外边距值,不过使用时要小心。)
    注意:浮动的位置是碰到前面的浮动元素,换行时要注意浮动元素的margin和padding值也要计算,如下图,div1的margin值占了20个像素,因此换行时从div1后开始,并且要留出div3的margin值


position定位

一、 相对定位 relative

position: relative; top: 100px; left: 300px;

  • 如果值设置相对定位,不设置偏移位置,则是在原位置
  • 如果元素不设置定位,则只写位置的设置都无效
    left
    top
    bottom
    right
  • 如果没有设置层级,后面的同级会覆盖前面的同级


  • 元素移动之后会保留原始位置(不脱离文档流)
  • 根据元素的原始位置来计算坐标
二、absolute绝对定位
  • 脱离文档流
    注意:float定位也是脱离文档流,不同的是,float定位时,其他盒子会无视这个元素,但是其他盒子的文本会让出位置,环绕在周围;absolute定位时,其他盒子和盒子内的元素都会无视它。
    absolute定位

    float浮动
  • 提升层级
  • 没有定位父级时向上级找,所有父级都没有定位时设置位置以document来计算自己的坐标
  • 绝对定位让内嵌支持宽高例:span。相当于display:inline-block;
  • 不设置宽度,有内容撑开
  • 触发BFC
    层级:z-index:数值;数值越大层级越高,只能加给定位元素,在同级元素之间比较层级。
三、固定定位fixed
  • 脱离文档流
  • 提升层级
  • 把元素固定在可视区的某个位置上(不随页面滚动而移动)
  • 出发BFC
  • 是内嵌元素支持宽高
  • 不设置宽度的时候,宽度由内容撑开
四、static定位

默认,静态定位/无定位

清除浮动

脱离文档流导致的问题:
子元素脱离文档流,会导致父级的高度塌陷(没有高了)

  • clear: left/right/both 让元素某个方向不能有浮动元素
    注意:clear只对自己之前(html结构中前面的)的元素有作用
  • after 伪类
    -在元素的内容的最后添加东西
    div:after{content:"内容";}
.clearFix:after {
    content: "";
    clear: both;
    display: block; //添加之后内容是内联,要添加样式需要先变成块级元素
    }
  • 如果父级中所有子元素都浮动了,父级的高度是固定的那么可以直接为父级加高度;如果父级的高度是需要子级撑开的,那么需要为父级清除浮动(clear:both)

BFC

BFC:(block formatting context 块级格式化上下文),它决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用

一个新的BFC可以通过给容器添加任何一个触发BFC的CSS样式,如overflow: scroll, overflow: hidden, display: flex, float: left,或者 display: table来创建。

  • display:table可能会产生一些问题
  • overflow:scroll可能会显示不必要的滚动条
  • float:left将会把元素置于容器的左边,其他元素环绕着它
  • overflow:hidden将会剪切掉溢出的元素

触发BFC

  1. float的值不为none;
  2. overflow的值不为visible;
    =>overflow:scrroll 始终显示滚动
    =>overflow:auto 超出才显示滚动
    =>overflow:hidden 超出部分隐藏
  3. display的值为 table-cell、table-caption和inline-block之一;
    => table-cell 此元素会作为一个表格单元格显示(类似 <td> 和 <th>)
    =>table-caption 此元素会作为一个表格标题显示(类似 <caption>)
    =>inline-block 行内块元素。
  4. position的值不为 static或 relative中的任何一个;
    => static 默认值。没有定位,元素出现在正常的流中
    => relative 生成相对定位的元素,相对于其正常位置进行定位。
    作用
  5. 包含浮动元素
  6. 阻止margin向外传递
  7. 不被浮动元素覆盖
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,723评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,003评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,512评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,825评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,874评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,841评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,812评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,582评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,033评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,309评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,450评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,158评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,789评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,409评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,609评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,440评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,357评论 2 352

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,747评论 1 92
  • 浮动元素特征 对父容器、其他浮动元素、普通元素、文字的影响 浮动会使应用此属性的元素脱离文档流。按指定的位置来移...
    ezrealor阅读 386评论 0 0
  • 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素会从普通流中取出,浮动到左边或...
    LeeoZz阅读 387评论 0 1
  • 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响?浮动的元素会脱离文档流,向左或者向右移动...
    饥人谷_wanpp阅读 671评论 0 49
  • 浮动元素的特征及影响 特征: 浮动模型也是一种可视化格式模型,浮动的框可以左右移动(根据float属性值而定),直...
    Joey的企鹅阅读 889评论 0 0