美文网首页
弹性布局-定位

弹性布局-定位

作者: 半瓶不满 | 来源:发表于2018-06-15 16:30 被阅读0次

    使用绝对定位(特指absolute)做自适应布局跟前面两种方式没太大差别,宽度自适应还是在auto和100%上做文章,而位置则由top/bottom/left/right等控制。还是以圣杯布局来举例

    <!DOCTYPE html>
    <html>
        <head>
            <meta charset="utf-8" />
            <title>宽度自适应布局</title>
            <style>
                .wrap {
                    position: relative;
                    background-color: #FBD570;
                    margin-left: 100px;
                    margin-right: 150px;
                    height: 250px;
                }
                .left {
                    position: absolute;
                    top: 0;
                    left: -100px;
                    width: 100px;
                    background: #00f;
                    height: 180px;
                }
                .right {
                    position: absolute;
                    top: 0;
                    right: 0;
                       width: 150px;
                    background: #0f0;
                    height: 200px;
                    margin-right: -150px;
                }
                .center {
                    position: absolute;
                    top: 0;
                    left: 0;
                    background: #B373DA;
                    height: 150px;
                    min-width: 150px;
                    width: 100%;
                }
            </style>
        </head>
        <body>
            <div class="wrap">
                <div class="center">
                    center,可以自适应浏览器宽度,高度固定。
                </div>
                <div class="left">left,宽度高度固定</div>
                <div class="right">right,宽度高度固定</div>
            </div>
        </body>
    </html>
    

    样式图



    父元素为relative,子元素为absolute,这样的话,又会出现跟浮动一样的问题:父对象高度坍塌,子元素不能撑起父对象。原因也跟浮动一样,解决办法的话目前我知道的只有给父对象指定一个确定height值,大家如果有更好的办法,请联系我!

    总结:单纯使用绝对定位进行自适应布局的情况很少,一般绝对定位都用在尺寸固定的元素定位上。而且fixed定位的渲染效率很低,因为它会频繁触发浏览器的重排。

    相关文章

      网友评论

          本文标题:弹性布局-定位

          本文链接:https://www.haomeiwen.com/subject/gpemeftx.html