关于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回答

好帮手慕星星

2019-12-11

同学你好,问题解答如下:

1、父容器设置flex布局,子元素就会拥有块元素特性:

http://img.mukewang.com/climg/5df04b0f0998c95b12710372.jpg

所以div或者span标签都是一样的。

2、align-items属性值为center,代表的是元素位于容器的中心(特指元素),所以元素的高度会由内容撑起来,在父容器中心显示,记住这样的效果就好 。

3、交叉轴上是一样的道理。

4、子元素一般是写宽高的,保持一致。

5、flex和inline-flex主要是父盒子显示的区别。例如:

(1)flex布局,父盒子在不设置宽度的情况下,默认是视口宽度:

http://img.mukewang.com/climg/5df04caa09e1db5a19180056.jpg

(2)inline-flex布局,父盒子在不设置宽度的情况下,由内容撑起来:

http://img.mukewang.com/climg/5df04ccf0949d78603450040.jpg

大部分属性效果是一样的,还是要根据项目实现效果决定,但是一般用flex较多,充满父容器。

如果我的回答帮助到了你,欢迎采纳,祝学习愉快~

0

0 学习 · 6815 问题

查看课程