CSS布局知识汇总

本文详细总结了CSS布局技术,包括正常文档流、浮动、清除浮动、块级格式化上下文(BFC)、定位(相对定位、绝对定位、固定定位、sticky定位)、弹性布局(Flex布局)和网格布局。深入讲解了各种布局的特点和应用场景,是前端开发者巩固布局知识的重要参考资料。
摘要由CSDN通过智能技术生成

CSS布局知识汇总:

               CSS布局是前端开发的基础,以下是对布局知识的系统学习和汇总。

1. 正常文档流(Normal Flow)

               在正常的文档流中,写作模式是水平方向,正常流会垂直地一个接一个排列页面的块级元素;若写作模式是垂直方向,正常流会将块级元素水平排列。

    1. 正常文档流的用处

在定义的CSS加载失败,或者是浏览器不支持新特性,在正常文档流的支撑下,页面会保持可阅读的状态下。

    1. 脱离正常文档流

脱离正常文档流,不按照正常文档流的结构显示。

2. 浮动

               脱离文档流的例子,为元素设置float属性,值有left、right,默认值为none。

               当设置了某个元素浮动,文字会环绕浮动元素。如果要设置浮动元素与环绕文字之间的距离,需要设置浮动元素的margin属性值。

  body{

      padding: 20px;

      font: 1em Helvetica Neue,Helvetica,Arial,sans-serif;

    }

    p{

      margin:0 0 1em 0;

    }

    .p1{

      background-color: red

    }

    .container{

      width:500px;

      border: 5px solid rgb(111,41,97);

      border-radius: .5em;

      padding: 10px;

    }

    .item{

      width: 100px;

      height: 100px;

      float:left;

      margin: 20px 20px 20px 20px;

      background-color: blue

    }

  </style>

</head>

<body>

  <div class="container">

    <div class="item"></div>

    <p class="p1">Pea       horseradish azuki bean lettuce avocado asparagus okra. Kohlrabi radish okra azuki bean corn fava bean mustard tigernut jícama green bean celtuce. </p>

    <p>Grape silver beet collard greens avocado quandong fennel gumbo black-eyed pea watercress potato tigernut corn groundnut. Chickweed okra pea winter purslane coriander yarrow sweet pepper radish garlic brussels sprout groundnut summer purslane earthnut pea tomato spring onion azuki bean gourd. Gumbo kakadu plum komatsuna black-eyed pea green bean zucchini gourd winter purslane silver beet rock melon radish asparagus spinach.</p>

  </div>

</body>

2.清除浮动

               对元素使用了浮动,接下来的元素会环绕它,直到元素开始应用正常文档流。避免这种情况,则需要清除浮动,添加clear属性即可。

  .container::after{

      content: "",attr();

      display: table;

      clear:both;

}

2.2 块级格式化上下文(Block Formatting Context )

               清除浮动的另一个方法是在容器内创建BFC。一个BFC完全包裹住了它的内部元素,包括内部的浮动元素,保证浮动元素不超过其底部。为元素设置visible(默认)之外的overflow属性。

               .container{

                  Overflow:auto;

}

此种方法大部分情况下是有效的,但是会带来阴影或非预期的滚动条。使用display:flow-root,可以清除浮动,并且可以避免BFC的负面影响。

.container{

   Display: flow-root;

}

 

 

 

2.3 float遗留作用:创建多栏布局

              

              

3. 定位(position)

               处于正常文档流中,position的属性值为static。通过改变position的属性值,设置一些偏移量来是元素相对于参照点一定的距离。

3.1 相对定位(relative positioning)

               元素具有属性position: relative, 偏移的参照为原先其正常文档流中的位置。可以使用top、bottom、left、right属性来设置相对于正常文档流位置进行移动。

               .item{

    position: relative;

    Bottom: 50px;

}

页面上的元素不会因为该位置变化而受到影响,该元素处于正常文档流中的位置会被保留,因此需要手动处理元素内容覆盖的情况。

3.4 绝对定位(absolute positioning)

               元素设置position: absolute属性可以将其在正常流中移除。该元素原本占据的空间也会被移除。元素的定位会相对于视口容器,除非某个祖先元素也是定位元素(position的值不为static)。

               元素设置了position: absolute,元素会定位在视口的左上角,可以通过left、right、bottom、top偏移量属性将元素移动到想要的位置。

               通常情况下,绝对定位不用来相对于视口的定位,而是相对于容器,则此时该为容器设置position属性值除static以外的值。

               .container{

                    position: relative;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值