整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:

如何使用 flex + div 绘制互联网作品?

如何使用 flex + div 绘制互联网作品?

好,本文属于技术类文章,建议有本领域的技术基础者阅读,以便更好地理解。

这篇文章分两个步骤讲解,如下:

第一步:什么是 flex + div 呢?

flex 是CSS的一套布局方案,一个一维布局模型;是Flexible Box的缩写,意思就算“弹性布局”,理解flex概念使用,记住下面两点即可:

  1. flex布局的两根轴线:x轴和y轴(有些会叫主轴与交叉轴、水平线与垂直线,我喜欢用x与y描述更简洁些)。
  2. flex容器和flex子元素(任何一元素标签都可以设置为flex容器,而被设置flex容器包裹在内的子元素,就是flex子元素)。

div 其就是一个普通HTML元素标签,大部分内容都是可以基于这个元素标签封装的,形成一个复用性大,共用性好的新元素标签。

第二步:如何使用 flex + div 来绘制作品,哪些场景的作品可以使用?

首先如何使用,下面我们直接看一个封装好的例子元素标签,给拆解出来讲解如何使用,其他举一反三即可:

图-1-1

这是一个普通货品上架的卡片信息内容,它就是一个flex+div结构绘制,被红线圈出来,都是一个个的flex+div内容布局,外层定义flex容器,内部就是该flex容器子元素内容,这些内容子元素,都flex布局排列x-y轴方向的信息,简单吧!所以几乎大部分的页面内容都可以使用这flex+div方式可以封装你的业务标签组件,以便复用,flex布局元素排列好,设置每个元素的内外边距、样式、字体、颜色这些标签属性,就看到这样一个通用的普通组件标签场景了。

简单吧!这就是一个flex+div绘制互联网作品,商品上架的货品卡片,多个就复用该标签组件形成一个列表展示了。

如下代码标签,就是这个货品使用flex + div方式绘制的,只有你确定了页面内容flex结构层级,即可快速绘制出来:

图-1-2

哪些场景会用到了,网站、小程序、管理系统等这些互联网作品基本都会用它的,按业务需求场景去封装你的作品输出服务。

简单吧!学会flex + div,在你的互联网产品绘制之路,快速便捷的实战,无论是自由原创、还是看图仿制都是可以的,不限制你的想象空间,就像我们画家一样,可以自由创作作品,也可看图,看景创景作品,实际工作是会沟通好场景需求,在去创作,才服务满足顾客需求意向,以更好去交付获得收益。

拜拜!下期再见!

lex布局(Flexible Box Layout)是一种CSS3中的新型布局模式,旨在提供更加灵活和响应式的布局解决方案,以满足现代网页设计的需求。以下是关于Flex布局的详细介绍和示例:

一、Flex布局概述

在传统的布局模式中,元素的排列通常是基于块或行,这使得在某些场景下很难实现灵活的布局。例如,要使元素在容器中均匀分布或控制元素之间的对齐方式,这往往是非常困难的。因此,CSS3引入了Flex布局,以解决这些问题。

Flex布局是由两部分组成的:flex容器(flex container)和flex项目(flex items)。flex容器是包含flex项目的元素,而flex项目是容器中的子元素。

在Flex布局中,flex容器可以设置一系列属性来控制flex项目的布局和对齐方式。这些属性包括:

  1. flex-direction:用于定义主轴的方向,决定了子元素的排列方式。可选值有row(默认值,水平方向)、row-reverse(水平方向,反向排列)、column(垂直方向)和column-reverse(垂直方向,反向排列)。
  2. flex-wrap:用于控制元素是否换行。可选值有nowrap(默认值,不换行)、wrap(换行)和wrap-reverse(反向换行)。
  3. justify-content:用于在主轴上对齐子元素。可选值有flex-start(默认值,起点对齐)、flex-end(终点对齐)、center(居中对齐)、space-between(两端对齐,子元素之间的间距相等)、space-around(子元素两侧的间距相等)和space-evenly(子元素之间的间距和两端的间距相等)。
  4. align-items:用于在交叉轴上对齐子元素。可选值有stretch(默认值,子元素沿交叉轴方向拉伸以填满容器)、flex-start(起点对齐)、flex-end(终点对齐)、center(居中对齐)和baseline(基线对齐)。
  5. align-content:当子元素在交叉轴上有多行时,用于对齐行。可选值与align-items相同。

除了以上属性,还有许多其他属性可以用于控制Flex布局的细节,如flex-grow(用于控制元素的放大比例)、flex-shrink(用于控制元素的缩小比例)和flex-basis(用于设置元素的基本尺寸)。

二、Flex布局示例

下面是一个简单的Flex布局示例,展示了如何创建一个具有均匀分布的元素的容器。

<!DOCTYPE html>
<html>
<head>
<style>
.container {
  display: flex;
  justify-content: space-between;
  align-items: center;
  background-color: lightblue;
  padding: 20px;
}

.item {
  width: 200px;
  height: 100px;
  background-color: lightgreen;
}
</style>
</head>
<body>

<div class="container">
  <div class="item"></div>
  <div class="item"></div>
  <div class="item"></div>
</div>

</body>
</html>

在上面的示例中,我们首先定义了一个名为.container的类,它设置了display: flex;属性,这使得该元素成为一个flex容器。然后,我们使用justify-content: space-between;属性将子元素在主轴上均匀分布。align-items: center;属性将子元素在交叉轴上居中对齐。最后,我们为子元素定义了宽度、高度和背景颜色。

在这个例子中,三个子元素在容器中均匀分布,并且位于交叉轴的中央。通过这个简单的示例,我们可以看到Flex布局可以非常容易地实现灵活的布局和对齐方式。

篇系统介绍了flex的语法及基本知识,如果您还不熟悉flex知识,点击这里先看看《 前端入门——弹性布局(Flex)》。本篇将结合flex基本知识去实现常见的网页布局效果,常见的经典网页布局有:

上下结构,头部高度固定,下部区域高度自适应。

上下结构

html:

<main>
  <header>header</header>
  <section>content</section>
</main>

css:

main{
  width:100%;
  height:100vh;
  display:flex;
  flex-direction: column;
}
main > header{
  height: 100px;
  background: #cdf0fd;
}
main > section{
  flex-grow:1;
}

左右结构,左边宽度固定,右边区域宽度自适应。

左右结构

html:

<main>
  <nav>left nav</nav>
  <section>content</section>
</main>

css:

main{
  width:100%;
  height:100vh;
  display:flex;
}
main > nav{
  width:150px;
  background: #cdf0fd;
}
main > section{
  flex-grow:1;
}

上中下结构,头部和底部高度固定,中间区域高度自适应。

上中下结构

html:

<main>
<header>header</header>
<section>content</section>
<footer>footer</footer>
</main>

css:

main{
  width:100%;
  height:100vh;
  display:flex;
  flex-direction: column;
}
main > header,
main > footer{
    height: 100px;
    background: #cdf0fd;
  }
main > section{
  flex-grow:1;
}

左中右结构,左边和右边宽度固定,中间区域宽度自适应。

左中右结构

html:

<main>
<nav>left nav</nav>
<section>content</section>
<aside>right aside</aside>
</main>

css:

main{
  width:100%;
  height:100vh;
  display:flex;
}
main > nav,
main > aside{
    width:150px;
    background: #cdf0fd;
  }
main > section{
  flex-grow:1;
}

圣杯布局,就是中间区域再嵌套其它结构。

1、上中下结构里,中间区域嵌套左中右结构

圣杯布局1

html:

<main>
 <header>header</header>
<section>
   <!--嵌套左中右结构-->
    <nav>left nav</nav>
    <section>content</section>
    <aside>right aside</aside>
</section>
<footer>footer</footer>
</main>

css:

main{
  width:100%;
  height:100vh;
  display:flex;
  flex-direction: column;
}
main > header,
  main > footer{
    height: 100px;
    background: #cdf0fd;
  }
main > section{
  flex-grow:1;
  display:flex;
}
/*嵌套的左中右结构*/
main > section > nav,
main > section > aside{
    width:150px;
    background: #fdcdcd;
 }
main > section > section{
  width:100%;
  flex-grow:1;
}

2、左中右结构里,中间区域嵌套上中下结构

圣杯布局2

html:

<main>
  <nav>left nav</nav>
  <section>
    <!--嵌套上中下结构-->
      <header>header</header>
      <section>content</section>
      <footer>footer</footer>
  </section>
	<aside>right aside</aside>
</main>

css:

 main{
   width:100%;
   height:100vh;
   display:flex;
 }
main > nav,
main > aside{
    width:150px;
    background: #cdf0fd;
  }
main > section{
  flex-grow:1;
  width:100%;
  display:flex;
  flex-direction: column;
}
/*嵌套的上中下结构*/
main > section > header,
main > section > footer{
    height: 100px;
    background: #fdcdcd;
  }
main > section > section{
  flex-grow:1;
}

9宫格布局

9宫格

html:

<main>
        <section>content 1 </section>
        <section>content 2 </section>
        <section>content 3 </section>
        <section>content 4 </section>
        <section>content 5 </section>
        <section>content 6 </section>
        <section>content 7 </section>
        <section>content 8 </section>
        <section>content 9 </section>
    </main>

css:

 main{
   width:100%;
   height:100vh;
   display:flex;
   flex-wrap: wrap;
 }
main > section{
  width: 30%;
  background:#55ff00;
  margin: 1.5%;
}

总结

以上是常见的经典布局,在这些布局的基础上可以组合、拆分制作各种各样的布局,如果结合position:fixed定位还可以实现头部或侧边栏固定的布局效果。

以上布局使用传统的float、position也可以实现,只是相对来说比较麻烦一些,已不建议使用,所以了解下就可以了。

虽然flex可以满足大部分布局,但是flex并不擅长栅格布局,后面会介绍display:grid(网格布局),网格是一组相交的水平线和垂直线,它定义了网格的列和行。所以使用网格布局能够构建更加复杂的网页设计。

感谢关注,希望能够给你有所帮助,欢迎提出错误,补充。


上篇:前端入门——弹性布局(Flex)

下篇:前端入门 —— 网格布局(Grid)


源码链接: https://pan.baidu.com/s/1bdZM8ZcdU3FdSCp2u0sx8A?pwd=9ub2
提取码: 9ub2