加入收藏

五种 CSS 位置类型以实现更好的布局

2023-08-25 16:08:42 来源:web前端开发

在 Web 开发中,CSS(层叠样式表)用于设置网站样式的设置。为了控制网页上元素的布局,使用CSS的position属性。

因此,在今天这篇文章中,我们将了解 CSS 位置及其类型。


(相关资料图)

我们开始吧!

CSS 位置属性用于控制网页上元素的位置。它定义了元素相对于其包含元素或视口的定位方式。

以下是位置属性的可能值:

1)Static

这是所有 HTML 元素定位的默认值。在此定位中,元素按照文档的正常流程定位,这意味着它们按照 HTML 结构一个接一个地定位。此模式下元素的位置由其边距和填充决定。

将 top、right、bottom 或 left 属性应用于静态定位的元素将不会产生任何效果。z-index 也不适用于静态元素。

语法:

position: static;

举个例子:

                      CSS position property        
Box1
Box2
Box3

CSS:

.box {  height: 100px;  width: 100px;  border-radius: 10px;  margin: 10px;  text-align: center;  color: white;  padding: 10px;}.box1 {  background-color: red;}.box2 {  background-color: blue;  position: static;}.box3 {  background-color: green;}

输出:

在上面的例子中,我们有 3 个盒子,它们都具有相同的高度和宽度。position: static;属性仅应用于第二个框。

但是,第二个框的布局与其他两个框没有区别,因为 static 是所有 HTML 元素的默认值。

2) relative

使用position: relative元素遵循其正常的文档流,但可以从其原始位置移动。这可以使用 top、right、bottom 和 left 属性来实现。

使用此属性,周围的元素不会受到影响,但元素原本处于静态位置的位置将会有空间。

语法:

position: relative;

举个例子:

                      CSS position property        
Box1
Box2
Box3

CSS:

.box {  height: 100px;  width: 100px;  border-radius: 10px;  margin: 10px;  text-align: center;  color: white;  padding: 10px;}.box1 {  background-color: red;}.box2 {  background-color: blue;  position: relative;  top: 20px;  left: 50px;}.box3 {  background-color: green;}

输出:

在上面的示例中,第二个框向下移动 20 像素(使用 top 属性),向右移动 50 像素(使用 left 属性)。移动的框不会影响周围元素(框 1 和框 3)的位置。

3)absolute

使用position:absolute的元素不遵循文档的正常流程。该元素相对于其最近定位的祖先(具有相对、绝对、固定或粘性定位的元素)进行定位。

语法:

position: absolute;

举个例子:

                      CSS position property        
Box1
Box2
Box3

CSS:

.box {  height: 100px;  width: 100px;  border-radius: 10px;  margin: 10px;  text-align: center;  color: white;  padding: 10px;}.container {  border: 3px solid black;  height: 200px;  width: 200px;  position: relative;}.box1 {  background-color: red;}.box2 {  background-color: blue;  position: absolute;  top: 30px;  left: 50px;}.box3 {  background-color: green;}

输出:

在上面的示例中,第二个盒子位于容器内。容器的位置设置为相对,第二个框的位置设置为绝对,并且该框向下移动 30 像素(使用 top 属性),向右移动 50 像素(使用 left 属性)。容器是第二个盒子的祖先。

如果没有祖先怎么办?

然后该元素将相对于视口定位。

例如:

                      CSS position property        
Box1
Box2
Box3

CSS:

.box {  height: 100px;  width: 100px;  border-radius: 10px;  margin: 10px;  text-align: center;  color: white;  padding: 10px;}.box1 {  background-color: red;}.box2 {  background-color: blue;  position: absolute;  top: 30px;  left: 50px;}.box3 {  background-color: green;}

输出:

4)fixed

使用位置:固定元素相对于视口定位,并且即使页面滚动也保持固定。

语法:

position: fixed;

举个例子:

                      CSS position property        
Box1
Box2
Box3

CSS:

.box {  height: 100px;  width: 100px;  border-radius: 10px;  margin: 10px;  text-align: center;  color: white;  padding: 10px;  border: 1px solid black;}.box1 {  background-color: red;}.box2 {  background-color: blue;  position: fixed;  top: 50px;  left: 50px;}.box3 {  background-color: green;}

输出:

在上面的示例中,即使向下滚动页面,第二个框的位置也将是固定的。

有了这个属性,就不像position:relative; 元素原本处于静态位置的位置将不再有空间。

5)sticky

使用position: sticky;元素根据用户的滚动位置进行定位。它的行为类似于相对元素,直到用户滚动到某个位置,之后它相对于其包含元素或视口变得固定。

语法:

position: sticky;

举例:

                      CSS position property        
Box1
Box2
Box3

CSS:

.box {  height: 100px;  width: 100px;  border-radius: 10px;  margin: 10px;  text-align: center;  color: white;  padding: 10px;  border: 1px solid black;}.box1 {  background-color: red;}.box2 {  background-color: blue;  position: sticky;  top: 50px;  left: 50px;}.box3 {  background-color: green;}

在上面的示例中,第二个框将表现得像一个相对元素,直到它到达位置 top: 50px; 滚动时,它将表现得像一个固定元素。

CSS 中的position 属性确定元素相对于其包含元素或视口的位置。

位置属性有以下可能值:

static:这是所有 HTML 元素的默认定位。元素按照文档的正常流程定位并遵循 HTML 结构。relative:具有position:relative的元素遵循其正常的文档流,但可以从其原始位置移动。绝对:使用位置:绝对的元素不遵循文档的正常流程。该元素相对于其最近定位的祖先进行定位。如果没有祖先,则该元素将相对于视口定位。固定:具有位置:固定的元素相对于视口定位,并且即使页面滚动也保持固定。Sticky:具有position:sticky的元素根据用户的滚动位置进行定位。

通过充分掌握位置属性,我们可以在网页中获得所需的布局和交互。

总结

到这里,今天这篇文章想要与您分享的内容就结束了,希望对您有所帮助。

最后,感谢您的阅读。

关键词:

相关新闻

资讯

阿维塔11用上鸿蒙座舱!阿维塔CEO:余承东付出很多
阿维塔11用上鸿蒙座舱!阿维塔CEO:余承东付出很多

阿维塔11用上鸿蒙座舱!阿维塔CEO:余承东付出很多...更多>

价格战残酷洗牌 智能车产业链深水区业绩承压
价格战残酷洗牌 智能车产业链深水区业绩承压

从“国6B”标准实施,燃油车去库存,到新能源车竞争扩......更多>

蚂蚁庄园的周年庆是在哪一天 蚂蚁庄园今日答案8月6日
蚂蚁庄园的周年庆是在哪一天 蚂蚁庄园今日答案8月6日

支付宝蚂蚁庄园8月6日小课堂答案一、蚂蚁庄园的周年庆......更多>

赠金多多!2023年十大正规炒黄金赠金平台排名!
赠金多多!2023年十大正规炒黄金赠金平台排名!

随着人们的个人经济逐渐奔向小康生活,人们心中对理财......更多>

宁乡一项目曾发生事故致3死,住建部再追责:吊销项目总监理注册证书
宁乡一项目曾发生事故致3死,住建部再追责:吊销项目总监理注册证书

根据长沙市人民政府《关于宁乡高新区“12·2”较大车......更多>

桂林三金最新公告:半年报净利润3.8亿元 同比增长25.3%
桂林三金最新公告:半年报净利润3.8亿元 同比增长25.3%

桂林三金披露2023年半年度报告,实现营业收入11 94亿......更多>

邮报:霍伊伦有望周六迎来首秀,曼联希望他能坐上替补席
邮报:霍伊伦有望周六迎来首秀,曼联希望他能坐上替补席

邮报:霍伊伦有望周六迎来首秀,曼联希望他能坐上替补......更多>

七宝蟋蟀的这些小美好,都在记忆里丨闵行情
七宝蟋蟀的这些小美好,都在记忆里丨闵行情

总有那么几条河,因其“水脉合着史脉”,观尽沿河的沧......更多>

海南各校园可以对社会人员开放?省教育厅回复来了→
海南各校园可以对社会人员开放?省教育厅回复来了→

商报全媒体讯(椰网 海拔新闻记者许文玉)近日,有市......更多>

锂电池板块跌幅0.17% 中贝通信涨9.81%居首
锂电池板块跌幅0.17% 中贝通信涨9.81%居首

锂电池板块跌幅0 17%中贝通信涨9 81%居首...更多>

关注

知乎今年二季度营收10.44亿元
知乎今年二季度营收10.44亿元
8月23日,知乎发布截至2023年6月30日未经审计的季度财... 更多>
知乎今年二季度营收10.44亿元
8月23日,知乎发布截至2023年6月30日未经审计的季度财... 更多>
中小学生迎来好消息,学生的安全终于有保障了,已有地区开始实行
中小学生迎来好消息,学生的安全终于有保障了,已有地... 更多>
工信部:1-7月有色金属行业工业增加值同比增长5.9%
工信部:1-7月有色金属行业工业增加值同比增长5 9%--... 更多>
重庆气矿大竹作业区传达学习公司2023年年中干部会议精神
  8月22日,大竹作业区组织召开专题会议,传达学习... 更多>
杭州亚运会火炬传递将于9月8日在杭州启动
人民网杭州8月24日电(康梦琦)杭州亚运会将于2023年9月... 更多>
【清廉黄龙】瓦子街镇:警示教育筑防线 廉洁意识入人心
“通过观看警示教育片,我深刻认识到腐败对我们党、对... 更多>
预计中国DaaS市场将在2025年突破千亿规模
近日,凌雄研究院发布《2023年中国DaaS行业市场需求洞... 更多>
成都热门打卡地远洋太古里正式更名“成都太古里”
近日,太古地产宣布将旗下位于成都的零售主导综合发展... 更多>
孙歆亚(关于孙歆亚简述)
,你们好,今天0471房产来聊聊一篇歆亚,歆亚简述的文... 更多>
功能齐全!松江这个居民区的老年活动室开放啦
“跳舞、唱歌终于有室内场所了!”位于洞泾镇倪家墩路... 更多>
马斯克试驾Cybertruck:难度极大 需5年才能交付
特斯拉首席执行官埃隆·马斯克近日表示,他已在德州的... 更多>
8000多买的电脑用了一周我觉得真值!
大一暑假本来计划出去玩,但是看着目的地40℃的高温属... 更多>