CSS布局模型

14 篇文章 1 订阅

一,CSS布局模型

CSS包含三种基本的布局模型

  1. 流动模型
  2. 浮动模型
  3. 层模型

二:流动模型

流动模型,流动(Flow)是默认的网页布局模式。也就是说网页在默认状态下的 HTML 网页元素都是根据流动模型来分布网页内容的。

流动布局模型具有2个比较典型的特征:

  1. 块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。如下代码编辑器中三个块状元素标签(div,h1,p)宽度默认都显示为100%。
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        #box2 {
            width: 300px;
        }
        div, h1, p {
            border: 2px solid red;
        }
    </style>
</head>
<body>
<h1>Stevin三天三夜</h1>
<p>就赶快乐山大佛架构但是开了房国际快递发几个刚看了就</p>
<div id="box1">广东佛山寄过来的房间管理的公开</div>
<div id="box2">国家队就挂了的结果手动广东佛山寄过来的房间管理的公开</div>
</body>

这里写图片描述
2. 在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。(内联元素可不像块状元素这么霸道独占一行)

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
    </style>
</head>
<body>
<a href="www.baidu.com">百度地址</a>
<span>强调</span>
<em>重点</em>
<strong>强调</strong>
</body>

显示效果:

这里写图片描述

三:浮动模型

块状元素都是独占一行,如果现在想让两个块状元素并排显示,设置元素浮动就可以实现。任何元素在默认情况下是不能浮动的,但可以用 CSS 定义为浮动,如 div、p、table、img 等元素都可以被定义为浮动。

<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            border: 2px red solid;
            width: 200px;
            height: 150px;
            /*float: left;*/
            /*float: right;*/
        }
        #div1{float: left;}
        #div2{float: right;}
    </style>
</head>
<body>
<div id="div1">栏目一</div>
<div id="div2">栏目二</div>
</body>

显示效果:

这里写图片描述

四:层模型

层布局模型就像是图像软件PhotoShop中非常流行的图层编辑功能一样,每个图层能够精确定位操作,但在网页设计领域,由于网页大小的活动性,层布局没能受到热捧。

层模型有三种形式:

  1. 绝对定位(position:absolute)
  2. 相对定位(position:relative)
  3. 固定定位(position:fixed)

层模型—绝对定位

如果想为元素设置层模型中的绝对定位,需要设置position:absolute(表示绝对定位),这条语句的作用将元素从文档流中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性的父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口。
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            border: 2px solid red;
            width: 100px;
            height: 100px;
            position: absolute;
            left: 20px;
            top: 50px;
        }
    </style>
</head>
<body>
    <div></div>
</body>
显示效果:

这里写图片描述

层模型—相对定位

如果想为元素设置层模型中的相对定位,需要设置position:relative(表示相对定位),它通过left、right、top、bottom属性确定元素在正常文档流中的偏移位置。相对定位完成的过程是首先按static(float)方式生成一个元素(并且元素像层一样浮动了起来),然后相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            width: 100px;
            height: 150px;
            border: 2px solid rebeccapurple;
            position: relative;
            left: 30px;
            top: 80px;
        }
    </style>
</head>
<body>
<div></div>
</body>
显示效果:

这里写图片描述

层模型—固定定位

fixed:表示固定定位,与absolute定位类型类似,但它的相对移动的坐标是视图(屏幕内的网页窗口)本身。由于视图本身是固定的,它不会随浏览器窗口的滚动条滚动而变化,除非你在屏幕中移动浏览器窗口的屏幕位置,或改变浏览器窗口的显示大小,因此固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            width: 100px;
            height: 150px;
            border: 2px solid chartreuse;
            position: fixed;
            left: 100px;
            top: 50px;
        }
    </style>

</head>
<body>
<div></div>
<p>国会大厦国际快递法规和代理费进口国和对方即可更好地老师讲课更好的立丰国际款到发货更健康的风格回到家顾客更好即可得更好地方规划局快递费更好打飞机酷狗或多附近酷狗或多附近坤哥活动经费扩过或多付军军多过或多付或过多军扩付过或所多付军过或付多多多多功夫大使馆好的晶块返回该领导风格</p>
</body>
显示效果:

这里写图片描述

relative和absolute组合使用

使用position:absolute可以实现被设置元素相对于浏览器(body)设置定位以后,relative和absolute组合使用可以设置相对于其它元素进行定位,需要遵守下面规范:
<div id="box1"><!--参照定位的元素-->
    <div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>
/*box1是box2的父元素(父元素当然也是前辈元素了)*/
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <style>
        div {
            border: 2px solid darkred;
        }
        #box1 {
            width: 150px;
            height: 150px;
            position: relative;
        }
        #box2 {
            position: absolute;
            bottom: 0px;
            left: 20px;
        }
    </style>
</head>
<body>
<div id="box1"><img src="http://avatar.csdn.net/7/3/6/1_feng2qing.jpg">
    <div id="box2">CSDN博客头像</div>
</div>
</body>
显示效果:

这里写图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值