zoukankan      html  css  js  c++  java
  • 左侧固定,右侧自适应的五种布局方式

    页面结构

            <div class="container">
                <div class="sidebar">左侧固定</div>
                <div class="content">右侧自适应啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊</div>
            </div>

    左侧固定100px宽度,右侧自适应屏幕。

    总结了一下,五种方式,预期效果如图,两块内容互不干扰

                      

      一. 左float + 右overflow:hidden(float方式,需要注意container高度撑起问题)

      右侧添加overflow:hidden后,变成了BFC元素,而BFC区域不会和float box重叠。

            .sidebar {
                float:left;
                width:100px;
                background-color: lightpink;
            }
            .content {
                overflow:hidden;
                background-color:lightcoral;
            }

      二. 左float + 右  margin-left:100px

      width默认为auto

      •       如果将100%设置,会超出屏幕区域,如图

                    

      •     如果100%后,再设置overflow:hidden,如图。理解为,生成了BFC元素,margin-left也属于content块,无法和float box共存。

                    

            .sidebar {
                float:left;
                width:100px;
                background-color: lightpink;
            }
    
            .content {
                margin-left:100px;
                background-color:lightcoral;
            }

        在第一种和第二种方法中,只需要将父级块设置为BFC,便能够清除浮动,撑起高度。  

      三. 左 absolute + 右 margin-left:100px + 父级 position:relative(绝对定位左侧无法撑起container高度)

            .sidebar {
                position:absolute;
                left:0;
                top:0;
                width:100px;
                background-color: lightpink;
            }
            .content {
                margin-left:100px;
                background-color:lightcoral;
            }

      四. 左absolute + 右 absolute + 父级 position:relative

       效果如下图,可以看到设置为position:absolute后,由于脱离了文档流,撑不起父级div的高度,因此没有蓝色

                    

        .container {
            position:relative;
            background-color: lightblue;
    
            .sidebar {
                position:absolute;
                left:0;
                top:0;
                width:100px;
                background-color: lightpink;
            }
            .content {
                position:absolute;
                left:100px;
                right:0;
                background-color:lightcoral;
            }
        }

      五. 左 正常文档流 + 右 flex:1+ 父级 display:flex(等高)

      效果如图,会自动等高效果

                

        .container {
            display:flex;
            background-color: lightblue;
    
            .sidebar {
                width:100px;
                background-color: lightpink;
            }
            .content {
                flex:1;
                background-color:lightcoral;
            }
        }

     

  • 相关阅读:
    解释机器学习模型的一些方法(一)——数据可视化
    机器学习模型解释工具-Lime
    Hive SQL 语法学习与实践
    LeetCode 198. 打家劫舍(House Robber)LeetCode 213. 打家劫舍 II(House Robber II)
    LeetCode 148. 排序链表(Sort List)
    LeetCode 18. 四数之和(4Sum)
    LeetCode 12. 整数转罗马数字(Integer to Roman)
    LeetCode 31. 下一个排列(Next Permutation)
    LeetCode 168. Excel表列名称(Excel Sheet Column Title)
    论FPGA建模,与面向对象编程的相似性
  • 原文地址:https://www.cnblogs.com/yoxiniao/p/6070409.html
Copyright © 2011-2022 走看看