zoukankan      html  css  js  c++  java
  • css布局

    <div class="mobile_net_class01_bg">
                        <div class="mobile_net_class01">
                            <div class="mobile_net_class_le fl">
                                <img alt="网络" src="images/mobile_net_img01.gif" />
                            </div>
                            <div class="mobile_net_class_ri fr">
                                <div class="mobile_net_class_ri_title">
                                    <div class="mobile_net_class_ri_title_le fl">
                                        <img src="images/mobile_net_class01.gif" />
                                    </div>
                                    <div class="mobile_net_class_ri_title_ri fl">
                                        <div class="mobile_net_class_ri_title_ri_top">
                                            提供专属手机网站客户端
                                        </div>
                                        <div class="mobile_net_class_ri_title_ri_bot">
                                            与客户零距离接触
                                        </div>
                                    </div>
                                    <div class="clear"></div>
                                </div>
                                <div class="mobile_net_class_ri_con">
                                    <div class="mobile_net_class_ri_con_title">
                                        生成桌面图标 抢占入口
                                    </div>
                                    <div class="mobile_net_class_ri_con_int">
                                        提供手机网站客户端安装包,在用户手机桌面生成企业图标,仅需一次点击就能进入到企业客户端。
                                    </div>
                                    <div class="mobile_net_class_ri_con_title">
                                        定制化欢迎页 强化企业品牌
                                    </div>
                                    <div class="mobile_net_class_ri_con_int">
                                        提供量身定制的展示欢迎页,打开客户端后,首先大图展示欢迎页,提升企业品牌形象。
                                    </div>
                                    <div class="mobile_net_class_ri_con_title">
                                        地图定位 引导客户入店
                                    </div>
                                    <div class="mobile_net_class_ri_con_int">
                                        客户端的地图模块支持LBS(地理位置服务),可调用手机GPS功能进行定位,定位后的路线规划,随时找到当前位置到企业地址的最佳路线。
                                    </div>
                                </div>
                            </div>
                            <div class="clear"></div>
                        </div>
                    </div>
    .fr {
        float: right;
        display: inline;
    }

     

    .fl {
        float: left;
        display: inline;
    }

    .mobile_li_title {
        font-size: 18px;
        font-family: "微软雅黑";
        line-height: 30px;
        font-weight: bold;
        margin-bottom: 10px;
    }
    
    .fl {
        float: left;
        display: inline;
    }

    css布局

    双飞翼布局或者说圣杯布局它们都是三列布局;(一列自适应和两列固定列)。当然,除了三列布局,还有一列布局(自适应居中)、两列布局(一列自适应一列固定列)。

    其他两种都相对来说简单些。就着重说一下三列布局。

    一、双飞翼布局

    中间一部分是自适应宽度,其他两列是固定列大小

    第1行.grid-s5m0e5 是一个布局框的名称,我们为其定义了宽度100%
      (在IE6一不定义100%时,有点小问题,亲们自己可以一试) 第2行.col-main 【主列】:浮动左侧,宽度100%
      (宽度全让它给占了,左右两侧的层该怎么办?) 第3行.col-sub 【子列】:浮动左侧,宽度190,左边界为-100%
      (此处是关键:浮动情况下,负边界值会导致DIV上移,而使用-100%可以确实它移动到最左侧。) 第4行.col-extra 【附加列】:左浮动,宽度190,左边界为-190px
      (道理同上,注意的是,负左边界一定要大于或等于该DIV的宽度,才能靠到上一行去)

    能过上面的CSS设置之后,网页的呈现基本上已经是【子】【主】【附加】的排列了。貌似完成了,可是别高兴得太早,,,DOM中有一个“我是主列”的文字怎么没有了?再次经过DOM的分析发现,原来被.col-sub给挡住了。那么,现在的问题是:【子列】【附加列】的位置对了,但是【主列】会被子列和附加列给挡住,如何正确的给【主列】定位呢?下面是淘宝的做法:

    1、DOM结构的改变:在.col-main下再次添加一个 
    .main-wrap【这就是淘宝的布局中col-main下有一个main-wrap,
    而col-sub下却没有sub-wrap的原因】 2、利用CSS调整.main-wrap的位置。【这里很简单,就是把左右被挡住的部分,
    设置为main-wrap的左 右边界即可】 经过以上两步骤后,DOM结构如下:
    <div class="grid-s5m0e5">
        <div class="col-main">
            <div class="main-wrap">
                我是主列
            </div>
        </div>
        <div class="col-sub">我是子列</div>
        <div class="col-extra">我是附加列</div>
    </div>
    .grid-s5m0e5 { 100%; margin-right:auto; margin-left:auto; }
    .grid-s5m0e5 .col-main { float:left; 100%; min-height:30px; background:#000; }
    .grid-s5m0e5 .col-main .main-wrap {
        margin-left:200px;  /*与col-sub产生10像素距离*/
        margin-right:200px; /*与col-extra产生10像素距离*/
        background:#0f0;
        min-height:30px;
    }
    .col-sub { float:left; 190px; min-height:30px; background:#f00; margin-left:-100%; }
    .col-extra { float:left; 190px; min-height:30px; background:#00f; margin-left:-190px; }

    最终布局

     左右190,中间自动伸缩并与左右保持10个像素的距离。

    这种布局的好处

    一:可以实现主要的内容先加载的优化;

    二:兼容目前所有的主流浏览器,包括IE6在内哦。

    三:不同的布局框,可以通过调整.col-sub、.col-extra、.col-main、.col-main .main-wrap的相关CSS属性即可实现。

    圣杯布局

    设置left和right负的外边距

    我们的目标是让left、main、right依次并排,但是上图中left和right都是位于下一行,这里的技巧就是使用负的margin-left:

    Flex布局

    设置Flex布局之后,子元素的float、clear和vertical-aligin属性将失效

    概念

    采用 Flex 布局的元素,称为 Flex 容器(flex container),简称"容器"。它的所有子元素自动成为容器成员,称为 Flex 项目(flex item),简称"项目"。

     

    容器默认存在两根轴:水平的主轴(main axis)和垂直的交叉轴(cross axis)。主轴的开始位置(与边框的交叉点)叫做main start,结束位置叫做main end;交叉轴的开始位置叫做cross start,结束位置叫做cross end

    项目默认沿主轴排列。单个项目占据的主轴空间叫做main size,占据的交叉轴空间叫做cross size

     1.首先将container块设置为一个Flex容器

    .container{
            display: flex;
            min-height: 130px;
        }

    那么container下属的main、left和right这三个子元素自动成为容器成员,称为 Flex 项目(flex item),简称”项目”。
      
    2.对这三个项目做初始设置

    .main{
        background-color: blue;
    }
    .left{
        background-color: green;
    }
    .right{
        background-color: red;
    }

    项目根据内容进行弹性布局

    3.通过order属性设置排列顺序

      可以看出三个项目的排序方式不一样了,main排在了第一个,要让main在中间,left在左边,可以通过Flex容器下的项目的属性“order”属性来设置:

    .left{
        order: -1;
        background-color: green;
    }

    对于order属性:定义项目的排列顺序,越小越靠前,默认为0

    4.通过项目属性flex-grow设置main的放大比例,将空余的空间用main来填充,使三个项目不满一整行;默认为0,也就是对剩余空间不做处理

    .main{
        flex-grow:1;
        background-color: blue;
    }

    5.通过项目属性flex-basis 设置left和right的固定宽度

    .left{
            order: -1;
            flex-basis: 200px;
            background-color: green;
        }
        .right{
            flex-basis: 300px;
            background-color: red;
        }

     绝对定位

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8">
        <title>实现三栏水平布局之绝对定位布局</title>
        <style type="text/css">
        .container{
            position: relative;
        }
        .main,.right,.left{
            top: 0;
            height: 130px;
        }
        .main{
            margin: 0 300px 0 200px;
            background-color: blue;
        }
        .right{
            position: absolute;
             300px;
            right: 0;
            background-color: red;
        }
        .left{
            position: absolute;
             200px;
            background-color: green;
            left: 0;
        }
        </style>
    </head>
    <body>
    <div class="container"> 
      <div class="main">main</div> 
      <div class="left">left</div> 
      <div class="right">right</div> 
    </div>
    </body>
    </html>
  • 相关阅读:
    Vector Dictionary HashMap
    崩溃java (打印当前类的地址)
    colspan、rowspan的使用
    基础操作
    安装vuex-devtools插件
    在使用Vuex插件进行状态管理的步骤
    运行cnpm run dev出现错误解决办法
    在使用vue开发时,文件路径的引用(给文件起别名)
    下载脚手架vue.cli出现的问题
    什么是闭包?
  • 原文地址:https://www.cnblogs.com/jassin-du/p/9505528.html
Copyright © 2011-2022 走看看