css两列布局之基于BFC规则实现

css要实现常见的自适应两列布局的方式方法挺多。

这里讲的是利用设置overflow不为visible时会形成新的BFC来实现。至于什么是BFC,可以搜搜看先,基本都讲的差不多了。等有更多空余时间,专门给讲讲BFC以及实例的东西。就这样吧,上代码:

 1 <!-- 利用BFC的overflow hidden实现两列布局-->
 2 <!DOCTYPE html>
 3 <html lang="en">
 4     <head>
 5         <title>利用BFC规则实现两栏布局</title>
 6         <meta charset="utf8">
 7         <style type="text/css">
 8             * {
 9                 margin: 0;
10                 padding: 0;
11             }
12             .contain {
13                 width: 100%;
14                 height: 100%;
15                 background: grey;
16                 color: #fff;
17             }
18             .contain .left {
19                 float: left;
20                 /*margin-right: 20px;*/
21                 width: 200px;
22                 height: 100%;
23                 word-wrap: break-word; /* 用于纯数字和英文时能够超出时自动换行*/
24                 background: blue
25             }
26             .contain .right {
27                 height: 100%;
28                 overflow: hidden;    /* 让right成为一个BFC*/
29                 word-wrap: break-word; /* 用于纯数字和英文时能够超出时自动换行*/
30                 background: darkblue;
31             }
32         </style>
33     </head>
34     <body>
35         <!-- CSS2.1规范中已经明确提出,设置overflow属性(非visible)能触发块级格式化上下文(Block Formatting Conext, BFC)。 -->
36         <div class="contain">
37             <div class="left">Lorem ipsum dolor sit amet, consectetur adipisicing elit. Officia quis error ea veniam animi quibusdam, nobis repudiandae consectetur sed? Minus architecto cumque perspiciatis saepe rerum non dolorum voluptates similique, consequuntur.</div>
38             <div class="right">right这里的overflow:hidden不是本来的意思(超出容器内容截取掉不显示),而是利用了BFC规则(overflow不为visible时会创建出一个BFC)</div>
39         </div>
40     </body>
41 </html>

注意代码中最长的那行(37行),这里的文本不是英文,是拉丁文,当然不是我手打的这么多。跟大家分享下,在测试时,想输入一些内容又不知道输入什么,怪难看的时候,可以偷懒。输入lorem,然后tab键出来,除了第一句话时固定的,后面的那段时它随机出来的句子。前提是你的编辑器装有emmit插件,Hbuilder,vscode内置有,直接可用,submit text需要去装插件。记事本就肯定是不行的了,这些都是我亲测的。算是一个小干货吧!其他的,注释也差不多写了,本来代码也很简单,就这么些东西,css需要自己多动手去试,去实现出来。这次随笔就到这儿了,忙的时候质量可能不太好,不过现在开始坚持写一些东西了。

还有就是这是左边固定,右边自适应。右边固定,左边自适应相信你也能轻松搞定吧,这都是小事,想起了,提醒下。这个两列自适应不是两列都是自适应的.

最后,欢迎你的分享交流,欢迎留言你的发现!

posted @ 2019-03-18 20:21  changeAlive  阅读(470)  评论(0编辑  收藏  举报