美文网首页
弹性布局-浮动布局

弹性布局-浮动布局

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

浮动布局

浮动布局的核心就是让元素脱离普通流,然后使用width/height,margin/padding将元素定位。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>宽度自适应布局</title>
        <style>
            .wrap {
                background-color: #D66464;
            }
            .clearfix:after {
                content: "";
                clear: both;
                display: block;
            }
            .left {
                float: left;
                width: 100px;
                background: #00f;
                height: 180px;
            }
            .right {
                float: right;
                width: 150px;
                background: #0f0;
                height: 200px;
            }
            .center {
                background: #FFFFFF;
                margin-left: 110px;
                margin-right: 160px;
                height: 150px;
            }
        </style>
    </head>
    <body>
        <div class="wrap clearfix">
            <div class="left">left,宽度固定,高度可固定也可以由内容撑开。</div>
            <div class="right">right,宽度固定,高度可固定也可以由内容撑开。</div>
            <div class="center">center,可以自适应浏览器宽度,高度可固定也可以由内容撑开。</div>
        </div>
    </body>
</html>

效果图


1.jpg

原理非常简单,左右侧边栏定宽并浮动,中部内容区放最后不浮动、默认width:auto并设置相应外边距,让左右侧边栏浮动到上面。注意:子元素设置为浮动之后,父对象的高度就坍塌了,需要设置父对象后的元素清除浮动,这样父对象的高度才能被浮动子元素撑起来了。

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <title>宽度自适应布局</title>
        <style>
            .wrap {
                background-color: #FBD570;
                margin-left: 100px;
                margin-right: 150px;
            }
            .clearfix:after {
                content: "";
                clear: both;
                display: block;
            }
            .left {
                float: left;
                width: 100px;
                background: #00f;
                height: 180px;
                margin-left: calc(-100% - 100px); 
            }
            .right {
                float: right;
                width: 150px;
                background: #0f0;
                height: 200px;
                margin-right: -150px;
            }
            .center {
                background: #B373DA;
                height: 150px;
                float: left;
                width: 100%;
            }
        </style>
    </head>
    <body>
        <div class="wrap clearfix">
            <div class="center">center,可以自适应浏览器宽度,高度可固定也可以由内容撑开。</div>
            <div class="left">left,宽度固定,高度可固定也可以由内容撑开</div>
            <div class="right">right,宽度固定,高度可固定也可以由内容撑开</div>
        </div>
    </body>
</html>

效果图

2.jpg

思路:

1)既然HTML里面要让center放前面,为了让left跑到center前面,那center也必须浮动了,否则因为都是块元素他们会分两行。

2)浮动之后还要让center宽度自适应,那明显width只能100%,然后在父元素中设width:auto,还有两侧margin,其实也就是父对象宽度自适应,center只是继承content的宽度。

3)对left使用负的margin让他们浮动到上方去。

两种发放多少有一点区别,另外就是calc()函数。
总结:使用浮动来进行布局,一个比较大的问题是清除浮动。这个可以使用一个after伪类来清除。更大的问题是浮动性像水一样向上流动,难以把握。在元素较多而且元素高度尺寸不一的情况下,单纯使用浮动只能实现上端对齐,这对于适应多种设备的布局就显得力不从心了。目前的做法是牺牲一部分内容,将元素做成等高排列,从美观上看也当然也是极好的,比参差不齐的排列要美观。

相关文章

  • 弹性布局-浮动布局

    浮动布局 浮动布局的核心就是让元素脱离普通流,然后使用width/height,margin/padding将元素...

  • 布局小结

    布局方式 静态布局 浮动布局 定位布局 自适应布局 流式布局(百分比布局) 响应式布局 弹性布局 悬挂布局 圣杯布...

  • 页面布局

    概述: 页面布局常用的方法有浮动布局、绝对定位布局、表格布局、弹性布局(flex)、网格布局 三栏布局问题高度已知...

  • 《前端面试》必问的5种三栏布局精髓!!!

    一、浮动解决方案 二、弹性盒子布局 三、圣杯布局 四、双飞翼布局 五、网格布局

  • 前端的多列布局解决方案

    前端页面的布局经历了固定布局,表格布局,浮动、定位布局, 弹性布局,网格布局的历史演进,各种布局方式在web发展的...

  • css

    一:布局 浮动:做文字环绕效果 弹性盒:单行或单列布局 网格:多行多列布局 1、弹性盒 详细文档见MDN[http...

  • 响应式布局

    弹性布局 浮动+百分比布局 Flex布局 悬浮+百分比布局 浮动+百分比布局好处 网页内容宽度自适应 多设备都适用...

  • css3设计模式,常用布局

    1.css3常用的布局有多栏布局、多列布局、弹性布局、流式布局、瀑布流布局和响应式布局。2.float浮动布局,a...

  • meta标签

    H4 浮动 流式 定位 普通H5 弹性盒布局 多栏布局 响应式布局 双飞翼布局 images...

  • 【融职培训】Web前端学习 第2章 网页重构15 flex布局

    一、flex布局概述 此前我们制作的所有网页都是基于盒子模型和浮动布局完成的,本节我们一起学习弹性布局(或者叫弹性...

网友评论

      本文标题:弹性布局-浮动布局

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