本文介绍: 弹性盒子是一种新类型盒子模型,也有书上称作弹性伸缩布局,旨在提供一个更加有效方式来布置,对齐和分布在容器之间的各项内容,即使它们的大小是未知或者动态变化的。弹性布局的主要思想是让容器能力来改变项目宽度高度,以填满可用空间(主要是为了容纳所有类型显示设备屏幕尺寸)的能力。注意: 弹性容器外及弹性元素内是正常渲染的。……

大家好,我是呆小杰,一名前端爱好者,今天用一篇文章大家认识CSS3弹性盒子

前言

一、CSS3弹性盒子内容

 二、CSS3弹性盒子属性

align-content 属性 

align-items 属性

flex-wrap 属性 

三、使用弹性盒子创建响应式页面

 总结


前言

弹性盒子是一种新类型盒子模型,也有书上称作弹性伸缩布局,旨在提供一个更加有效方式来布置,对齐和分布在容器之间的各项内容,即使它们的大小是未知或者动态变化的。
弹性布局的主要思想是让容器能力来改变项目的宽度和高度,以填满可用空间(主要是为了容纳所有类型显示设备和屏幕尺寸)的能力


正文

一、CSS3弹性盒子内容

弹性盒子由弹性容器(Flex container)和弹性子元素(Flex item)组成。
弹性容器通过设置 display 属性值为 flexinlineflex将其定义为弹性容器
弹性容器包含了一个或多个弹性子元素


注意: 弹性容器外及弹性子元素内是正常渲染的。弹性盒子定义了弹性子元素如何在弹性容器内布局。
弹性子元素通常在弹性盒子一行显示默认情况每个容器只有一行

以下元素展示了弹性子元素在一行内显示,从左到右:

<!DOCTYPE html>
<html>
<head>
<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>

运行结果: 

当然我们可以修改排列方式。
如果我们设置 direction 属性rtl (right-toleft),弹性子元素的排列方式也会改变,页面布局也跟着改变:

body {
    direction: rtl;
}
 
.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;
}

运行结果


 二、CSS3弹性盒子属性

下图列出了在弹性盒子中常用到的属性

aligncontent 属性 

aligncontent 属性用于修改 flex-wrap 属性的行为。类似于 align-items, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐

语法

align-content: flex-start | flex-end | center | space-between | space-around | stretch

各个解析

align-items 属性

align-items 设置或检索弹性盒子元素在侧轴(纵轴)方向上对齐方式。

语法

align-items: flex-start | flex-end | center | baseline | stretch

 各个解析

flex-wrap 属性 

flex-wrap 属性用于指定弹性盒子的子元素换行方式。

语法

flex-wrap: nowrap|wrap|wrap-reverse|initial|inherit;

各个解析


三、使用弹性盒子创建响应页面

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
<style> 
.flex-container {
    display: -webkit-flex;
    display: flex;  
    -webkit-flex-flow: row wrap;
    flex-flow: row wrap;
    font-weight: bold;
    text-align: center;
}

.flex-container > * {
    padding: 10px;
    flex: 1 100%;
}

.main {
    text-align: left;
    background: cornflowerblue;
}

.header {background: coral;}
.footer {background: lightgreen;}
.aside1 {background: moccasin;}
.aside2 {background: violet;}

@media all and (min-width: 600px) {
    .aside { flex: 1 auto; }
}

@media all and (min-width: 800px) {
    .main    { flex: 3 0px; }
    .aside1 { order: 1; } 
    .main    { order: 2; }
    .aside2 { order: 3; }
    .footer  { order: 4; }
}
</style>
</head>
<body>

<div class="flex-container">
  <header class="header">头部</header>
  <article class="main">
    <p>欢迎大家和我一起学习前端知识</p>
  </article>
  <aside class="aside aside1">边栏 1</aside>
  <aside class="aside aside2">边栏 2</aside>
  <footer class="footer">底部</footer>
</div>

</body>
</html>

运行结果:


总结

弹性盒子是 CSS3 的一种新的布局模式
CSS3 弹性盒( Flexible Box 或 flexbox),是一种当页面需要适应不同屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式。
引入弹性盒布局模型的目的是提供一种更加有效的方式来对一个容器中的子元素进行排列、对齐分配空白空间。

原文地址:https://blog.csdn.net/m0_72416767/article/details/125507856

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_44962.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注