让一个元素在窗口中消失以及垂直水平居中的方法,对四种布局的理解

614 阅读3分钟

首先谈到让一个元素在窗口中消失的办法:

1.display:none;不占用屏幕空间。

2.visibility:hidden;要与visibility:visible搭配使用,会占用屏幕空间。

3.opcity:0;设置透明度,子元素和文本都会同时隐藏,会占用屏幕空间。

水平垂直居中的方法:

1.行内元素水平垂直居中方法:
行内元素 

 text-align:center;

 line-height:   ; 和父元素同高

2.块级元素

不需要计算:

1.父元素设置display:flex; justify-content:center; align-items:center;

2.父元素设置display:flex;子元素设置:margin:auto;

3.父元素设置相对定位,子元素设置绝对定位 left right bottom top为0 margin:auto; 

需要计算:

4.父元素设置绝对定位 子元素设置绝对定位 left:50%; top:50%; margin-left:-子元素宽度的一半 margin-top:-子元素高度的一半 

5.父元素设置绝对定位 子元素设置绝对定位 left:设置子元素宽度的一半 top:设置子元素高度的一半 

6.父元素设置绝对定位 子元素设置绝对定位 left:calc(50% - 子元素宽度的一半); top:calc(50% - 子元素高度的一半); 

四种布局的理解:

浮动布局:浮动布局不完全脱离文档流( 不对文本元素做遮挡),文本显示不会脱离文档流

不占据屏幕空间, 块级元素能够在一行显示, 可以使行内元素可以设置宽高, 遇到其他浮动元素就停止浮动 遇到父元素边框停止浮动

清除浮动:

1.兄弟级元素 clear left right both 

 2.父子级元素的清除浮动 

 a.给父元素添加一个overflow:hidden; 

 b. div::after{

 content:'';

 display:block;

 clear:both; 

 }

定位布局:

1.静态定位:

静态定位是所有元素的默认定位方式,显示在普通流中。

2.相对定位:

不脱离文档流, 相对于自己原本的位置进行偏移

3.绝对定位:

完全脱离文档流, 会遮挡文本,多个设置了绝对定位的元素会叠加在一起。 

 z-index可以调整拥有定位属性的元素的顺序 0为默认值,值越大,显示越在前 

 如果父元素没有定位属性 那么根据浏览器进行偏移 

 如果父元素有定位属性 那么根据父元素的左上角进行偏移

4.固定定位:

脱离文档流, 根据浏览器继续定位。在网页出现滚动条时,固定定位位置不变,始终保持在网页的固定位置。需要设置:left top right bottom

伸缩盒布局:

父元素 display:flex flex-direction:

 row 默认 

 row-reverse横向反转

 colum行布局

 colum-reverse 行布局反转

 justify-content 指的是子元素在主轴方向上的位置 

 flex-start 开始位置 

 flex-endn 结束位置 

 center 中间位置 

 space-between 均匀分布(第一个元素要在主轴开始的位置,最后一个元素要在主轴结束的位置 )

 space-around 均匀分布 (左右两边留有边距)

 align-items 指的是子元素在交叉轴上的位置 

 flex-start (默认)交叉轴的开始位置

 flex-end交叉轴的结束位置

 center 交叉轴的中间位置

 stretch 子元素伸缩并对齐文本

 baseline 交叉轴的基线位置(文本对齐),子元素不做伸缩

 align-content  多主轴的时候,设置子元素在交叉轴上的位置 

 子元素: flex:占父元素的几等分 也可以为具体的值