什么时候我应该考虑使用position来定位元素而不是flex box?
                
             
            
            
                <p><br /></p>
<pre class="brush:php;toolbar:false;"><!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <style>
        #dn {
            width: 400px;
            height: 400px;
            padding: 20px;
            border: 2px solid #cd1313;
        }
        .box1 {
            width: 100%;
            height: 100%;
            display: flex;
            justify-content: center;
            align-items: center;
            text-align: center;
            font-weight: bold;
            color: white;
            font-size: 24px;
            background-color: #000000;
        }
    </style>
</head>
<body>
    <div id="dn" class="boxn">
        Lorem, ipsum dolor sit amet consectetur adipisicing elit. Architecto ducimus repudiandae inventore iste porro distinctio necessitatibus incidunt accusamus facilis obcaecati! hey namen 
        <div id="d1" class="box1">
            Child
        </div>
        Lorem ipsum dolor sit amet consectetur adipisicing elit. Eaque deleniti quibusdam quod praesentium, soluta harum alias aperiam hic voluptatum natus?
    </div>
</body>
</html></pre>
<p>我已经将box1显示为伸缩框。它不仅允许我水平对齐里面的项目(子),还允许我沿着交叉轴垂直对齐项目。然后我问自己,为什么我没有使用位置来居中的文字?那么后果会是什么呢?是因为我们不能在文本上应用位置吗?,如果项目是一个跨度框,我可以在其中应用位置吗?如果是,那么它不会产生问题,因为我们必须使用绝对位置来使它响应boxn。这个问题又长又烦人,但对我来说很重要。</p>            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
            
         
        
        
            
            
            
            
            
         
     
当使用位置时,你必须定义物体每边需要多少像素才能定位它。这不是很灵活。想象一下,你必须测量/计算/尝试不同屏幕尺寸的每个对象需要多少像素,这是可能的,但需要花费大量时间和精力。所以flexbox更容易实现。
有了flexbox,你的内容也会更加一致。我的意思是,它会为你计算你需要多少像素在每一边的对象。这将减少脱靶计算的机会。因此,所有元素都将以相同的方式定位。