Css布局系列-经典三列布局

今天给大家介绍经典三列布局和实现原理:

  • 通过浮动(float)进行实现,如果对float不是很清楚可以去看看我上篇介绍的;
  • 通过绝对定位布局;
  • 通过float加margin的负值进行组合实现。

 对三种情况分析:

  1. 第一种通过浮动(float)布局,特别需要注意在定义元素结构的时候要将居中元素放到right元素的后面(container->left-right-center),不能像正常那种思维去定义结构(container ->left-center-right);
 *{margin: 0;padding: 0;}
 html, body{height: 100%;}

 .container, .left, .right, .center{height: 100%;}
 .left{float: left;width: 200px;background-color: #f60;}
 .right{float: right;width: 200px;background-color: #e30;}
 .center{background-color: #fde560;padding: 0 10px 0 10px;margin: 0 200px;}
    <div class="container">
        <div class="left">
        </div>
        <div class="right">
        </div>
        <div class="center">
           float布局。
        </div>
    </div>

2. 第二种在定义的时候必须设置最外层容器position: relative,在定义结构的时候左右合两边都设为绝对定位,且必须设置居中元素的左右边距marign(container ->left-center-right);

*{margin: 0;padding: 0;}
 html, body{height: 100%;}

.container, .left, .right, .center{height: 100%;}
.container{position: relative;}
.left, .right{top: 0;position: absolute;width: 200px;}
.left{left: 0;background-color: #f60;}
.right{right: 0;background-color: #e30;}
.center{background-color: #fde560;padding: 0 10px 0 10px;margin: 0 200px;}
    <div class="container">
        <div class="left">
        </div>
        <div class="center">
            绝对与相对进行组合布局 最外层容器必须设置  position: relative。
        </div>
        <div class="right">
        </div>
    </div>

  

3.  最后一种有一点复杂,利用margin负值加float的实现,大概讲讲他负值的作用,左边上边边距负值会向左和上偏移,右边下边边距负值会导致紧跟着后面元素与其重叠。

*{margin: 0;padding: 0;}
 html, body{height: 100%;}

 .container, .left, .right, .main, .main-body{height: 100%;}
.left, .right{width: 200px;background-color: #f60;float: left;}
.left{margin-left: -100%;}
.right{background-color: #e30;margin-left: -200px;}
.main{float: left;width: 100%;}
.main-body{margin: 0 200px;background-color: rgb(250,250,154);}
 <div class="container">
        <div class="main">
            <div class="main-body">
                float浮动加margin负值组合布局。
            </div>
        </div>
        <div class="left">
        </div>
        <div class="right">
        </div>
    </div>

  

时间: 2024-10-28 23:27:24

Css布局系列-经典三列布局的相关文章

经典三列布局

html代码中,middle部分首先要放在container的最前面,然后是left,right.三列布局,中间宽度自适应,两边定宽.1.[国外]圣杯布局:左中右三列都设置浮动和相对定位,中列宽度100%占满,左右两列都有负边距,左列有左定位数,右列有右定位数.(IE6有问题) <div class="cupContainer"> <div class="middle">中列</div> <div class="l

CSS 经典三列布局

一 圣杯布局 1 html结构 <!DOCTYPE html> <html> <head> <title></title> <link rel="stylesheet" type="text/css" href="css/css.css"> </head> <body> <div class="header">头部<

使用绝对定位进行三列布局

在布局中有一种特殊的情况,当布局中分多个列,并且需要对其中的不部分列进行规定宽度,需要利用绝对定位进行布局. 用三列布局为例,我们规定左列的宽度为200,右列的宽度为300,中间列的宽度自适应,即是整个body宽度除去左右列的宽度. 具体思路:将左右列设为绝对定位,使他们紧贴在左右边.将中间列的margin左右边距设为左右列的宽度.(一般我们为了美观将边距多设10px) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//E

CSS 布局实例系列(三)如何实现一个左右宽度固定,中间自适应的三列布局——也聊聊双飞翼

今天聊聊一个经典的布局实例: 实现一个三列布局,其中左侧和右侧的部分宽度固定,中间部分宽度随浏览器宽度的变化而自适应变化 可能很多朋友已经笑了,这玩意儿通过双飞翼布局就能轻松实现.不过,还请容我在双飞翼之外,循序渐进地介绍一下我们可以如何实现一个三列布局. 1. 首先,使用浮动布局来实现一下 See the Pen float-three-columns by xal821792703 (@honoka) on CodePen. 左侧元素与右侧元素优先渲染,分别向左和向右浮动 中间元素在文档流的

简单的CSS网页布局--三列布局

三列布局其实不难,不过要用到position:absolute这个属性,因为这个属性是基于浏览器而言,左右部分各放在左右侧,空出中间一列来实现三列布局. 1 <!DOCTYPE html> 2 <html> 3 <head lang="en"> 4 <meta charset="UTF-8"> 5 <title>三列自适应</title> 6 <style type="text/

css实现三列布局,左右固定值,中间自适应。

这里主要用到的是position:absolute;及margin属性;代码很简单,一看就明白. <!DOCTYPE html> <html lang="zh_CN"> <head> <meta charset="UTF-8"> <title>三列布局,左右固定值,中间自适应</title> <style type="text/css"> .container{p

div css三列布局效果实例代码

div css三列布局效果实例代码:三列布局在是比较中规中矩的布局之一,大量的网站都有应用,也是初学者必须要掌握的布局方式之一,下面就是一个三列布局的实例代码,仅供参考之用,希望对初学者有一定的帮助,代码实例如下: <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <

CSS 右侧固定宽度 左侧自适应 或者 三列布局 左右固定 中间自适应的问题

一: 右侧固定宽度 左侧自适应  第一种方法:左侧用margin-right,右侧float:right  就可以实现.     HTML代码可以如下写:    <div>        <a href="" target="_blank">我是龙恩</a>    </div> <div>        <a href="" target="_blank">

慕课笔记利用css进行布局【三列布局】

三个div中间自适应,两侧固定大小 <html> <head> <title>三列布局</title> <style type="text/css"> body{margin:0;padding:0;text-align:center} /*三列的布局样式*/ /*position:absolute定位*/ .left2{width:200px;height:500px;background:#f0f;position:abs