弹性布局的属性及使用

 在平时的我们常用的布局类型有以下几种:

  1.浮动+定位

  2.自适应(百分比)

  3.响应式布局

  4.弹性布局(Flex布局)

  优点:兼容性支持所有浏览器(Webkit内核的浏览器,要加上-webkit-),可以随用户的喜好进行调节,可以将任何一个容器指定为Flex布局。

  缺点:因为弹性布局可调节,所以有巨大的可能性,需要花很多的时间进行调整;有些弹性设计要为IE6单独设计样式。

  注意:当我们使用了弹性布局,那么在CSS里的float、clear和vertical-align就会失效。

1.flex-direction属性

  flex-direction决定了容器的方向。

  四个值分别为:row(默认值)从左向右、row-reverse从右向左、column从上到下、column-reverse从下到上。

2.flex-wrap属性

  默认情况下的布局一般在同一行,当设置了flex-wrap属性之后将自动将排列不下的内容进行换行。

  四个值分别为:nowrap(默认值)不换行、wrap向下换行、wrap-reverse向上换行。

3.flex-flow属性

  flex-flow属性是以上两种属性的简写形式,默认值是row nowrap。

4.justify-content属性

  justify-content属性定义了在容器方向上的对齐方式。

  flex-start(默认值):向左对齐。

  flex-end:向右对齐。

  center: 居中对齐。

  space-between:两端对齐,每一个子元素等距离间隔,子元素与容器边框无间隔。

  space-around:每个子元素两侧的间隔相等。子元素之间的间隔比子元素与容器边框的间隔大一倍。

5.align-items属性

  align-items属性定义在垂直容器方向上的对齐方式。

  flex-start:垂直方向的起点对齐。

  flex-end:垂直方向的终点对齐。

  center:垂直方向的中点对齐。

  baseline: 与第一个子元素中文字的基线对齐。

  stretch(默认值):如果子元素没有设置高度或者高度设为auto,那么它将占满整个容器的高度。

6.align-content属性

  align-content属性定义了子元素两种方向上的对齐方式。

  flex-start:当容器方向子元素刚好填满时,与垂直方向的起点对齐。

  flex-end:当容器方向子元素刚好填满时,与垂直方向的终点对齐。

  center:当容器方向子元素刚好填满时,与垂直方向的中点对齐。

  space-between:当容器方向子元素刚好填满时,垂直方向两端对齐,子元素之间的等距离间隔。

  space-around:两个方向两侧的间隔都相等。所以,轴线之间的间隔比轴线与边框的间隔大一倍。

  stretch(默认值):占满整个垂直方向。

  下面就是具有弹性布局容器中子元素的属性

1.order属性

  order属性定义了子元素的排列顺序,数值小的在前。

2.flex-grow属性

  flex-grow属性定义了子元素的放大比例,默认值为0。

  当给所有子元素设置该属性为1,那么将等分所有空间,如果单独给某一个子元素设置n倍,那么该子元素将占据的空间比其他子元素多n倍。

3.flex-shrink属性

  flex-shrink属性定义了子元素的缩小比例,默认值为1。

  给所有子元素设置该属性为1,当空间不足时那么所有子元素将等比例缩小平分所有空间,如果单独给某一个子元素设置0,那么该子元素将在空间不足时不缩小。

4.flex-basis属性

  该属性定义了给子元素分配空间时其占据的空间为多少,可以设置为与其width和height属性一样的值,那么它将被分配固定的空间大小。

5.flex属性

  该属性为flex-growflex-shrink 和 flex-basis的简写。

6.align-self属性

  该属性允许设置过的子元素有与其他子元素不一样的对齐方式,可以覆盖align-items属性。

  auto:默认值,表示默认继承父级的align-items属性。

  flex-start:垂直方向的起点对齐。

  flex-end:垂直方向的终点对齐。

  center:垂直方向的中点对齐。

  baseline: 与第一个子元素中文字的基线对齐。

  stretch(默认值):如果子元素没有设置高度或者高度设为auto,那么它将占满整个容器的高度。

部分实列

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"> 
<title>菜鸟教程(runoob.com)</title> 
<style> 
.flex-container {
    display: -webkit-flex;
    display: flex;
    width: 400px;
    height: 250px;
    background-color: lightgrey;
}

.flex-item {
    background-color: cornflowerblue;
    width: 100px;
    height: 100px;
    margin: 10px;
}
</style>
</head>
<body>

<div class="flex-container">
  <div class="flex-item">flex item 1</div>
  <div class="flex-item">flex item 2</div>
  <div class="flex-item">flex item 3</div>  
</div>

</body>
</html>

CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。

引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐和分配空白空间。

  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
弹性布局(Flexbox)是一种用于创建灵活的布局结构的 CSS 属性。其中,flex 属性是用于定义弹性项(flex item)在弹性容器(flex container)中的大小分配和排列方式的关键属性。 flex 属性有三个值,分别是 flex-grow、flex-shrink 和 flex-basis。这三个值可以单独使用,也可以组合在一起使用。 - flex-grow:定义弹性项在剩余空间中所占的比例。默认值为 0,表示不放大。如果所有的弹性项的 flex-grow 都为 1,则它们会平分剩余空间;如果一个弹性项的 flex-grow 为 2,而其他弹性项的 flex-grow 为 1,则前者会占据两倍的剩余空间。 - flex-shrink:定义弹性项在空间不足时缩小的比例。默认值为 1,表示可以缩小。如果所有的弹性项的 flex-shrink 都为 1,而空间不足,则它们会等比例缩小;如果一个弹性项的 flex-shrink 为 2,而其他弹性项的 flex-shrink 为 1,则前者会相对于后者更快地缩小。 - flex-basis:定义弹性项在分配多余空间之前的初始大小。默认值为 auto,表示由弹性项自身内容决定。可以使用具体的长度值或百分比来指定初始大小。 flex 属性的常见用法是通过以下语法来定义弹性项的大小分配: ```css .item { flex: <flex-grow> <flex-shrink> <flex-basis>; } ``` 例如: ```css .item { flex: 1 1 auto; } ``` 这会将该弹性项的 flex-grow、flex-shrink 和 flex-basis 属性分别设置为 1、1 和 auto,表示它会平分剩余空间,并根据自身内容来决定初始大小。 注意,flex 属性还有其他的取值和使用方式,此处仅介绍了一种常见的用法。弹性布局还包含其他属性和特性,例如 flex-direction、justify-content、align-items 等,可以用来控制弹性容器和弹性项的排列方式和对齐方式。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值