ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

css的布局方式,常见的CSS布局类型

2022-08-30 18:30:17  阅读:182  来源: 互联网

标签:浮动 Flex auto 布局 width css margin CSS


常见的单列布局有两种:

header,content 和 footer 等宽的单列布局

header 与 footer 等宽,content 略窄的单列布局

实现第一种方式很简单,可以将 header , content, footer 统一设置相等宽度,然后设置 margin:auto 即可实现居中:

.header{

margin:0 auto;

max-width: 960px;

height:100px;

}

.content{

margin: 0 auto;

max-width: 960px;

height: 400px;

}

.footer{

margin: 0 auto;

max-width: 960px;

height: 100px;

}

  

对于第二种,header 和 footer 可以不用设置宽度,让其充满整个屏幕(默认100%),只需将三者的内容设置同一个 width ,然后在通过 margin:auto 让其内容居中

二、两列自适应布局

两列自适应布局是指一列由内容撑开,另一列撑满剩余宽度的布局方式

实现方式:

float+overflow:hidden

 

Flex 布局

Grid 布局

1. float+overflow:hidden

实现原理:通过设置 overflow 触发 BFC ,而 BFC 不会重叠浮动元素

left
right
注意:上述代码是左侧栏固定,右侧自适应。

2. Flex 布局

Flex 是 Flexible Box 的缩写,意为"弹性布局",用来为盒状模型提供最大的灵活性。任何一个容器都可以指定为 Flex 布局

Flex 布局是2009年W3C提出了一种新布局方案,在现在也得以广泛使用,特别是移动端最优!

Flex 可以简便、完整、响应式地实现各种页面布局

详细了解 Flex 布局请点击:[Flex布局](()

/* html同上 */

.container{

display: flex;

}

.right{

flex: 1;

}

  

只需两行代码即可完成两列自适应布局,是不是很香~

3.Grid 布局

Grid布局,是一个基于网格的二维布局系统,目的是用来优化用户界面设计。

详细了解Grid布局请点击:[Grid布局](()

/* html同上 */

.container{

display: grid;

grid-template-columns: auto 1fr;

grid-gap: 20px;

}

  

三、三栏布局

特征:中间列自适应宽度,旁边两侧固定宽度,实现三栏布局有多种方式:

1.浮动布局

这种布局方式,dom 结构必须是先写浮动部分,然后再中间块,否则右浮动块会掉到下一行。

浮动布局的优点就是比较简单,兼容性也比较好。但浮动布局是有局限性的,浮动元素脱离文档流,要做清除浮动,这个处理不好的话,会带来很多问题,比如父容器高度塌陷等。

HTML代码:




浮动布局
CSS代码:

/* 清除所有标签默认样式 */

*{

margin: 0;

padding: 0;

}

.left{

float: left;

width: 300px;

height: 100px;

background: pink;

}

.right{

float: right;

width: 300px;

height: 100px;

background: red;

}

.center{

margin-left: 300px;

margin-right: 300px;

background-color: lightblue;

}

  

在这里给 .center 类设置左右外边距是因为两侧的浮动元素占300像素,不设置外边距中间内容多就会出现如下情况:

在前面也说了,浮动实现的三栏布局会使元素脱离文档流,所以为了不影响其他元素的显示需要清除浮动:

.main::after{

content:‘’;

display: block;

clear: both;

}

  

2.绝对定位布局

HTML代码:



绝对定位布局

标签:浮动,Flex,auto,布局,width,css,margin,CSS
来源: https://www.cnblogs.com/bkycnd/p/16640430.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有