浮动、定位

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

文档流:就像一股溪水在页面自左向右,自上而下的流淌,在html的溪水中有各种元素。
脱离文档流:就像把元素从溪水中浮了起来,放到你想放到的位置。
通过float(浮动)或position(定位)来使元素脱离文档流。

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

  • 绝对定位:
    position:absolute相对父元素进行定位。前提是具有定位属性的父元素(如position:relative),如果没有的话,就相对html的根元素进行定位。
  • 相对定位:
    position:relative根据自身的位置进行偏移,偏移后原来的位置仍然占据空间。
  • 固定定位:
    position:fixed根据浏览区窗口进行定位。就算滚动条上下滚动,他的位置也不会改变。他常常会被用于页面上的广告窗口、对话框,回到顶部等。
<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>三大定位</title>
    <style>
      .wrap1{
        display: inline-block;
        width: 500px;
        height: 500px;
        border: 1px solid;
        float: left;
      }
     .absolute{
        position:absolute;/*绝对定位*/
        width: 80px;
        height: 80px;
        border: 1px solid;
        background-color: pink;
        left: 210px;
        top: 210px;
      }
      .wrap2{
        display: inline-block;
        width: 500px;
        height: 500px;
        border: 1px solid;
        float: left;
      }
      .relative{
        width: 80px;
        height: 80px;
        border: 1px solid;
        background-color: green;
        float: left;
      }
      .relative:nth-child(2){
        position: relative;/*相对定位*/
        top: 20px;
        left: 20px;
      }
      .wrap3{
        display: inline-block;
        width: 500px;
        height: 500px;
        border: 1px solid;
      }
      .fixed{
        width: 120px;
        height: 80px;
        border: 1px solid;
        background-color: yellow;
        position: fixed;/*固定定位*/
        right: -20px;
      }
    </style>
  </head>
  <body>
  <div class="wrap">
    <div class="wrap1">
      <div class="absolute">绝对定位</div>
    </div>
    <div class="wrap2">
      <div class="relative">相对定位</div>
      <div class="relative">相对定位</div>
      <div class="relative">相对定位</div>
    </div>
    <div class="wrap3">
      <div class="fixed">固定定位</div>
    </div>
  </div>
  </body>
</html>
Paste_Image.png

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

  • relative:相对定位相对的是它原本在文档流中的位置而进行的偏移。

  • absolute:使用absoult定位的元素脱离文档流后,就只能根据祖先类元素(父类以上)进行定位,而这个祖先类还必须是以postion非static方式定位的。如果没有这样的父元素,就相对html的根元素进行定位。

  • fixed:固定定位它和absoult定位一样,都脱离了文档流,并且能够根据top、right、left、bottom属性进行定位,但不同的是fixed是根据窗口为原点进行偏移定位的,也就是说它不会根据滚动条的滚动而进行偏移。

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

当你定义的CSS中有position属性值为absolute、relative或fixed,用z-index此取值方可生效。此属性参数值越大,则被层叠在最上面。

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

position:relative只是本身元素会发生偏移,不会影响到其他元素,因为之前占据的空间还在。
负margin的时候,设置负top,负left是让自己位移,而负right、负bottom是让周围的元素位移。负margin会影响周围元素的位置和布局。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>偏移</title>
    <style>
      .wrap3{
        display: inline-block;
        width: 500px;
        height: 500px;
        border: 1px solid;
        float: left;
      }
      .relative{
        width: 80px;
        height: 80px;
        border: 1px solid;
        background-color: green;
        float: left;
      }
      .relative:nth-child(2){
        position: relative;/*相对定位*/
        top: 20px;
        left: 20px;
      }
      .margin{
        width: 80px;
        height: 80px;
        border: 1px solid;
        background-color: green;
      }
      .three{
        margin-right: -40px;
        margin-bottom: -40px;
      }
      .two{
        margin-top: -20px;
        margin-left: -20px;
      }
    </style>
  </head>
  <body>
    <div class="wrap3">
      <div class="relative">相对定位</div>
      <div class="relative">相对定位</div>
      <div class="relative">相对定位</div>
    </div>
    <div class="wrap3">
      <div class="margin">margin</div>
      <div class="margin two">margin-t-l</div>
      <div class="margin">margin</div>
    </div>
    <div class="wrap3">
      <div class="margin">margin</div>
      <div class="margin three">margin-r-b</div>
      <div class="margin">margin</div>
    </div>
  </body>
</html>
Paste_Image.png

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

使用绝对定位(position: absolute)。上下边距各百分之50,然后用负margin修正位置。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>垂直居中</title>
    <style>
      .wrap{
        position: relative;
        width: 500px;
        height: 500px;
        background: #ccc;
      }
      .block{
        width: 50px;
        height: 50px;
        background: pink;
        position: absolute;
        left: 50%;
        top: 50%;
        margin-left: -25px;
        margin-top: -25px;
      }
    </style>
  </head>
  <body>
    <div class="wrap">
      <div class="block"></div>
    </div>
  </body>
</html>
Paste_Image.png

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

  • 浮动元素:就是让元素脱离文档流,向左或者向右浮动,而且其他元素认为它是不存在的,会占据他的空间。
  • 其他浮动元素:会跟在浮动元素后面浮动,直到它的外边缘碰到包含框或另一个浮动元素的边框为止。
Paste_Image.png
  • 对于普通元素:块元素会在浮动元素的下面,行内元素和块元素中的行内内容会考虑浮动元素的边界,因此会围绕着浮动元素。
Paste_Image.png
  • 文字:文字会围绕着浮动元素。
Paste_Image.png

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

因为浮动元素会跟随上一个浮动元素后面,所以在我们不希望它跟随的时候,我们就需要清除浮动,强迫它到移到下一行。
对于CSS的清除浮动(clear),一定要牢记:这个规则只能影响使用清除的元素本身,不能影响其他元素。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title>浮动</title>
    <style>
      .div1{
        width: 100px;
        height: 50px;
        background: green;
        float: left;
      }
      .div2{
        width: 80px;
        height: 60px;
        background: red;
        float: left;
        clear: left;/*不允许左边有浮动元素*/
      }
    </style>
  </head>
  <body>
    <div class="div1">div1</div>
    <div class="div2">div2</div>
  </body>
</html>
Paste_Image.png
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 194,761评论 5 460
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 81,953评论 2 371
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 141,998评论 0 320
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 52,248评论 1 263
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 61,130评论 4 356
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 46,145评论 1 272
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 36,550评论 3 381
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 35,236评论 0 253
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 39,510评论 1 291
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 34,601评论 2 310
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 36,376评论 1 326
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 32,247评论 3 313
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 37,613评论 3 299
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 28,911评论 0 17
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 30,191评论 1 250
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 41,532评论 2 342
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 40,739评论 2 335

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,705评论 1 92
  • 学习建议 定位、浮动是 CSS 核心知识点,必须熟练掌握。 1.文档流的概念指什么?有哪种方式可以让元素脱离文档流...
    饥人谷_任磊阅读 1,050评论 0 3
  • 一、文档流的概念指什么?有哪些方式可以让元素脱离文档流? 文档里指元素在文档中的位置由元素在html里的位置决定,...
    dengpan阅读 525评论 0 3
  • 一、文档流的概念指什么?有哪种方式可以让元素脱离文档流? 1、文档流指的是元素在排列布局中所占用的位置,具体的说是...
    鸿鹄飞天阅读 754评论 0 0
  • 1.浮动元素有什么特征?对父容器、其他浮动元素、普通元素、文字分别有什么影响? 浮动元素 浮动元素是设置float...
    Volcaner阅读 339评论 0 0