从植物大战僵尸谈谈CSS定位布局

简介: 从植物大战僵尸谈谈CSS定位布局

运行效果:

33.png

image.png


步骤1:先把页面搞一搞

首先,我们需要创建一个HTML页面,把场地图片引入进来。

<!DOCTYPE html>
<html>
<head>
    <title></title>
    <style type="text/css">
        body {
            /*设置溢出隐藏,为了没有滚动条*/
            overflow: hidden;
        }
        .bg {
            /*设置背景为一张图片,不重复*/
            background: url(img/background1.jpg) no-repeat;
            /*设置背景图片的尺寸占满div*/
            background-size: 100%;
            width: 1200px;
            height: 500px;
        }
    </style>
</head>
<body>
    <div class="bg">
    </div>
</body>
</html>

效果:

image.png


注释已经写得很清楚了,读者自己看下css的含义即可,不必去深究。


步骤2:相对定位


相对定位就是移动一个标签,根据什么来移动呢?对了,就是根据它原来的位置移动,就这么简单。比如,我现在要移动这块场地,就这样做:

.bg {
    /*设置背景为一张图片,不重复*/
    background: url(img/background1.jpg) no-repeat;
    /*设置背景图片的尺寸占满div*/
    background-size: 100%;
    width: 1200px;
    height: 500px;
    position: relative;/*设置相对定位*/
    top: 80px;
}

可以看到场地被往下移动了80px,top代表顶部距离原来位置的长度,类似的属性还有left,bottom,left。这个步骤只是为了展示,现在请把这一行代码删除吧。

top: 80px;

步骤3:绝对定位

绝对定位的意思,可以简单地这样理解,就是根据某一个相对定位(relative)的标签,从它的左上角顶点开始移动。我们来看案例:

<div class="bg">
    <img class="Peashooter" src="img/Peashooter.gif">
</div>
.bg .Peashooter {
    position: absolute;
    top: 0;
    left: 0;
}

36.png

如图所示,豌豆射手设置了

position: absolute;

因为外层div是相对定位,因此豌豆射手就相对于外层div做绝对定位。然后我们只需要调整topleft,就可以将豌豆射手放到它该去的地方。

37.png

大概是这个位置:

38.png

代码:

.bg .Peashooter {
    position: absolute;
    top: 58px;
    left: 218px;
}

成功啦,好简单哦鼓掌,吧唧吧唧。哈哈哈,学会了吗,这就是绝对定位!

步骤4:浮动布局

所谓浮动布局,就是让一个标签要么左浮动,要么右浮动。让我们重新开一个页面吧。

<div class="wrap">
</div>
.wrap {
    width: 300px;
    height: 100px;
    border:1px solid #666;
}

放入一个豌豆

<div class="wrap">
    <img class="Peashooter" src="img/Peashooter.gif">
</div>

39.png

这种就叫做标准的文档流,img是行内标签,那么放置多个的时候,img也会从左往右依次排序。如果我要让豌豆以浮动的方式靠右浮动,看一下该怎么做?

.Peashooter {
    float: right;
}

40.png

可以看到,豌豆靠右边了。接下来,我们再放一个太阳,不加浮动。

<div class="wrap">
    <img class="Peashooter" src="img/Peashooter.gif">
    <img src="img/Sun.gif">
</div>

41.png

可以看到,太阳是在豌豆的左边的,这就是浮动的好处,不管其他元素怎么排列,右浮动的豌豆就是漂浮在右边。再来说下什么叫做清除浮动?首先,我们把豌豆设置为左浮动,太阳设置为右浮动。

<div class="wrap">
    <img class="Peashooter" src="img/Peashooter.gif">
    <img class="Sun" src="img/Sun.gif">
</div>
.Peashooter {
    float: left;
}
.Sun {
    float: right;
}

42.png

然后,我们再把外层div的高度注释掉:

43.png

44.png

发现,div变成了一条线,这是因为,当一个容器里面所有的元素都浮动了,那么容器的高度就会发生塌陷,解决办法是清除浮动。在最后一个浮动元素后面加上这个:

<div style="clear: both;"></div>

45.png

我们看到,div的高度被里面的元素重新撑起来啦!一般我们会有一个叫做clearfix的类,专门做这个事情的。清除浮动的办法有很多,但是我建议学这个就足够了。我们学的是技术,不是背一本字典。

<div class="clearfix"></div>
.clearfix {
    clear: both;
}
相关文章
|
1月前
|
前端开发 UED 容器
在 CSS 中使用 Flex 布局实现页面自适应时需要注意什么?
【10月更文挑战第22天】在使用 Flex 布局实现页面自适应时,需要对其基本原理和特性有深入的理解,同时结合具体的布局需求和场景,进行细致的调整和优化。通过合理的设置和注意事项的把握,才能实现理想的自适应效果,提升用户体验。还可以根据实际情况进行更深入的探索和实践,以不断提升 Flex 布局的应用能力。
|
26天前
|
前端开发 JavaScript 开发者
掌握 CSS 弹性布局(Flexbox):构建复杂页面布局的高效秘籍与实战案例
CSS弹性布局(Flexbox)是现代网页设计中构建复杂页面布局的高效工具。本文将深入浅出地介绍Flexbox的核心概念、使用技巧及实际应用案例,帮助读者快速掌握这一强大布局方法。
|
1月前
|
前端开发 容器
实现CSS品字布局
【10月更文挑战第27天】
|
2月前
|
前端开发 容器
使用 CSS Grid 布局实现响应式设计
【10月更文挑战第1天】使用 CSS Grid 布局实现响应式设计
61 4
|
2月前
|
前端开发 容器
前端技术分享:利用CSS Grid布局实现响应式设计
【10月更文挑战第1天】前端技术分享:利用CSS Grid布局实现响应式设计
|
2月前
CSS_定位_网页布局总结_元素的显示与隐藏
CSS_定位_网页布局总结_元素的显示与隐藏
26 0
|
3月前
|
前端开发 容器
css布局-弹性布局学习笔记
这篇文章是关于CSS弹性布局的学习笔记,详细介绍了flex容器和元素的相关属性,包括flex-direction、flex-wrap、flex-flow、justify-content、align-items、align-content以及order、flex-grow、flex-shrink、flex-basis、flex和align-self等,解释了这些属性在弹性盒子布局中的作用和用法。
|
3月前
|
前端开发
|
3月前
|
JavaScript 前端开发
网页前端课程设计-【模仿】香港中文大学官网,轮播图及div+css布局,js的dom操作
这篇文章介绍了如何模仿香港中文大学官网进行网页前端课程设计,包括使用div+css布局、js的DOM操作以及实现轮播图等技术细节。