Firefox CSS 开发人员工具提供了令人惊叹的注释,使您作为开发人员的工作更轻松。
只需查看 HTML,您就可以看到哪些元素溢出并采取必要的措施来修复它。此外,您可以查看使用 flexbox 和 CSS-grid 布局的元素。
在网站的视觉方面工作时会产生很大的不同。它使事情变得整洁且易于修复。
在 CSS3 中的 CSS flexbox 出现之前,布局网页是一项艰巨的任务。开发人员需要数百行代码来设计一个简单的布局。CSS flexbox 让我们的生活变得轻松。现在只需几行代码,我们甚至可以布局复杂的布局。flexbox 被设计用来布置一维布局模型。使用 CSS flexbox,您可以用几行代码设计一维布局。Flexbox 提供具有强大对齐功能的项目之间的空间分配。它还提供了一种简单干净的方式来在 flex 容器中排列项目。Flexbox 使布局具有响应性和移动友好性。它对于创建小规模布局很有用。第 1 步:创建一个 flex container。为了使 flex container成为父容器,我们将 display 属性设置为 flex。.container { display: flex; }
将flex-container 的flex-direction:属性设置为1。flex-direction 属性改变 flexbox 的方向。默认情况下,它设置为row。但是我们可以把它改成一列,把弹性项目放在一列中。我们还可以将 flex-direction 属性设置为 column-reverse 和 row-reverse。这颠倒了弹性项目的顺序。.container { display: flex; flex-direction: row; // column, row-reverse, column-reverse }
flex-wrap 属性可以有三个值 wrap、nowrap 和 wrap-reverse。wrap 值弹性项目应在必要时进行包装,而 nowrap 值弹性项目不应包装。如果没有值,nowrap 也是 flex-wrap 的默认值。wrap-reverse 值弹性项目应该以相反的顺序换行。.container { display: flex; flex-direction: row; flex-wrap: wrap; // nowrap, wrap-reverse }
简单来说,flex-flow 只是用于设置 flex-direction 和 flex-wrap 属性的伞形或简写属性。.container { display: flex; flex-flow: row wrap; }
justify-content 属性用于在水平轴上对齐弹性项目。.container { display: flex; flex-direction: row; flex-wrap: nowrap; justify-content: flex-start; // center, flex-end, space-between, space-around }
justify-content 属性可以具有下面给出的五个值之一。flex-start 值与 flex 容器开始处的项目对齐。这是 justify-content 属性的默认值。center 值将项目对齐在 flex 容器的中心flex-end 值与 flex-start 相反。它在弹性容器的末端对齐弹性项目。space-between 值仅在弹性项目之间添加空间,而不是分别在个和最后一个元素之前或结尾。space-around 值在弹性项目之间、结尾和之后添加空间。align-items 属性用于在 y 轴上对齐弹性项目。它采用下面给出的五个值之一。拉伸值拉伸弹性项目以填充弹性容器。如果未其他值,则这是 align-items 属性的默认值。align-content 属性用于对齐 flex 容器中的行。它可以有以下六个值。center 值将所有行居中在 flex 容器的中心。flex-start 值对齐 flex-container 开头的所有行flex-end 值对齐 flex-container 末尾的所有行space-between 分配 flex-rows 之间的可用空间,但不会在行的开头和最后一行之后添加空间。space-around 值在行之前和最后一行之后添加空间,并在行之间分配剩余空间。这些是用于 flex 容器的直接子级的属性。此外,flex 容器的直接子项会自动成为 flex 项。1) order
顾名思义,顺序是弹性项目在弹性容器中显示的顺序。它覆盖 HTML 顺序。order 的默认值为 0。
order 的值小于 0 表示 order 小于 1 的元素将显示在每个其他元素之前。使用 flex-grow 属性,我们可以一个弹性项目相对于其他弹性项目应该增长多少。flex-grow 的默认值为 0。简单来说,这意味着 flex-items 不会相对于可用空间增长。.item { order: 2; flex-grow: 1; }
flex-shrink 属性一个 flex 项目相对于 flex 容器中的其余项目将收缩多少。flex-shrink 的默认值为 1。这意味着如果空间小于每个项目所需的空间,则每个项目都会收缩。.item { order: 2; flex-grow: 1; flex-shrink: 0; // The item won't shrink }
弹性项目的初始长度是使用 flex-basis 属性设置的。.item { order: 2; flex-grow: 1; flex-shrink: 1; flex-basis: 300px; }
flex 属性只是一个简写属性,可以一次性 flex-grow、flex-shrink 和 flex-basis 属性。.item { order: 2; flex: 1 1 200px; // flex: flex-grow flex-shrink flex-basis; }
align-self 属性弹性容器内特定项目的对齐方式。它覆盖了 flex 容器上的属性 align-items。.item { align-self: center; }
在 Codepen 上尝试 CSS flex-box:请参阅 nadeem (@nasyxnadeem) 在 CodePen 上的 Pen CSS flex-box 模型。地址:https://codepen.io/nasyxnadeem/pen/bGYYbqeCSS 网格布局是这10个技巧中比较重要的知识,CSS 网格布局对 CSS 来说有点新,这使得它更加重要,它也取代了传统的浮动布局。此外,它是 flex-box 布局的二维版本。与传统的浮动布局相比,它可以更轻松地创建复杂的页面布局并将代码减少到几行。CSS 网格布局是一个强大的工具,可以创建二维布局。CSS 网格布局在将大型网页划分为小组件并根据大小、位置和优先级或重要性定义这些组件之间的关系方面做得非常出色。此外,CSS 网格布局有点类似于表格,因为它像表格一样将大布局划分为行和列。CSS 网格布局让我们的生活更轻松。在网格出现之前,我们不得不编写数百行代码并花费大量时间创建一个简单的布局。但是,现在只需几行代码和几分钟的时间。您还可以尝试 CSS 网格图片库以了解有关 CSS 网格的更多信息。要创建 CSS 网格布局,我们创建一个容器并将其 display 属性设置为网格。这并不是创建网格布局所需要做的全部。您必须使用 CSS 属性 grid-template-columns 和 grid-template-rows 显式创建网格行和列。.container { display: grid; grid-template-rows: repeat(3, 1fr); grid-template-columns: repeat(3, 1fr); }
1)grid-template-columns属性:grid-template-columns 属性定义了网格布局中列的数量和宽度。grid-template-columns: repeat(4, 1fr); or grid-template-columns: repeat(4, auto);
上面实例使用repeat函数创建 4 列,每列 1fr。grid-template-columns: 20px 100px 200px 100px;
grid-template-rows 属性的工作方式与 grid-template-columns 相同。的区别是它创建行而不是列。grid-template-rows: repeat(4, 1fr);
grid-template-columns: 50px 300px 350px 100px;
在上面的代码示例中,将在所有列之间添加 30px 的间隙。在上面的代码块中,行之间添加了 20px 的间隙。gap 属性是 row-gap 和 column-gap 的简写属性。gap: 10px; //both column and row gap gap: 10px 39x; // row-gap: 10px; column-gap: 39px;
justify-content 用于水平对齐容器内的整个网格。网格的宽度需要小于容器的宽度才能让 justify-content 产生效果。.container { display: flex; justify-content: space-evenly; // space-around, space-between , center, start, end
space-evenly 值在可用空间中的项目的开始、结束和项目之间添加相等的空间。space-around 值与 space-evenly 类似,的区别是前后空间之和等于两个相邻项之间的空间。space-between 值在项目之间添加空间,但不在网格的开始和结束处。