css布局:左边固定宽度,右边自适应宽度或右侧固定,左侧自适应三种方法

方法一:浮动布局

这种方法我采用的是左边浮动,右边加上一个margin-left值,让他实现左边固定,右边自适应的布局效果

HTML Markup

<div id="left">Left sidebar</div>
  <div id="content">Main Content</div>

CSS Code

复制代码
<style type="text/css">
            *{
                margin: 0;
                padding: 0;
            }

            #left {
                float: left;
                width: 220px;
                background-color: green;
            }

            #content {
                background-color: orange;
                margin-left: 220px;/*==等于左边栏宽度==*/
            }
        </style>
复制代码

上面这种实现方法最关键之处就是自适应宽度一栏“div#content”的“margin-left”值要等于固定宽度一栏的宽度值,大家可以点击查看上面代码的DEMO

方法二:浮动和负边距实现

这个方法采用的是浮动和负边距来实现左边固定宽度右边自适应宽度的布局效果,大家可以仔细对比一下上面那种实现方法,看看两者有什么区别:

HTML Markup

复制代码
<div id="left">
            Left Sidebar
        </div>
        <div id="content">
            <div id="contentInner">
                Main Content
            </div>
        </div>
复制代码

CSS Code

复制代码
*{
            margin: 0;
            padding: 0;
        }
        #left {
            background-color: green;
            float: left;
            width: 220px;
            margin-right: -100%;
        }
        
        #content {
            float: left;
            width: 100%;
        }
        
        #contentInner {
            margin-left: 220px;/*==等于左边栏宽度值==*/
            background-color: orange;
        }
复制代码

这种方法看上去要稍微麻烦一点,不过也是非常常见的一种方法,大家可以看看他的DEMO效果。感觉一下,和前面的DEMO有什么不同之处。

我在这里就只展示这两种方法,大家肯定还有别的实现方法,我就不在多说了

左侧自适应,右侧200px/

  1. <!-#right必须在#left之上-->
  2. <div id="right"></div>
  3. <div id="left"></div>
  4. 必须注意前后顺序

复制代码
<!DOCTYPE html>
<html>
<head>
<style type="text/css">
                        #left  
                        {  
                                height:100px;  
                                margin-right:200px;  
                                background-color:green;  
                        }  
                        #right  
                        {  
                                height:100px;  
                                width:200px;  
                                float:right;  
                                background-color:red;  
                        }  
</style>
</head>
<body>
              <!-#right必须在#left之上-->
<div id="right"></div>
<div id="left"></div>
</body>
</html>
复制代码

#right在#left之下时,由结果看来,设置float和position:absolute的元素会脱离文档流,其他周围元素会忽视它,而移动自身位置。故浮动或绝对定位的元素只影响位于其后的元素,其前的元素会不受影响。另外,浮动框的移动是基于原始位置左右移动,而不会上下移动,直到遇到另一浮动框的边缘或者包含框。而div正常会占据一整行。

先后顺序也好理解总结为,两列的,浮动的放前面,不然正常div放前面自动占据一行了、

6deb2f9b-4dc5-45c7-aaa7-6db90c8aac70

d7eef950-56c5-45eb-953a-7a6125926531

全新的资料的第三种技术

<!-- 以上代码的关键技术部分可以表述为:将一个宽度为100%的div的外边距(left-margin or right-margin)设置为某个负值,然后将其第一个子div的外边距(与父容器的边距同方向)设置为对应的正值,那么这个div就可以浮动并且自适应浏览器宽度。 -->

第2种方法:左侧同样用margin-right  右侧采用绝对定位 如下代码所示:

    HTML代码如下:

  

复制代码
<div class="bd">

        <div class="bd-left">

            <a href="" target="_blank">我是龙恩</a>

        </div>

        <div class="bd-right">

            <a href="" target="_blank">我是龙恩</a>

        </div>

    </div>
复制代码
CSS代码如下:

.bd{position:relative;}

 .bd-left{height:300px;;margin-right:300px;background:#DDD;}

 .bd-right{width:300px;height:300px;position:absolute;top:0;right:0;background:#AAA;}
关于自适应布局的处理(利用浮动和margin负边距实现)

自适应布局主要是浮动圣杯布局也叫双飞翼布局,主要是利用浮动和margin负边距实现的,希望大家能够很好

的理解下面的几个例子,绝对定位布局也是非常的简单了

右边固定,左边自适应

0ee621cf-4d19-45e6-9a0e-30500afaa63f

ab3b15d5-cb6c-4083-8ee2-73c96cd73b71

0c093c0b-469c-4cb9-a1a9-9ecd13ec3708

c5d90800-6db2-4962-a81a-cbdc07241bef

d6c360f5-952e-4ba8-874b-8919ef1659d1

de36609a-2d67-4fdf-b83e-d34ce029b62c

,左边固定右边自适应

349c90ae-c48f-4df1-9bea-d5fd80d2e32d

当且仅能这样、不太一样

b1f6d89f-b61a-4fa3-83d7-4cbf801b8794

718e4a82-6776-48a4-85ea-4a4922f14d04

b936c896-8726-4cf0-b14d-23d4c139a6ae

猜你喜欢

转载自blog.csdn.net/beichen3997/article/details/80748825
今日推荐