前端入门-css 网格项属性

html-css021

前端入门-css 网格项属性,第1张

上篇介绍了网格容器、网格轨道的相关属性使用方法,如果您还不熟悉网格,建议先去看看之前的文章前端入门——css Grid网格基础知识 ,前端入门——css 网格轨道详细介绍 学习下网格基本知识。

本篇主要介绍网格项的相关属性:

以上四组属性都和网格线密切相关,它们定义了网格项如何根据网格线来定位网格项的位置。

语法如下:

属性值说明:

如下示例:

项目可以相互重叠。您可以使用 z-index 它们来控制它们的堆叠顺序。

上面介绍的grid-column-start / grid-row-start 、grid-column-end/ grid-row-end四个属性还可以使用 grid-row-start 和 grid-row-end 进行简写。

语法:

属性值:

如下示例:

使用此属性可以命名一个网格区域,以便在 grid-template-areas 属性创建的模板中引用此网格区域,或者作为grid-row-start + grid-column-start + grid-row-end + grid-column-end 的更短的简写。

语法如下:

属性值:

如下示例:

为网格区域分配名称的一种方式

作为简写

https://css-tricks.com/snippets/css/complete-guide-grid/#prop-grid-template-areas

https://developer.mozilla.org/zh-CN/docs/Web/CSS/grid

从默认网格入门

让我们先从一个基本的 HTML 开始,看看如何在上面应用默认网格。

<!DOCTYPE html>

<html>

<head>

<title>Fixed layout example with Bootstrap</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Bootstrap -->

<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"media="screen">

</head>

<body>

<script src="http://code.jquery.com/jquery.js"></script>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>

</html>

Bootstrap 使用 CSS 的 class "row" 来创建水平行,使用 CSS 的 class "spanx"(x 的值从 1 到 12)来创建垂直列。通过这两个就可以创建一个三列的网格(每一列包含一些文本内容),HTML 如下所示

<!DOCTYPE html>

<html>

<head>

<title>Fixed layout example with Bootstrap</title>

<meta name="viewport" content="width=device-width, initial-scale=1.0">

<!-- Bootstrap -->

<link href="bootstrap/css/bootstrap.min.css" rel="stylesheet"media="screen">

</head>

<body>

<div class="container">

<div class="row">

<div class="span4"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros.</p></div>

<div class="span4"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros.</p></div>

<div class="span4"><p>Lorem ipsum dolor sit amet, consectetuer adipiscing elit. Nam cursus. Morbi ut mi. Nullam enim leo, egestas id, condimentum at, laoreet mattis, massa. Sed eleifend nonummy diam. Praesent mauris ante, elementum et, bibendum at, posuere sit amet, nibh. Duis tincidunt lectus quis dui viverra vestibulum. Suspendisse vulputate aliquam dui. Nulla elementum dui ut augue. Aliquam vehicula mi at mauris. Maecenas placerat, nisl at consequat rhoncus, sem nunc gravida justo, quis eleifend arcu velit quis lacus. Morbi magna magna, tincidunt a, mattis non, imperdiet vitae, tellus. Sed odio est, auctor ac, sollicitudin in, consequat vitae, orci. Fusce id felis. Vivamus sollicitudin metus eget eros.</p></div>

</div>

</div>

<script src="http://code.jquery.com/jquery.js"></script>

<script src="bootstrap/js/bootstrap.min.js"></script>

</body>

</html>

下面是网格系统的图形表示

这样,我们就通过对每个列使用 "span4" class,创建好了一个三列网格。"container" class 是用来保存整个结构的。您可以在这里查看在线实例。从这一点,我们可以推导出用于创建给定数量列的 CSS class 的一般语法。

创建网格的一般语法:

<div class="row">

<div class="spanx">

inline elements like span, block level elements like p, div.

</div>

repeat <div class="spanx">y times.

其中 y 是您想要创建的列数以及 x 等于 12(这是您可以创建的最大的列数)的总和。x 必须是正整数,且值必须从 1 到 12。

例如,如果您有三个等宽的列,每个列都是 class="span4",但是如果您想让第一个列比其他两个更大一些,第一个列可以使用 class="span6",其他两个列使用 class="span3"。

如何在固定网格中创建行

接下来,在我们继续其他实例之前,先来看看在固定网格中用来创建行和列的 CSS 规则。

row class 如下所示

.row {

margin-left: -20px

*zoom: 1

}

设置左边距为负的 20px,且设置 "*zoom: 1"。这里的 "*" 表示所有元素的 zoom 属性都设置为 1,用来修复 IE6/7 的 bug。设置 zoom 属性为 1,即设置了一个名为 hasLayout 的内部属性,用于修复 IE6/7 的许多缩放/渲染问题。

.row:before,

.row:after {

display: table

line-height: 0

content: ""

}

Bootstrap 使用前面的 CSS 代码来创建行。它使用 ":before" 和 ":after" 的 CSS 属性。这两个是伪元素。":before" 用于在目标元素之前插入一些内容,":after" 用于在目标元素之后插入一些内容。"display:table" 使得元素以表格形式呈现。通过设置 "line-height: 0" 来确保每个行没有自己的行高,通过使用 'content: ""' 来确保元素前后没有内容被插入。

1、首先是计算一行的价格。这个功能在上篇博客里有提到,这里就不列举出来了。

2、遍历选中的几行,将每行的数值相加。

3、将值赋给总金额显示出来。当取消勾选或加减数量时,金额会相应改变。