H5全栈实习day02:浮动、盒子模型、定位、弹性盒子

三角形:用一个正方形div改为小三角形div

方法:画两个对角线,生成四个小三角形,保留其中一个即可。

核心:content没有内容且宽高为0,只需要border边框,把边框设置为透明transparent,想要哪个方向的小三角就显示哪个方向的。

显示下三角形

一、浮动

使用浮动float后该元素就会飘出文档流,不在被父级元素所包含。

浮动会产生一个父级元素塌陷的问题,上课讲解了两种解决方法,结合以前所学知识,目前一共有四种解决父级元素塌陷的问题:

1、增加父级元素高度

2、增加一个空的div标签,清除浮动

3、在父级元素中增加一个overflow:hidden

4、父级元素添加一个伪类after

二、盒子模型

标准盒子模型:(height+width)(content)+padding(内边距)+border(边框)+margin(外边距)

怪异盒子模型:(content+padding+border)(height+width)+margin

标准盒子转怪异盒子:box-sizing:border-box

讲解了如何让div水平居中,通过使用margin:0 auto 即可

盒子的显示和隐藏以及丝滑出现的方法:

三、定位

1、相对定位:positionrelative

特点:

  • 相对于自身进行偏移
  • 原来的位置依然存在,不影响其他元素的排列布局

     2、绝对定位:positionabsolute

特点:

  • 原来的位置不在了(脱离了文档流),影响其他元素的排列布局
  • 如果该元素的父级或者祖先元素存在relative/absolute/fixed 其中任何一种,则相对于最近的元素定位。如果父级或者祖先元素没有定位,则相对于浏览器进行定位。

 重点:

  • 要在父级元素设置定位,子元素才能根据父级元素来定位,并且不能超出父级元素边界。
  • 若不给父级元素设置定位,子元素相对于浏览器定位。

若是给子元素的爷爷元素设置定位,子元素相当于爷爷定位。

     3、固定定位fixed

应用场景:侧边栏永远都固定在一个位置

特点:

  • 始终相当于浏览器进行定位
  • 原来的位置不在了,不影响其他元素的排列布局

四、弹性盒子

弹性盒子:让子元素显示在同一行

三种让多个div显示在同一行的方法

1、 display: inline-block;     有间隙

2、display:flex    不存在高度塌陷问题且无间隙

3、弹性盒子

 容器和项目

容器:使用了弹性盒子的元素称为容器

项目:弹性盒子的子元素

A、弹性盒子的容器属性 

容器属性:

         1.flex-direction  改变主轴方向

                    row   设置水平方向为主轴方向(默认)

                    column  设置垂直方向为主轴方向

         2.justify-content  主轴方向上的对齐方式

                      flex-start  左对齐

                      center    居中

                      flex-end  右对齐

                      space-between   分散对齐

        3.align-items   交叉轴的对齐方式

                      flex-start  顶部对齐

                      center    居中

                      flex-end  底部对齐

主轴和交叉轴

主轴:从左往右的水平方向(可以变为垂直)

交叉轴:从上往下的垂直方向

分散对齐,用的最多的也是分散对齐:

交叉轴对齐方式 ,用的最多的也是水平垂直居中

B、弹性盒子的项目属性

align-self   允许项目在交叉轴上有自己的对齐方式

                      flex-start  顶部对齐

                      center    居中

                      flex-end  底部对齐

实践1:小米商城菜单栏部分

实践2:小米商城手机部分

猜你喜欢

转载自blog.csdn.net/weixin_45947938/article/details/126846418