关于flex属性的一些问题
来源:3-12 flex布局-项目的属性
夜魇丶
2019-12-10 19:07:41
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Document</title>
<style>
#main{
width: 220px;
height: 300px;
border: 1px solid black;
display: flex;
/*flex-direction: column;*/
/*align-items: center;*/
/*justify-content: center;*/
}
#main span:nth-child(1){
background-color: orange;
}
#main span:nth-child(2){
background-color: lightblue;
}
#main span:nth-child(3){
background-color: pink;
}
</style>
</head>
<body>
<div id="main">
<span>第一个span1</span>
<span>第一个span22</span>
<span>第一个span333</span>
</div>
</body>
</html>
1. 如果把父元素设置为flex布局,那么子元素是不是就不区分块级元素和行内元素了。(div标签改成span标签,呈现的效果是一样的)。
2. 为什么默认情况下是父容器100%的高度,但是加了居中(align-items:center); 文字居中了,但是高度却改由内容撑开了。
3. 同问题2,如果把主轴改为交叉轴,默认宽度是父容器100%的宽度,加了居中(align-items:center),文字居中,宽度由内容撑开。
4. 在实际工作的时候是要把父容器下面的子元素,宽高都写上吧(比如span{width:100%,height:100%;})不然实际呈现的时候这个宽高会因为居中关系变得不好确定。
5. 我查了一下flex和inline-flex,后者比前者多一个内联块的属性,但我感觉没什么用…请问在实际中,什么情况下比较适合用inline-flex。
辛苦老师解答,关于这部分我查了一些别的资料也没太明白。宽高会莫名其妙变化,该用inline-flex的地方,用flex好像也能达到目的。
1回答
同学你好,问题解答如下:
1、父容器设置flex布局,子元素就会拥有块元素特性:
所以div或者span标签都是一样的。
2、align-items属性值为center,代表的是元素位于容器的中心(特指元素),所以元素的高度会由内容撑起来,在父容器中心显示,记住这样的效果就好 。
3、交叉轴上是一样的道理。
4、子元素一般是写宽高的,保持一致。
5、flex和inline-flex主要是父盒子显示的区别。例如:
(1)flex布局,父盒子在不设置宽度的情况下,默认是视口宽度:
(2)inline-flex布局,父盒子在不设置宽度的情况下,由内容撑起来:
大部分属性效果是一样的,还是要根据项目实现效果决定,但是一般用flex较多,充满父容器。
如果我的回答帮助到了你,欢迎采纳,祝学习愉快~