浮动、定位

一.文档流的概念指什么?有哪种方式可以让元素脱离文档流?

1.窗体自上而下分成一行行, 并在每行中按从左至右的顺序排放元素,即为文档流.
2.脱离文档流:使用定位或浮动

二.有几种定位方式,分别是如何实现定位的,使用场景如何?

三种基本的定位机制:普通流(文档流)、浮动和绝对定位

  • 普通流:
    除非专门指定,否则所有框都在普通流中定位。也就是说,普通流中的元素的位置由元素在 (X)HTML 中的位置决定。
    块级框从上到下一个接一个地排列,框之间的垂直距离是由框的垂直外边距计算出来。
    行内框在一行中水平布置。可以使用水平内边距、边框和外边距调整它们的间距。但是,垂直内边距、边框和外边距不影响行内框的高度。由一行形成的水平框称为行框(Line Box),行框的高度总是足以容纳它包含的所有行内框。不过,设置行高可以增加这个框的高度。
  • 定位:通过使用 position 属性,我们可以选择 4 种不同类型的定位
属性 描述
static 默认值。没有定位,元素出现在正常的流中(忽略 top, bottom, left, right 或者 z-index 声明)。
relative 相对定位是“相对于”元素在文档中的初始位置进行定位,使用相对定位时,无论是否进行移动,元素仍然占据原来的空间。因此,移动元素会导致它覆盖其它框
absolute 相对于 static 定位以外的第一个父元素进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定,绝对定位使元素的位置与文档流无关,因此不占据空间
fixed 生成绝对定位的元素,相对于浏览器窗口进行定位。元素的位置通过 "left", "top", "right" 以及 "bottom" 属性进行规定。对于定位元素,z-index值越大优先级越高

三.absolute, relative, fixed偏移的参考点分别是什么

  • absolute:相对于 static 定位以外的第一个父元素进行定位, 前提是父元素是定位元素,如果父元素不是定位元素,那么就按照嵌套关系逐级向上寻找,直到根节点(视窗)进行定位。
    如图,灰色盒子没有设置相对定位时,2号盒子相对于页面定位,.box设置相对定位时,2号盒子相对于灰色盒子定位
  • fixed:fixed属性值相对于浏览器视窗进行定位
    如图,红色边框盒子设置fixed属性,相对于浏览器定位
  • relative:相对定位是“相对于”元素在文档中的初始位置进行定位
    如图,2号盒子相对于它的初始位置进行定位


四.z-index 有什么作用? 如何使用?

  • z-index 属性设置元素的堆叠顺序。拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。
  • 元素可拥有负的 z-index 属性值。
  • Z-index 仅能在定位元素上奏效(例如 position:absolute;)
    如图,原先3号盒子覆盖2号盒子,3号盒子默认z-index值为0,设置2号盒子z-index属性为1时,2号盒子覆盖了3号盒子


五.position:relative和负margin都可以使元素位置发生偏移?二者有什么区别

position:relative元素发生偏移时,初始空间还被占据着。而负margin不再占据初始空间。也就是说,margin设置负值,不但改变了元素本身,还改变了周围其他元素的布局。
如图,设置2号盒子的position:relative属性,left为20px,1号盒子和3号盒子不受影响

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style media="screen">
.box {
        width: 550px;
        height: 550px;
        border: 1px solid;
        background-color: #ccc;
    }
        .box1 {
            width: 50px;
            height: 50px;
            border: 1px solid red;
            background-color: red;
        }
        .box2 {
            width: 50px;
            height: 50px;
            border: 1px solid blue;
            background-color: blue;
            position: relative;
            left: 20px;
        }
        .box3 {
            width: 50px;
            height: 50px;
            border: 1px solid green;
            background-color: green;
        }
    </style>
</head>

<body>
<div class="box">
    <div class="box1">1</div>
    <div class="box2">2</div>
    <div class="box3">3</div>
  </div>
</body>

</html>

如图,设置2号盒子margin:-20px,1号盒子和3号盒子均受影响

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <title>Document</title>
    <style media="screen">
    .box {
        width: 550px;
        height: 550px;
        border: 1px solid;
        background-color: #ccc;
    }
        .box1 {
            width: 50px;
            height: 50px;
            border: 1px solid red;
            background-color: red;
        }
        .box2 {
            width: 50px;
            height: 50px;
            border: 1px solid blue;
            background-color: blue;
          margin: -20px;
        }
        .box3 {
            width: 50px;
            height: 50px;
            border: 1px solid green;
            background-color: green;

        }
    </style>
</head>

<body>
  <div class="box">


    <div class="box1">1</div>
    <div class="box2">2</div>
    <div class="box3">3</div>

  </div>
</body>

</html>

六.如何让一个固定宽高的元素在页面上垂直水平居中?

.box1 { 
width: 50px; 
height: 50px; 
border: 1px solid ;
background-color:red;
 position: absolute; 
left: 50%; top: 50%;
 margin-left: -25px; 
margin-top: -25px;
}

利用position: absolute;将元素脱离文本流,然后设置left: 50%; top: 50%;从而使元素的左上角点位于页面中点,最后通过调节元素的margin值(左上各负一半)将元素居中。


七.浮动元素有什么特征?对其他浮动元素、普通元素、文字分别有什么影响?

  • 浮动的框可以左右移动,直至它的外边缘遇到包含框或者另一个浮动框的边缘
  • 浮动框不属于文档中的普通流,顾名思义,就是漂浮于普通流之上,像浮云一样,但是只能左右浮动,文档中的普通流就会表现得和浮动框不存在一样
  • 当一个元素浮动之后,不会影响到块级框的布局而只会影响内联框(通常是文本)的排列
  • 当浮动框高度超出包含框的时候,也就会出现包含框不会 自动伸高来闭合浮动元素(“高度塌陷”现象)
    如图,1号盒子(红色)设置浮动后不占据原有空间,2号和3号盒子向上移动



    如图,设置所有的盒子左浮动,将按顺序从左开始排列


如图,设置浮动对文字造成影响,形成文字环绕

八.清除浮动指什么? 如何清除浮动?

浮动元素引起的问题:

  • 父元素的高度无法被撑开,影响与父元素同级的元素
  • 与浮动元素同级的非浮动元素会跟随其后
  • 若非第一个元素浮动,则该元素之前的元素也需要浮动,否则会影响页面显示的结构

使用CSS中的clear:both;属性来清除元素的浮动可解决2、3问题。


如图,对 p标签设置clear:right,清除浮动,这时文字不再环绕图片

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,362评论 5 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,330评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,247评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,560评论 1 273
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,580评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,569评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,929评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,587评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,840评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,596评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,678评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,366评论 4 318
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,945评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,929评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,165评论 1 259
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 43,271评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,403评论 2 342

推荐阅读更多精彩内容

  • 一、文档流的概念指什么?有哪种方式可以让元素脱离文档流? 1、文档流指的是元素在排列布局中所占用的位置,具体的说是...
    鸿鹄飞天阅读 765评论 0 0
  • 一,浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动模型是一种可视化格式模型,浮动...
    DeeJay_Y阅读 855评论 0 4
  • 浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 特征: 1、浮动元素会脱离正常的文档流...
    我要认真学前端阅读 2,732评论 0 5
  • 学习建议 定位、浮动是 CSS 核心知识点,必须熟练掌握。 1.文档流的概念指什么?有哪种方式可以让元素脱离文档流...
    饥人谷_任磊阅读 1,067评论 0 3
  • 夜深人静的时候不是我想家的时候,却是最想你的时候。刚刚收拾完衣服,有一件你给我买的红色的长袖衬衣,想起来有一张照片...
    孙有腾阅读 233评论 0 0