div+css布局

两栏布局

  1. 利用margin
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            .first{overflow: hidden;;margin-top: 50px;color:#fff;}
            .first-left{width: 100px;height: 100px;float:left;background: red}
            .first-right{margin-left: 100px;height: 100px;background: black;word-wrap: break-word;}
        </style>
    </head>
    <body>
    <div class="first">
            <div class="first-left"></div>
            <div class="first-right"></div>
    </div>
    </body>
</html>
  1. 模仿圣杯
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            .second{padding-left: 100px;overflow: hidden;margin-top: 50px;color:#fff;}
            .second-left{width: 100px;height: 100px;float:left;background: red;margin-left:-100%;position: relative;left:-100px;}
            .second-right{float: left;background: black;height: 100px;width: 100%;word-wrap: break-word;}
        </style>
    </head>
    <body>
    <div class="second">
            <div class="second-right"></div>
            <div class="second-left"></div>
    </div>
    </body>
</html>
  1. 利用overflow:hidden
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            .third{overflow: hidden;margin-top: 50px;color:#fff;}
            .third-left{float:left;width: 100px;height: 100px;background: red}
            .third-right{overflow: hidden;background: black;height: 100px;word-wrap: break-word;}
        </style>
    </head>
    <body>
    <div class="third">
            <div class="third-left"></div>
            <div class="third-right"></div>
    </div>
    </body>
</html>

三栏布局

  1. 圣杯布局
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            .sixth{overflow: hidden;margin-top: 50px;color:#fff;padding: 0 100px}
            .sixth-middle{float:left;background: yellow;width: 100%;height: 100px}
            .sixth-left{float:left;background: red;width: 100px;height: 100px;margin-left: -100%;position: relative;left: -100px;}
            .sixth-right{float:right;background: black;height: 100px;width: 100px;margin-left: -100px;position: relative;right:-100px;}
        </style>
    </head>
    <body>
    <div class="sixth">
            <div class="sixth-middle"></div>
            <div class="sixth-left"></div>
            <div class="sixth-right"></div>
    </div>
    </body>
</html>
  1. 双飞翼布局
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            .seventh{overflow: hidden;margin-top: 50px;color:#fff;}
            .seventh-middle{width: 100%;height:100px;background: yellow;float: left}
            .inner{margin-left: 100px;margin-right:100px}
            .seventh-left{width: 100px;height: 100px;float: left;margin-left: -100%;background: red;}
            .seventh-right{width: 100px;height: 100px;float: left;margin-left: -100px;background: black;word-wrap: break-word;}
        </style>
    </head>
    <body>
    <div class="seventh">
            <div class="seventh-middle">
                <div class="inner">

                </div>
            </div>
            <div class="seventh-left">left</div>
            <div class="seventh-right">right</div>
    </div>
    </body>
</html>
  1. 利用flex实现圣杯
<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="utf-8">
        <style>
            .eighth{display: flex;height: 100px}
            .eighth-middle{background: black;flex: 1;color: #fff}
            /* 
        flex:1 == 1 1 auto:剩余空间放大比例(flex-grow)  空间不足缩小比例(flex-shrink)    分配多余空间之前项目占据的主轴空间(flex-basis)
        flex:1指的是:中部区域自由伸缩
        auto指的是项目本来大小,因未给main设置高度,main高度由子元素最高者决定,若子元素高度为0,则main高度为0
        块级元素未主动设置高度或未被子元素撑起高度,浏览器默认为块级元素分配高度为0。
        */
            .eighth-left{order:-1;flex: 0 0 50px;background: red;height: 100px}
            .eighth-right{flex: 0 0 50px;background: yellow;height: 100px}
        </style>
    </head>
    <body>
    <div class="eighth">
            <div class="eighth-middle">123</div>
            <div class="eighth-left"></div>
            <div class="eighth-right"></div>
        </div>
    </body>
</html>

一列定高,一列自适应

//一种是用box-sizing,然后marging
html,
body { height: 100%; padding: 0; margin: 0; }
.outer { height: 100%; padding: 100px 0 0; box-sizing: border-box ; }
.A { height: 100px; margin: -100px 0 0; background: #BBE8F2; }
.B { height: 100%; background: #D9C666; }
<div class="outer">
        <div class="A"></div>
        <div class="B"></div>
</div>
//第二种用boxsizing,然后position
html,
body { height: 100%; padding: 0; margin: 0; }
.outer { height: 100%; padding: 100px 0 0; box-sizing: border-box ; position: relative; }
.A { height: 100px; background: #BBE8F2; position: absolute; top: 0 ; left: 0 ; width: 100%; }
.B { height: 100%; background: #D9C666; }
//relative+absolute
body { height: 100%; padding: 0; margin: 0; }
.outer { height: 100%; position: relative; }
.A { height: 100px; background: #BBE8F2; }
.B { background: #D9C666; width: 100%; position: absolute; top: 100px ; left: 0 ; bottom: 0; }
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你正在学习 CSS 布局吗?是不是还不能完全掌握纯 CSS 布局?通常有两种情况阻碍你的学习: 第一种可能是你还没有理解 CSS 处理页面的原理。在你考虑你的页面整体表现效果前,你应当先考虑内容的语义和结构, 然后再针对语义、结构添加 CSS。这篇文章将告诉你应该怎样把 HTML 结构化。 另一种原因是你对那些非常熟悉的表现层属性(例如:cellpadding,、hspace、align="left"等等)束手无策,不知道该 转换成对应的什么 CSS 语句。当你解决了第一种问题,知道了如何结构化你的 HTML,我再给出一个列表,详细列出原来的表 现属性用什么 CSS 来代替。 结构化 HTML 我们在刚学习网页制作时,总是先考虑怎么设计,考虑那些图片、字体、颜色、以及布局方案。然后我们用 Photoshop 或者 Fireworks 画出来、切割成小图。最后再通过编辑 HTML 将所有设计还原表现在页面上。 如果你希望你的 HTML 页面用 CSS 布局(是 CSS-friendly 的),你需要回头重来,先不考虑“外观”,要先思考你的页面 内容的语义和结构。 外观并不是最重要的。一个结构良好的 HTML 页面可以以任何外观表现出来,CSS Zen Garden 是一个典型的例子。CSS Zen Garden 帮助我们最终认识到 CSS 的强大力量。 HTML 不仅仅只在电脑屏幕上阅读。你用 photoshop 精心设计的画面可能不能显示在 PDA、移动电话和屏幕阅读机上。但 是一个结构良好的 HTML 页面可以通过 CSS 的不同定义,显示在任何地方,任何网络设备上。 开始思考 首先要学习什么是"结构",一些作家也称之为"语义"。这个术语的意思是你需要分析你的内容块,以及每块内容服务的 目的,然后再根据这些内容目的建立起相应的 HTML 结构。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值