html css实现九宫格布局,自适应屏幕,子元素之间、子元素与父元素之间的上下左右间距
html:
<!doctype html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <style> html,body,ui,li{ padding: 0; margin: 0; } </style> </head> <body> <ul> <li>1</li> <li>2</li> <li>3</li> <li>4</li> <li>5</li> <li>6</li> <li>7</li> <li>8</li> <li>9</li> </ul> </body> </html>
复制
方法一:grid布局
通过 display: grid;然后结合
grid-template-columns 属性设置列宽
grid-template-rows 属性设置行高
grid-gap行与列之间的间隙
实现
ul { overflow: hidden; background: none; padding: 100px; display: grid; grid-template-columns: 1fr 1fr 1fr; grid-template-rows: 200px 200px 200px; grid-gap: 10px; } li{ border: 1px solid red; list-style: none; }
复制
如图:
方法二:flex布局
通过 flex-wrap: wrap;然后子元素计算宽度并换行实现。
ul { display: flex; padding: 100px; /*换行*/ flex-wrap: wrap; } li { width: calc(calc(100% / 3) - 10px); height: 100px; margin: 5px; list-style: none; box-sizing: border-box; border: 1px solid black;}
复制
如图: