CCS布局之脱离标准流布局

一、前言

标准流布局

正常我们看到的所有的网页标签都在标准流的布局中,也就是看到的标签都是从上到下,从左到右排列的。

脱离标准流布局

有时候我们想要某个工具栏或者某个自定义的div层悬浮在浏览器的上下左右位置(或者网页的任何位置),这个图层不会随着网页的滚动而移出它固定在屏幕的那个位置范围,这个时候这个div层其实已经脱离了标准流布局了。那么脱离标准流有几种方式呢,两种:

  • float属性
  • position属性搭配left/right/top/bottom属性

二、float属性

float属性让子标签浮动在父标签的左边和右边。有两个取值:left/right,代码样式和效果如下:

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Float浮动-脱离标准流</title>
    <style>
        #main{
            background-color: red;
            width: 500px;
            height: 200px;
            color: white;
        }

        .test1{
            background-color: blue;
            float: left;
            width: 150px;
            height: 60px;
        }

        .test2{
            background-color: orange;
            float: right;
        }

        .test3{
            background-color: purple;
        }
    </style>
</head>
<body>
   <div id="main">
       <div class="test1">浮动父标签左边</div>
       <div class="test2">浮动父标签右边</div>
       <div class="test3">未浮动的子标签</div>
   </div>
</body>
</html>
float浮动

PS:任何标签只要一浮动,类型就会被转为行内-块级标签。

三、position定位属性

position可以让子标签在父标签的任意位置进行定位。默认值为static,要浮动定位时设置子标签为absolute,父标签为relative,简称子绝父相。PS:任何标签只要设置position属性,类型就会被转为行内-块级标签。下面是position的属性:

position属性

  • absolute:绝对定位,自己的位置根据父标签体系中最后一个值为static的父标签进行定位。
  • relative:相对定位,相对于正常位置进行定位。
  • fixed:相对于浏览器窗口进行定位。一般用于让标签粘着浏览器的上下左右位置。
<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Position定位-脱离标准流</title>
    <style>
        *{
            margin:0;
        }
        div.test1{
           background-color: red;
           height: 50px;

           position: fixed;
           top:0;
           width: 50%;

        }

        div.test2{
            margin:100px;
            width: 200px;
            height: 150px;
            background-color: greenyellow;

            position: relative;
        }

        div.test3{
            width: 100px;
            height: 40px;
            background-color: purple;

            position: absolute;
            left: 0;
            bottom:0;
        }
    </style>
</head>
<body>
   <div class="test1">定位到浏览器的顶部</div>

   <div class="test2">
       <div class="test3">position定位</div>
   </div>
</body>
</html>
position定位

四、总结

float属性和position属性区别

  • float属性:只可以浮动在父标签的左边或右边。设置float属性的标签还是跟父标签中的其他标签有关系,比如说,父标签的下一个子标签还是会相对于它的左上角进行定位。
  • position定位:可以在任何位置浮动定位。设置position属性的标签脱离了标准了,其他任何标签不受它影响。

最后,如果有什么问题欢迎向我指出,谢谢。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 14,038评论 1 92
  • 1.CSS基本概念 1.1 CSS的定义 CSS(Cascading Style Sheets)层叠样式表,主要用...
    寥寥十一阅读 2,029评论 0 6
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,350评论 0 1
  • CSS可以分为4部分 1. CSS样式 1. 文字属性 格式:非连写---> font-family:设置文字的字...
    白的吓人阅读 789评论 0 0
  • 之前一个人在外地生活的时候,都是自己做饭,现在回到家,每次都是老妈做完饭菜,端上桌,吃现成的,已经很少会...
    相约断桥边阅读 294评论 0 1

友情链接更多精彩内容