zoukankan      html  css  js  c++  java
  • 三栏固定布局(为栏设定内边距和边框)

    <!DOCTYPE html>
    <html>
    <head>
        <meta charset="utf-8" />
        <title>title</title>
        <link rel="stylesheet" type="text/css" href="./normalize.css">
    <script> 
       (function() {
         if (! 
         /*@cc_on!@*/
         0) return;
         var e = "abbr, article, aside, audio, canvas, datalist, details, dialog, eventsource, figure, footer, header, hgroup, mark, menu, meter, nav, output, progress, section, time, video".split(', ');
         var i= e.length;
         while (i--){
             document.createElement(e[i])
         } 
    })() 
    </script>
        <style type="text/css">
            * {padding:0;}
            #wrapper {width:960px; margin:0 auto; border:1px solid; }
            #wrapper li {list-style-type:none;}
            a{color: #fff; text-decoration: none;}
            nav{ width: 150px; float: left;background: red;}
            article {width:600px;float:left;background:#ffed53;}        
            aside{ float: left; width: 210px; background: blue;}
            header{ background: #f90; }
            footer{ background: #000; clear: both; }        
        </style>
    </head>
    <body>
        <div id="wrapper">
            <header>页头</header>
            <nav>
                <ul>
                    <li><a href="#">无序列表</a></li>
                    <li><a href="#">无序列表</a></li>
                    <li><a href="#">无序列表</a></li>
                    <li><a href="#">无序列表</a></li>
                    <li><a href="#">无序列表</a></li>
                </ul>
            </nav>
            <article>
                    这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素这里是一些文本元素.
            </article>
            <aside>
                <ul>
                    <li><a href="#">第三列导航链接</a></li>
                    <li><a href="#">第三列导航链接</a></li>
                    <li><a href="#">第三列导航链接</a></li>
                    <li><a href="#">第三列导航链接</a></li>
                    <li><a href="#">第三列导航链接</a></li>
                </ul>
            </aside>
            <footer>页脚</footer>
        </div>
    </body>
    </html>
    View Code

    如上代码所示,是一个设定固定宽高的三列布局。这种情况往往需要设置盒子的内外边距。但如果单纯在盒子里添加的话,必定导致总宽度增加,盒子滑移。一般这种情况下有三种解决方法:

    1.从设定的元素宽度中减去添加的水平外边距、边框和内边距的宽度和。(每次有添加都得计算,麻烦)

    2.在容器内部的元素上添加内边距或外边距。(需要添加额外div元素)

    <article>
        <div class="inner">
            <!-- 文本 -->
        </div>
    </article>    

    看,也不过是单单添加一个div而已,然后给它添加个样式

    article .inner {
        margin:10px;
        border:2px solid red;
        padding:20px;
    }

    中间栏的宽度并未因此有什么变化,因为内容区减少的宽度抵消了应用到内部 div 上的外边距、边框和内边距的总宽度。就是说如果布局中的栏是浮动的,而且都设定了宽度,你就根本不要去动它!要动,就把内容放在内部 div 里,动这个 div 。注意:如果容器的上、下边框不可见,内部 div 的上、下外边距会叠加。要是你遇到了这个问题,可以只为容器设定垂直内边距。但要小心一点,别一块儿也添加水平内边距。

    3.使用 CSS3 的 box-sizing 属性切换盒子缩放方式,比如 section {box-sizing:border-box;}。应用 box-sizing 属性后,给 section 添加边框和内边距都不会增大盒子,相反会导致内容变窄。(老浏览器存在兼容问题 IE6和 IE7不支持 box-sizing属性)

    这是最简单的一个办法,只要在三个浮动的栏的CSS规则中分别加上box-sizing:border-box 声明,再给栏添加内边距(和边框)就不会导致盒子的宽度变化了。此时,既不用调整栏宽去抵消增加的内边距,也不用使用内部 div ,添加内边距的结果就是内容收缩。至于 IE6和 IE7不支持 box-sizing的问题,有一个专门解决这个问题的腻子脚本(polyfill),名叫 borderBoxModel.js。你可以使用条件注释(以便只有 IE6 和 IE7 加载)把它添加到 HTML 标记之后、结束的 </body> 标签之前,以保证在加载 DOM之后再执行该脚本:

    <body>
    <!-- HTML 标记 -->
    <!-- 只让 IE8 之前的 IE 加载它 -->
    <!--[if lt IE 8 ]>
    <script src="helpers/borderBoxModel.js"></script>
    <![endif]-->
    <!--[if lt IE 8 ]>
    <script src="helpers/borderBoxModel.js"></script>
    <![endif]-->
    </body>
  • 相关阅读:
    EasyDSS前端界面在页面缩小时内置列表仍需手动刷新的优化
    【解决方案】家庭保姆犯罪案频出,EasyDSS视频监控平台如何确保家政安全?
    EasyDSS现场录视频流合成后出现视频内容部分丢失的问题排查及解决
    TSINGSEE青犀视频基于流媒体技术EasyDSS搭建酒店IPTV直播/点播平台
    EasyDSS视频直播列表页面横向滚动条和纵向滚动条不能同步的问题优化
    【解决方案】电力巡检进入智能化时代,无人机+EasyDSS开启智能巡检新模式
    EasyDSS新内核版本测试删除录像文件后存在残留问题调整优化
    IT常识
    Java面试题+算法案例
    数据库理论概述
  • 原文地址:https://www.cnblogs.com/dxzg/p/6510110.html
Copyright © 2011-2022 走看看