前端学习第四天

笔记仅供参考和复习,b站学习视频总结的,纯干货,具体代码自己实践操作

一、CSS盒子模型

所有HTML元素可以看作盒子,CSS盒模型本质上是一个盒子,它包括:

外边距(margin)、边框(border)、内边距(padding)、实际内容(content)

 外边距:这个盒子与外部的距离

边框:边框大小

内边距:内容与边框之间的距离

div{
    padding: 50px 10px;

}

 第一个值是上下,第二个值是左右;

二、弹性盒子模型

定义

弹性盒子是CSS3的一种新的布局模式,为了更好的布局;

内容

弹性盒子由弹性容器和弹性子元素组成

弹性容器通过设置display属性的值为flex,将其定义为弹性容器

弹性容器内包含了一个或多个弹性子元素,主要针对于一个大元素中有很多子元素,对子元素进行设置;

<div class="flex-container">
    <div class="flex-item">flex item 1</div>
    <div class="flex-item">flex item 2</div>
    <div class="flex-item">flex item 3</div>
</div>

<style>
    .flex-container{
        display: flex;
        width: 400px;
        height: 250px;
        background-color: grey;
    }
    .flex-item{
        width: 100px;
        height: 50px;
        background-color: blue;
    }
</style>

display属性

display:flex 开启弹性盒,设置后子元素默认水平排列

flex-direction属性 

指定弹性子元素在父容器中的位置 

flex-direction:row|row-reverse|column|column-reverse

  1. row:横向从左到右排列(左对齐),默认方式
  2. row-reverse:反转横向排列(右对齐,从后往前排,最后一项排在最前面)
  3. column:纵向排列
  4. column-reverse:反转纵向排列,从后往前排 

  .flex-container{
        display: flex;
        width: 400px;
        height: 250px;
        background-color: grey;
        flex-direction: row-reverse;
    }

 justify-content属性

应用在弹性容器上,把弹性项沿着弹性容器的主轴线对齐

justify-content:flex-start|flex-end|center

  1. flex-start:弹性项目向行头紧挨着填充。默认值,居上摆放
  2. flex-end:弹性项目向行尾紧挨着填充。居下摆放
  3. center:弹性项目居中紧挨着填充。(如果剩余的自由空间是负的,则弹性项目将在两个方向上同时溢出)

align- items属性

设置或检索弹性盒子元素在纵轴方向上的对齐方式(水平方向上居左、居右、居中)

align-items:flex-start|flex-end|center 

让一个小盒子在一个大盒子中居中,要设置的属性:

.container{

        dispaly: flex;

        justify-content: center;

        align-items: center;

子元素上的属性

flex-grow/flex

根据弹性盒子元素所设置的权重作为比率来分配剩余空间

默认为0,设置该属性的数字越大,占用的空间就越大,则设置的宽高不起作用

 三、浮动

定义元素在哪个方向浮动,任何元素都可以浮动,浮动以后脱离文档流

float:left|right

元素向左浮动

脱离文档流之后,元素相当于在页面上面增加一个浮层来放置内容,即有两层页面

当容器不足时,会在下一行摆放 

浮动和弹性的区别

  1. 对父元素:
    1. 弹性:父元素会自动调整大小,使子元素仍在父元素盒子中;
    2. 浮动:会脱离文档流,向下摆放,父元素不能调整,影响整体布局;
  2. 对子元素:
    1. 弹性:提供多种属性和工具帮助摆放;
    2. 浮动:实现等距分隔或等距环绕需手动计算并设置每个元素的外边距;
  3. 清除浮动:
    1. 浮动:由于浮动元素会脱离文档流,因此在使用浮动布局时需要特别注意清除浮动的影响。常见的清除浮动方法包括使用空标签清除法、父元素设置overflow属性、使用伪元素清除法等。
    2. 弹性布局:由于弹性布局对父元素没有不良影响,因此不需要进行额外的清除浮动操作。

 弹性布局适用于复杂的页面布局,浮动布局则更适用简单的文本环绕 

四、清除浮动

浮动副作用

当元素设置float浮动后,该元素就会脱离文档流并向左/向右浮动

1.浮动元素会造成父元素高度塌陷

2.后续元素会受到影响

清除浮动

当父元素出现塌陷时,必须清除副作用:

  1. 父元素设置高度
  2. 受影响的元素增加clear属性
  3. overflow清除浮动
  4. 伪对象方式 

父元素设置高度

给父元素设置高度,撑开元素本身大小

受影响的元素增加clear属性

clear:left|right|both

清除左或右浮动 

overflow清除浮动(最广泛)

如果有父级塌陷,并且同级元素也收到影响,可以使用overflow清除浮动

这种情况下,父布局不能设置高度,在父级标签样式里加:overflow:hidden;

伪对象方式 

如果有父级塌陷,并且同级元素也收到影响,还可以使用伪对象方式

为父标签添加伪类after,设置空的内容,并且使用clear:both;

这种情况下,父布局不能设置高度

.container::after{
    content:"";
    display: block;
    clear: both;
}

五、定位

position属性指定了元素的定位类型

描述
relative相对定位
absolute绝对定位
fixed固定定位

其中,绝对定位和固定定位会脱离文档流

设置定位之后,可用left、top、bottom、right调整位置,相对定位和绝对定位是相对于具有定位的父级元素进行位置调整,如果父级元素不存在定位,则继续向上逐级寻找,直到顶层文档。

z-index

该属性设置元素的堆叠顺序,拥有更高堆叠顺序的元素总是会处于堆叠顺序较低的元素的前面。

相对定位和绝对定位的区别

定义

  • 相对定位:相对于它本身所在的文档流的位置进行定位,不会脱离文档流,定位前的位置仍然保留。当元素设置position:absolute、float:left、float:right中任意一个时,都会让元素以display:inline-block的方式显示(特点是:可以设置长宽,默认宽度不占满父元素)。
  • 绝对定位:相对于它的祖先结点进行定位,会脱离文档流,文档不会保留其定位前的位置。

口诀

       子绝父相

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值