欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 文旅 > 游戏 > 弹性盒模型关键几个点:

弹性盒模型关键几个点:

2024/10/25 1:30:03 来源:https://blog.csdn.net/i8013/article/details/142447950  浏览:    关键词:弹性盒模型关键几个点:

 下面代码保存为文件:style.css

/* 弹性盒模型 */  
.flex-box {  width: 600px;  height: 200px;  border: 2px solid #000; /* 黑色边框 */ margin: 20px; /* 外边距 */  /* 弹性盒模型的关键:justify-content同主轴方向 align-items是交叉轴方向。比如:flex-direction定义为row时 那么align-items控制column即垂直方向;如果flex-direction定义为column时 那么align-items控制row即水平方向;justify-content它始终同主轴方向,也就是flex-direction定义的方向。当flex-direction为row时,主轴是水平方向(从左到右),交叉轴是垂直方向(从上到下)。在这种情况下,justify-content控制的是水平方向上的对齐和分布,而align-items控制的是垂直方向上的对齐。当flex-direction为column时,主轴变为垂直方向(从上到下),交叉轴变为水平方向(从左到右)。此时,justify-content控制的是垂直方向上的对齐和分布,而align-items控制的是水平方向上的对齐(尽管这听起来可能有些反直觉,因为align-items的名称中包含“align”,但它实际上是在控制交叉轴上的对齐)。*/ display: flex; /* 使用Flexbox布局 */  flex-direction: row; /* row,row-reverse,column,column-reverse 子项垂直排列使用column*/justify-content: center;  /*flex-start flex-end center space-between space-evenly */ align-items: center; /*flex-start flex-end center stretch baseline */    
}  /* 设置小框的通用样式 */  
.small-box {  width: 100px;  height: 100px;  margin: 10px; /* 小框之间的间距 */  font-size: 16px; /* 文本大小 */  font-weight: bold; /* 文本加粗 */  text-align: center; /* 文本居中 */  
}  /* 红色小框的样式 */  
.red-box {  background-color: red; /* 红色背景 */  color: white; /* 白色文本 */  
}  /* 蓝色小框的样式 */  
.blue-box {  background-color: blue; /* 蓝色背景 */  color: white; /* 白色文本 */ width: 140px;  height: 140px;  
}

 

再写一个代码保存为:index.html

<!DOCTYPE html>  
<html lang="en">  
<head>  
<meta charset="UTF-8">  
<meta name="viewport" content="width=device-width, initial-scale=1.0">  
<title>Box Example</title>  
<link rel="stylesheet" href="style.css">  
</head>  
<body>  <div class="flex-box"> <div class="small-box red-box">小红框</div>  <div class="small-box blue-box">小蓝框</div>     
</div>  </body>  
</html>

我们把这两个文件放到一起,然后双击这个index.html文件,可以在浏览上看到这个图片:

 

上图水平和垂直居中,因为设置了:

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: row; /*默认*/
    justify-content: center;  /* 控制主轴方向排列对齐 */  
    align-items: center; /* 控制交叉轴方向排列对齐 */  

 

-------------------------------------------------------------

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: row; /*默认*/
    justify-content: center;  /* 控制主轴方向排列对齐 */  
   /* align-items: center; 去掉交叉轴控制 */ 

 -------------------------------------------------------------------------

 

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: row; /*默认*/
    justify-content: flex-end;  /* 控制主轴方向排列对齐 */  
   /* align-items: center; 去掉交叉轴控制 */  

--------------------------------------------------------------------- 

 

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: row; /*默认*/
    justify-content: flex-start;  /*默认*/
   /* align-items: center; 去掉交叉轴控制 */   

 --------------------------------------------------------------------- 

 

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: row; /*默认*/
    justify-content:space-between;  /* 控制主轴方向排列对齐 */  
   /* align-items: center; 去掉交叉轴控制 */    

  --------------------------------------------------------------------- 

 

上图为间距相等的排列,使用space-evenly 

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: row; /*默认*/
    justify-content:space-evenly;  /* 控制主轴方向排列对齐 */  
   /* align-items: center; 去掉交叉轴控制 */     

  --------------------------------------------------------------------- 

 

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: column; /* 子项垂直排列使用column*/
    justify-content: center;  /*flex-start flex-end center space-between space-evenly */ 
    /*align-items: center; /*flex-start flex-end center stretch baseline */   

 ---------------------------------------------------------------------  

 

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: column; /* 子项垂直排列使用column*/
    justify-content: center;  /*flex-start flex-end center space-between space-evenly */ 
    align-items: center; /*flex-start flex-end center stretch baseline */  

 ---------------------------------------------------------------------  

 

最后来一个反序,上图为垂直反序 

    display: flex; /* 使用Flexbox布局 */  
    flex-direction: column-reverse; /* row,row-reverse,column,column-reverse 子项垂直排列使用column*/
    justify-content: center;  /*flex-start flex-end center space-between space-evenly */ 
    align-items: center; /*flex-start flex-end center stretch baseline */   

  ---------------------------------------------------------------------  

总结:

弹性盒模型的关键:justify-content同主轴方向 align-items是交叉轴方向。
    比如:flex-direction定义为row时 那么align-items控制column即垂直方向;
    如果flex-direction定义为column时 那么align-items控制row即水平方向;
    justify-content它始终同主轴方向,也就是flex-direction定义的方向。

    当flex-direction为row时,主轴是水平方向(从左到右),交叉轴是垂直方向(从上到下)。
    在这种情况下,justify-content控制的是水平方向上的对齐和分布,
    而align-items控制的是垂直方向上的对齐。
    当flex-direction为column时,主轴变为垂直方向(从上到下),交叉轴变为水平方向(从左到右)。
    此时,justify-content控制的是垂直方向上的对齐和分布,
    而align-items控制的是水平方向上的对齐(尽管这听起来可能有些反直觉,
    因为align-items的名称中包含“align”,但它实际上是在控制交叉轴上的对齐)。

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com