Grid可以定义为一组相交的水平线和垂直线。CSS Grid布局将页面划分为主要区域。它在层、位置和大小方面定义了由HTML
基元构建的控件部分之间的关系。Grid 属性提供了一个具有行和列的基于网格的布局系统。它使网页设计变得容易,无需定位和浮动。
与表格类似,它使用户能够将元素对齐到行和列中。但与表格相比,使用CSS
Grid设计布局更容易。我们可以使用grid-template-rows和grid-template-columns属性在网格上定义列和行。
Grid属性在浏览器如支持谷歌Chrome,IE浏览器,火狐,Safari,和Opera。
我们可以通过在元素上将display属性设置为grid或inline-grid来定义网格容器。
Grid容器包含放置在行和列内的网格项。
让我们看一个简单的 CSS Grid示例。
<!DOCTYPE html> <html> <head> <style> .main { display: grid; grid: auto auto / auto auto auto auto; grid-gap: 10px; background-color: black; padding: 10px; } .num { background-color: grey; text-align: center; color: white; padding: 10px 10px; font-size: 30px; } </style> </head> <body> <div class="main"> <div class="num">一</div> <div class="num">二</div> <div class="num">三</div> <div class="num">四</div> <div class="num">五</div> <div class="num">六</div> <div class="num">七</div> <div class="num">八</div> </div> </body> </html>
让我们看看一些速记属性:
grid-template-columns:用于指定列的大小。
grid-template-rows:用于指定行大小。
grid-template-areas:用于通过命名项指定网格布局。
grid-auto-rows:用于指定行的自动大小。
grid-auto-columns:用于指定列的自动大小。
grid-auto-flow:用于指定如何放置自动放置的项目和自动行大小。
在以下示例中,我们包含了上述一些速记属性。现在,让我们看看使用一些属性的例子:
<!DOCTYPE html> <html> <head> <style> .main { display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 100px 250px 200px; background-color: black; grid-gap: 10px; padding: 20px; } .num { background-color: lightgrey; text-align: center; padding: 20px 10px; font-size: 30px; } </style> </head> <body> <div class="main"> <div class="num">一</div> <div class="num">二</div> <div class="num">三</div> <div class="num">四</div> <div class="num">五</div> <div class="num">六</div> <div class="num">七</div> <div class="num">八</div> </div> </body> </html>
它用于对齐容器内的整个网格。它包括以下值:
space-evenly:它在列之间或列周围提供相等的空间。
space-around:它在列周围提供相等的空间。
space-between:它在列之间提供等量的空间。
center:用于对齐容器中间的网格。
start:用于在容器的开头对齐网格。
end:用于对齐容器末端的网格。
让我们通过一个例子来理解这个属性和值。
<!DOCTYPE html> <html> <head> <style> .grid-container1 { display: grid; justify-content: space-evenly; grid-template-columns: 50px 50px 50px; /*Make the grid smaller than the container*/ grid-gap: 10px; background-color: #2196F3; padding: 10px; } .grid-container2 { display: grid; justify-content: space-around; grid-template-columns: 50px 50px 50px; /*Make the grid smaller than the container*/ grid-gap: 10px; background-color: red; padding: 10px; } .grid-container3 { display: grid; justify-content: space-between; grid-template-columns: 50px 50px 50px; /*Make the grid smaller than the container*/ grid-gap: 10px; background-color: green; padding: 10px; } .grid-container4 { display: grid; justify-content: end; grid-template-columns: 50px 50px 50px; /*Make the grid smaller than the container*/ grid-gap: 10px; background-color: violet; padding: 10px; } .grid-container5 { display: grid; justify-content: start; grid-template-columns: 50px 50px 50px; /*Make the grid smaller than the container*/ grid-gap: 10px; background-color: gray; padding: 10px; } .grid-container6 { display: grid; justify-content: center; grid-template-columns: 50px 50px 50px; /*Make the grid smaller than the container*/ grid-gap: 10px; background-color: blue; padding: 10px; } .num { background-color: rgba(255, 255, 255, 0.8); text-align: center; padding: 20px 0; font-size: 30px; } </style> </head> <body> <b>具有空间均匀价值的容器</b> <div class="grid-container1"> <div class='num'>1</div> <div class='num'>2</div> <div class='num'>3</div> </div> <b>具有空间价值的容器</b> <div class="grid-container2"> <div class='num'>1</div> <div class='num'>2</div> <div class='num'>3</div> </div> <b>具有空间价值的容器</b> <div class="grid-container3"> <div class='num'>1</div> <div class='num'>2</div> <div class='num'>3</div> </div> <b>具有终值的容器</b> <div class="grid-container4"> <div class='num'>1</div> <div class='num'>2</div> <div class='num'>3</div> </div> <b>具有起始值的容器</b> <div class="grid-container5"> <div class='num'>1</div> <div class='num'>2</div> <div class='num'>3</div> </div> <b>具有中心价值的容器</b> <div class="grid-container6"> <div class='num'>1</div> <div class='num'>2</div> <div class='num'>3</div> </div> </body> </html>
它用于垂直对齐容器内的整个网格。
该值对齐内容性质是一样的价值观证明内容属性。