圣杯布局(左右固定,中间只适应)

圣杯布局(左右固定,中间只适应)

原理:margin-left设置负值,中间只适应div设置左右padding值,padding值大小等于左右div的margin值

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>圣杯布局</title>
    <style type="text/css">
        *{margin: 0;padding: 0;}
        body{min-width: 700px;}
        .header,
        .footer{
            border: 1px solid #333;
            background: #ddd;
            text-align: center;
            height: 40px;
            line-height: 40px;
        }
        .left,
        .middle,
        .right{
            position: relative;
            float: left;
            min-height: 130px;
        }
        .container{
            padding:0 220px 0 200px;
            overflow: hidden;
        }
        .left{
            margin-left: -100%;
            left: -200px;
            width: 200px;
            background: #f00;
        }
        .right{
            margin-left: -220px;
            right: -220px;
            width: 220px;
            background: #30a457;
        }
        .middle{
            width: 100%;
            background: #1a5acd;
            word-break: break-all;

        }
        .footer{
            clear: both;
        }
    </style>
</head>
<body>
<div class="header">
    <h4>header</h4>
</div>
<div class="container">
    <div class="middle">
        <h4>middle</h4>
        <p>
            这是页面的主体内容
            这是页面的主体内容
            这是页面的主体内容
            这是页面的主体内容
            这是页面的主体内容
            这是页面的主体内容
            这是页面的主体内容
            这是页面的主体内容
        </p>
    </div>
    <div class="left">
        <h4>left</h4>
        <p>
            这是页面的左边
            这是页面的左边
            这是页面的左边
            这是页面的左边
            这是页面的左边
            这是页面的左边
        </p>
    </div>
    <div class="right">
        <h4>right</h4>
        <p>
            这是页面的右边
            这是页面的右边
            这是页面的右边
            这是页面的右边
        </p>
    </div>
</div>
<div class="footer">
    <h4>footer</h4>
</div>
</body>
</html>
时间: 2024-11-08 00:30:17

圣杯布局(左右固定,中间只适应)的相关文章

【CSS-flex】圣杯布局(Holy Grail Layout)、输入框的布局、悬挂式布局、固定的底栏

1.圣杯布局(Holy Grail Layout) 其指的是一种最常见的网站布局.页面从上到下,分成三个部分:头部(header),躯干(body),尾部(footer).其中躯干又水平分成三栏,从左到右为:导航.主栏.副栏. 2.输入框布局 3.悬挂布局 4.固定的底栏 有时,页面内容太少,无法占满一屏的高度,底栏就会抬高到页面的中间.这时可以采用Flex布局,让底栏总是出现在页面的底部. vh单位:vh等于viewport高度的1/100.例如,如果浏览器的高是900px,1vh求得的值为9

双飞翼布局和圣杯布局解析

今天突然想起了温习一下css布局.之前看双飞翼布局只是粗略的看了一下,大概明白怎么做,但是并没有去延伸一下...还有它的孪生兄弟:圣杯布局.今天仔细的琢磨了一下:突然发现其实内容还不少的样子. 双飞翼布局或者说圣杯布局它们都是三列布局:(一列自适应和两列固定列).当然,除了三列布局,还有一列布局(自适应居中).两列布局(一列自适应一列固定列). 其他两种都相对来说简单些.就着重说一下三列布局. 一.双飞翼布局            先给出效果图:                 其中中间一部分是

圣杯布局(定宽与自适应)

圣杯布局小结 阅读目录 1. 从2个实际的需求说起 2. 圣杯布局的传统实现方法 3. 圣杯布局传统实现方法的一种变体 4. 圣杯布局的纯浮动实现 5. 圣杯布局的flex实现 7. 结束语 圣杯布局,很久之前就听过,但是一直都没详细了解过,最近因为做了一个项目,借鉴了薪人薪事这个公司的产品页面,才第一次用到这种布局方式.于是就花了点时间,测了下它实现常见分栏布局的代码,每段代码都非常简单,但布局效果很完美,比我以前用的方式好用不少.本文是对它实现方式的一些总结,希望可以把这种技术推荐给跟我之前

圣杯布局总结

早两天写过一篇博讲到满屏布局和非满屏布局的情况,其中对于非满屏讲了一点点内容,这次讲下满屏布局的一些内容,就是圣杯布局. 这个网站就是使用了所谓的圣杯布局,它的特点就是网站左边的菜单栏是固定宽度的,而右边的内容区则是不固定宽度的,可以拉伸自适应的,由当前浏览器的宽度决定它的宽度.在网页的布局方法中,有很多种分栏布局方式,而圣杯布局是这么多分栏方式中常见也是常用的一种,因为它可以做到一栏甚至是多栏固定,某一栏宽度自适应,至于具体使用哪种布局方式就看我们的需求. 那么具体的圣杯布局方式通过代码是怎么

CSS布局 -- 圣杯布局 &amp; 双飞翼布局

按照我的理解,其实圣杯布局跟双飞翼布局的实现,目的都是左右两栏固定宽度,中间部分自适应. 但在这里实现起来还是有一些区别的 [圣杯布局] 在这里,实现了左(200px) 右(220px) 宽度固定,中间自适应,container部分高度保持一致. DEMO 稍微说明一下: html代码中  middle部分首先要放在container的最前部分.然后是left,right 1.将三者都 float:left , 再加上一个position:relative (因为相对定位后面会用到) 2.mid

css布局之圣杯布局

三列布局中,左右两列定宽,中间一列自适应是比较常用的一种布局方式.代表性的布局方式有圣杯布局和双飞翼布局. 圣杯布局 下面这些布局都是通过浮动来实现 的,但常常只将三列布局中,左右两列定宽,中间一列自使用看成是圣杯布局.我认为这种观点其实有点狭隘. 单从圣杯布局这个名字来讲,也不是单指三列布局,圣杯并不是三列布局的形象表示,在西方圣杯是指渴求之物.在网页展现时我们渴求之物当然是主内容区域的信息. 圣杯布局就是:将主内容区域首先加载,其次再加载侧边的内容. 先来理解理解一下圣杯布局是如何实现的:

圣杯布局-flex

一.参考文献: 1.Flex 布局教程:语法篇(http://www.ruanyifeng.com/blog/2015/07/flex-grammar.html) 2.Flex 布局教程:实例篇(http://www.ruanyifeng.com/blog/2015/07/flex-examples.html) 二.圣杯布局中用到的属性: 1.盒子属性: (1).flex-direction:用于确定元素的排列顺序 (a).row(默认值):元素以水平方向,从左至右排列. (b).row-rev

三种方式实现圣杯布局

圣杯布局是一种很常见的css布局.要求: 上部和下部各自占领屏幕所有宽度. 上下部之间的部分是一个三栏布局. 三栏布局两侧宽度不变,中间部分自动填充整个区域. 中间部分的高度是三栏中最高的区域的高度. 我会用三种方法来实现圣杯布局,分别是浮动,flexbox以及css grid: HTML内容: <div class="header">这里是头部</div> <div class="container"> <div clas

负边距实现圣杯布局以及列等高

圣杯布局如下图所示, 图一 两边的内容宽度固定,中间栏宽度自适应.html代码如下, <div class="container"> <div class='main'> <p>main</p> <p>主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干内容主干