css布局模型

一、流动模型(默认布局)

  1.特征:

    第一点,块状元素都会在所处的包含元素内自上而下按顺序垂直延伸分布,因为在默认状态下,块状元素的宽度都为100%。实际上,块状元素都会以行的形式占据位置。

    第二点,在流动模型下,内联元素都会在所处的包含元素内从左到右水平分布显示。

 

二、浮动模型

div{float:right/left;}

 

三、层模型(定位)

1、绝对定位(position: absolute)

  这条语句的作用将元素从文档中拖出来,然后使用left、right、top、bottom属性相对于其最接近的一个具有定位属性父包含块进行绝对定位。如果不存在这样的包含块,则相对于body元素,即相对于浏览器窗口

代码:

复制代码
div{
    width:200px;
    height:200px;
    border:2px red solid;
    position:absolute;
    left:100px;
    top:50px;
}
<div id="div1">块1</div>
复制代码

效果:

 

2、相对定位(position: relative)

元素在正常文档流中的偏移位置。(即不脱离默认文件流)

相对于以前的位置移动,移动的方向和幅度由left、right、top、bottom属性确定,偏移前的位置保留不动。

代码:

复制代码
#div1{
    width:200px;
    height:200px;
    border:2px red solid;
    position:relative;
    left:100px;
    top:50px;
}

<div id="div1">块2</div>
复制代码

效果:

 

3、固定定位(position: fixed)

与absolute定位类型类似;(脱离默认文件流?)

不随浏览器窗口的滚动条滚动而变化;

固定定位的元素会始终位于浏览器窗口内视图的某个位置,不会受文档流动影响,这与background-attachment:fixed;属性功能相同。

 

四、Relative与Absolute混合应用

关键点在于是否脱离默认文件流;只有position: relative不脱离。

必须遵守下面规范:

1、参照定位的元素必须是相对定位元素的前辈元素:

<div id="box1"><!--参照定位的元素-->
    <div id="box2">相对参照元素进行定位</div><!--相对定位元素-->
</div>

从上面代码可以看出box1是box2的父元素(父元素当然也是前辈元素了)。

2、参照定位的元素必须加入position:relative;

#box1{
    width:200px;
    height:200px;
    position:relative;        
}

3、定位元素加入position:absolute,便可以使用top、bottom、left、right来进行偏移定位了。

#box2{
    position:absolute;
    top:20px;
    left:30px;         
}

这样box2就可以相对于父元素box1定位了(这里注意参照物就可以不是浏览器了,而可以自由设置了)。

 

例子:

复制代码
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>相对参照元素进行定位</title>
<style type="text/css">
div{border:2px red solid;}
#box1{
    width:200px;
    height:200px;
    position:relative;
          
}
#box2{
     position:absolute;
    top:20px;
    left:30px;
          
}
/*下面是任务部分*/
#box3{
    width:200px;
    height:200px;
    position:relative;       
}
#box4{
    width:99%;
     position:absolute;
    bottom:0;
    
}
</style>
</head>

<body>
<div id="box1">
    <div id="box2">相对参照元素进行定位</div>
</div>

<h1>下面是任务部分</h1>
<div id="box3">
    <img src="http://img.mukewang.com/541a7d8a00018cf102000200.jpg">
    <div id="box4">当我还是三年级的学生时是一个害羞的小女生。</div>
</div>
</body>
</html>
复制代码

效果:

posted @   shiweiqianju  阅读(170)  评论(0编辑  收藏  举报
编辑推荐:
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· 单线程的Redis速度为什么快?
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
点击右上角即可分享
微信分享提示