• 浮动与定位


    一、浮动 float   

        定义:使元素脱离文档流,按照指定的方向发生移动,遇到父级或相邻的浮动元素就会停下来。    

        值: left.right.none

        特征:                         

        1. 块元素可以在一行显示

        2. 按照一个指定的方向移动,遇到父级或相邻的浮动元素就会停下来。

        3. 行内元素支持宽高

        4. 脱离文档流

            浮动元素后面跟的元素(如果没有浮动)的位置是从前面浮动的元素开始的位置。

            注意:非浮动元素里的内容会留出前面浮动元素的位置(盒模型位置)

        5. 块元素默认宽度会被改变(包裹性)

            块元素不设置宽度,那宽度会由自动变成内容所撑开的宽度

        6. 父级高度塌陷(破坏性)

            子元素有浮动后,那父级元素的不会由子元素的高度所撑开

        7. 换行符不会被解析成空格(并行元素不会有间隙)

            浮动后的元素会脱离文档流,那它就不属于文档流的结构,所以不会解析空格

        脱离文档流:指的是元素不在页面中占位置

        1. 定位是完全脱离文档流

        2. 浮动不是完全脱离文档流

    清除浮动 

    1、clear

        clear定义: 元素的某个方向上不能有浮动的元素

        值:
        left:元素的左边不能有浮动的元素
        right:元素的右边不能有浮动的元素

        both :元素的两边都不能有浮动元素

        这个clear清除的代表的相同等级之间的元素影响,并不能解决子级对父级塌陷的影响    
    1. <style>
    2. .div1{float:left;}
    3. .div2{float:right;}
    4. .div3{clear:both;}
    5. </style>
    6. ...
    7. <divclass="div1">kaivon1</div>
    8. <divclass="div2">kaivon2</div>
    9. <divclass="div3">kaivion3</div>
     
       
    2、after伪类清楚浮动           

      现在最主流的方法,这个是给父级去消除子级浮动的影响

        after     代表选择到的元素的内容的最后面(因为有些元素没有内容·所以after要配合content)

            after伪类的内容默认是一个行内元素(所以需要它转化为块元素)

        content   设置的内容

    1. <style>
    2. .parent{
    3. border:1px solid #f00;
    4. }
    5. .box{
    6. width:100px;
    7. height:100px;
    8. background:green;
    9. float:left;
    10. }
    11. .clearfix{
    12. content:"";
    13. display:block;
    14. clear:both;
    15. }
    16. /* .clearfix{
    17. *zoom:1;
    18. }
    19. 以上这个是满足低选择器*/
    20. </style>
    21. <divclass="parent clearfix">
    22. <divclass="box"></div>
    23. </div>
    3、其他

        1.给父级添加高度

                有时候不能给父级添加高度的,所以这个方法用不了

        2.inline-block

                用了这个属性,这个元素就没办法居中了。

        3.overflow:hidden;(溢出)

                超出父级的东西直接隐藏,

                如果子级有定位的话,并且这个定位超出了父级的范围,那样的话就看不到了,所以不能加这个命令

        4.空标签

                空标签是没有内容的,但是它的作用是用来清楚浮动的,不符合行为、样式、结构分离的标准

                而且在ie6下标签是一个最小高度19px,解决后也会有2px偏差

        5.br清楚浮动   

    与上面问题一样.       

    二、定位- 相对定位  

      position               定位

       relative             相对定位

      移动的方向        top、right、botto、left

                            

                          特点 

                          1.只加相对定位,不设置元素移动的位置,元素和之前没有变化。

                          2.根据自己原来的位置计算移动距离

                          3.不脱离文档流,元素移走以后,原来的位置还会被保留

                          4.加上相对定位后,原来的元素本身的特征没有发生变化

                          5.提升层级

    1. div{
    2. 100px;
    3. height:100px;
    4. color:#fff;
    5. }
    6. #div1{
    7. background:red;
    8. }
    9. #div2{
    10. background:green;
    11. position:relative;
    12. left:100px;
    13. top:100px;
    14. }
    15. #div3{
    16. background:blue;
    17. }
    18. <divid="div1">div1</div>
    19. <divid="div2">div2</div>
    20. <divid="div3">div3</div>
    div1
    div2
    div3
     
    二、定位- 绝对定位 
        

          position               定位

          absolute            绝对定位

          移动的方向      top、right、botto、left

                           

                          特点 

                          1.完全脱离文档流。

                          2.行内元素支持所有样式(与加上浮动,或则inlin-block的效果是一样的)

                          3.如果父级有定位,那位置会根据父级移动。

                            如果父级没有定位,那位置根据可视区移动。

                           (用到绝对定位的话,都会给父级加一个相对定位)

                          4.提升层级

                          5.触发BFC

    1. body{
    2. position:relative;
    3. }
    4. div{
    5. 200px;
    6. height:200px;
    7. color:#fff;
    8. }
    9. #div1{
    10. background:red;
    11. }
    12. #div2{
    13. background:green;
    14. position:absolute;
    15. left:200px;
    16. top:400px;
    17. }
    18. #div3{
    19. background:blue;
    20. position:absolute;
    21. top:400px;
    22. }
    23. <divid="div1">div1</div>
    24. <divid="div2">div2</div>
    25. <divid="div3">div3</div>
     
    div1
    div2
    div3
     

    二、定位- 固定定位 

     

        position               定位

         fixed                固定定位

        移动的方向     top、right、botto、left

                            

                          特点 

                          1.完全脱离文档流。

                          2.行内元素支持所有样式(与加上浮动,或则inlin-block的效果是一样的)

                          3.相对可视区来定位

                          4.提升层级

                          5.触发BFC

                       注意

                          IE6不支持

    1. .div1{
    2. 100px;
    3. height:100px;
    4. background:red;
    5. position:fixed;
    6. right:0;
    7. bottom:0;
    8. }
    9. <divclass="div1">div1</div>
     
     
                         这样设定后的元素就会一直在在浏览器的右下角,无论如何拉动滚动条都不会改变位置
     

    三、层级

     

     层级大小由顺序来决定的,后面的元素要比前面的元素的层级要高

     有定位的元素层级会比没有定位的元素层级高

     在都有定位的情况下,层级还是取决于书写顺序(在同一个位置层级高得内容会将层级低的遮盖。)

                               z-index              层级

         它的值是数字,数字越大层级越高(在同一个层里)

    1. .box1{
    2. z-index:2;
    3. }
    4. .box2{
    5. 150px;
    6. margin-top:-50px;
    7. background:green;
    8. z-index:5;
    9. }
    10. <divclass="box1">kaivon</div>
    11. <divclass="box2">kaivon2</div>
     
    四、居中显示
                注意:必须要配合绝对定位,要确定好想要居中的元素他的开始定位位置
    1. div{
    2. 300px;
    3. height:300px;
    4. background:green;
    5. position:absolute;
    6. left:50%;
    7. top:50%;
    8. margin-left:-150px;
    9. margin-top:-150px;/*因为是根据元素的边距计算,所以还需减去元素自身的宽高一半*/
    10. /*方法二*/
    11. /*left:0;
    12. right:0;
    13. top:0;
    14. bottom:0;
    15. margin:auto;*/
    16. }
    17. <div></div>
     
    案例
    1. div{
    2. border:1px solid red;
    3. 300px;
    4. height:300px;
    5. position:relative;
    6. resize:both;
    7. overflow: hidden;
    8. /*resize:both; 设置元素的大小可以改变(可以拉动)
    9. 必须配合overflow:auto使用
    10. overflow:auto;如果元素超出父级就出现滚动条*/
    11. }
    12. a{
    13. 100px;
    14. height:100px;
    15. background:green;
    16. text-decoration:none;
    17. position:absolute;
    18. text-align:center;
    19. font:16px/100px "微软雅黑";
    20. }
    21. #a1{
    22. left:10px;
    23. top:10px;
    24. }
    25. #a2{
    26. right:10px;
    27. top:10px;
    28. }
    29. #a3{
    30. /* left:50%;
    31. top:50%;
    32. margin-left:-50px;
    33. margin-top:-50px;*/
    34. left:0;
    35. right:0;
    36. top:0;
    37. bottom:0;
    38. margin:auto;
    39. }
    40. #a4{
    41. left:10px;
    42. bottom:10px;
    43. }
    44. #a5{
    45. right:10px;
    46. bottom:10px;
    47. }
    48. <div>
    49. <ahref="#"id="a1">a1</a>
    50. <ahref="#"id="a2">a2</a>
    51. <ahref="#"id="a3">a3</a>
    52. <ahref="#"id="a4">a4</a>
    53. <ahref="#"id="a5">a5</a>
    54. </div>
     
  • 相关阅读:
    第二阶段团队冲刺07
    第二阶段团队冲刺06
    第二阶段团队冲刺05
    深入浅出设计模式系列 -- UML类图
    Linux、Mac统计文件夹下的文件数目
    控制反转及依赖注入(IoC/DI)概念
    深入理解MySQL优化原理
    git config的全局和本地配置
    Vim命令速查表
    聊聊kafka的工作原理
  • 原文地址:https://www.cnblogs.com/CafeMing/p/6252282.html
Copyright © 2020-2023  润新知