zoukankan      html  css  js  c++  java
  • css 常见布局实现

    水平居中

    垂直居中

    1.图片水平垂直居中

    • 图片背景大小确定

       margin-left值等于图片所在容器的宽度(imbBoxWidth)减去图片本身宽度(imgWidth)的值的一半  

       margin-top值和margin-left很类似,只是把相对应的宽度值换成高度值

    • 图片大小不固定

       1.  对于容器  display:table-cell vertical-align:middle text-align:center ie6.7不支持 

            display:table-cell 属性指让标签元素以表格单元格的形式呈现,类似于td标签

       2.  添加一个与容器高度相同的标签span,兼容ie6,7

          在图片的容器中创建一个空元素(比如说span),设置span的“display:inline-block;height:100%;vertical-align:middle”。

            IE6-7中空的line-block元素宽度为“0”,在IE6-7下是没有效果的,给span加上“1px”,会给水平居中造成1px的误差。  

    圣杯布局和双飞翼布局

      都是三栏布局,两边盒子宽度固定,中间宽度自适应。中间栏放到文档流前面,保证先行渲染。

      都是三栏全部float:left浮动。

      区别对于中间栏div的内容不被遮挡上,圣杯布局是中间栏在添加相对定位,并配合left和right属性,效果上表现为三栏是单独分开的(如果可以看到空隙的话

      双飞翼布局是在中间栏的div中嵌套一个div,内容写在嵌套的div里,然后对嵌套的div设置margin-left和margin-right,效果上表现为左右两栏在中间栏的上面,中间栏还是100%宽度。

      圣杯布局:用到浮动、负边距、相对定位,不添加额外标签

    <div class="header">Header</div>
    <div class="bd">
        <div class="main">Main</div>
        <div class="left">Left</div>
        <div class="right">Right
        </div>
    </div>
    <div class="footer">Footer</div>

       

     <style>
            body{padding:0;margin:0}
            .header,.footer{width:100%;  background: #666;height:30px;clear:both;}
            .bd{
                padding-left:150px;
                padding-right:190px;
            }
            .left{
                background: #E79F6D;
                width:150px;
                float:left;
                margin-left:-100%;
                position: relative;
                left:-150px;
            }
            .main{
                background: #D6D6D6;
                width:100%;
                float:left;
    
            }
            .right{
                background: #77BBDD;
                width:190px;
                float:left;
                margin-left:-190px;
                position:relative;
                right:-190px;
            }
        </style>

     双飞翼布局

    <div id="hd">header</div> 
      <div id="middle">
        <div id="inside">middle</div>
      </div>
      <div id="left">left</div>
      <div id="right">right</div>
      <div id="footer">footer</div>
    #hd{
        height:50px;
        background: #666;
        text-align: center;
    }
    #middle{
        float:left;
        width:100%;/*左栏上去到第一行*/     
        height:100px;
        background:blue;
    }
    #left{
        float:left;
        width:180px;
        height:100px;
        margin-left:-100%;
        background:#0c9;
    }
    #right{
        float:left;
        width:200px;
        height:100px;
        margin-left:-200px;
        background:#0c9;
    }
    
    /*给内部div添加margin,把内容放到中间栏,其实整个背景还是100%*/ 
    #inside{
        margin:0 200px 0 180px;
        height:100px;
    }
    #footer{  
       clear:both; /*记得清楚浮动*/  
       height:50px;     
       background: #666;    
       text-align: center; 
    } 
  • 相关阅读:
    Welcome to my website
    花生壳
    Gentle.NET Attribute
    发布WebFtp 控件(ASP.NET控件,用以web方式进行文件上下传操作)
    发布数据库连接字符串生成工具
    发布语法加亮控件(SyntaxTextBox)
    .NET中现有的 ORM 工具(转)
    发布Oracle存储过程包c#代码生成工具(CodeRobot)
    ASCII码表
    爱上语法高亮控件ICSharpCode.TextEditor ~o~
  • 原文地址:https://www.cnblogs.com/-cherish/p/6438038.html
Copyright © 2011-2022 走看看