css:九宫格布局的五种方法(grid布局、flex布局、table布局、float浮动定位、inline-block+letter-spacing属性)

这篇具有很好参考价值的文章主要介绍了css:九宫格布局的五种方法(grid布局、flex布局、table布局、float浮动定位、inline-block+letter-spacing属性)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

要实现的九宫格效果图如下:
css table布局,css,css,前端,css3
公共样式:

 div{
      width: 300px;
      height: 300px;
  }
    ul{
      padding: 0;
      width: 100%;
      height: 100%;
  }
   li{    
      list-style: none;
      text-align: center;
      line-height: 100px;
      margin: 3px;
      background-color: #243F49;
      color: white;
      border: 1px solid white;
      font-weight: bolder;
  }
<div>
  <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>
</div>

1.grid网格布局

grid-template-columns 用于定义每一列的宽度; grid-template-rows 用于定义每一行的高度;grid-gap设置网格的行间距、列间距

ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*设置为grid网格布局*/
      display: grid;
      /*设置三行高度都为100px;*/
      grid-template-rows:100px 100px 100px ;
       /*设置三行宽度都为100px;*/
      grid-template-columns: 100px 100px 100px;
      置网格的行间距、列间距都为3px
      /*grid-gap: 3px;*/
  }

2.flex布局

计算好每个li的宽度和高度,总的宽、高度为300px,那么每个li的宽高就为300px/3=100px 但是由于每个li设置了margin为3px那么:
每个li的宽度= 100px - (margin-left + marginr-right)=100-(3+3) = 94px 我们将每个li的宽度设置为94px即可。
每个li的高度=100px - (margin-top + margin-bottom) = 100-6 = 94px 我们将每个li的高度设置为94px即可。
确定了总的div宽高度和每个li的宽高度后用flex布局进行换行。
当然了,先确定三个盒子的高、宽度 *3+ 间距 *2 *3个= 总宽/高度这样的计算顺序更快。

  ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*设置布局方式为flex布局*/
      display: flex;
      /*换行*/
      flex-wrap: wrap;
  }
  li{
      /*固定设置每个li的宽度和高度*/
      width: 94px;
      height: 94px;
      margin: 3px;
      list-style: none;
      text-align: center;
      line-height: 100px;
      background-color: #243F49;
      color: white;
      border: 1px solid white;
      font-weight: bolder;
  }

3.float浮动定位

给总的div设置一个固定的宽高,计算总的高、宽度 = 三个盒子3 + 间距2 *3个再设置每个li固定的宽高,利用float来换行,再给父元素overflow:hidden进项清除浮动定位。
每个li的宽高度为94px,margin为3px ,div的总高度、宽度=943+32*3=300px。

  ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*清除浮动*/
      overflow: hidden;    
  }
  li{
      /*固定设置每个li的宽度和高度*/
      width: 94px;
      height: 94px;
      /*第三种方法:浮动定位进行换行*/
      float: left;
      margin: 3px;
      list-style: none;
      text-align: center;
      line-height: 100px;
      background-color: #243F49;
      color: white;
      font-weight: bolder;
  }

4.inline-block+letter-spacing属性/font-size:0

和前面两种一致,先计算宽高度、设置每个li的宽高度,再将li使用dispaly:inline-block换行,再用letter-spacing属性的负值进行减少字符之间的空白

letter-spacing属性是增加(值为正)或减少(值为负)字符间距(字符间的空白);

ul{
      padding: 0;
      width: 100%;
      height: 100%;
      /*减少字符间的空白*/
      letter-spacing: -5px;/*这里使用font-size:0;也可*/
   }
   li{
      /*设置每个li的固定宽度和高度*/
      width: 94px;
      height: 94px;
      display: inline-block;
      margin: 3px;
      list-style: none;
      text-align: center;
      line-height: 100px;
      background-color: #243F49;
      color: white;
      font-weight: bolder;
  }

5.table布局

将父元素设置为dispaly:table布局形式,使得元素以表格形式来显示,再设置单元格的边框间距。再设置相应的表格行形式display: table-row;和单元格形式display: table-cell

  <style>
ul{
    width: 300px;
    height: 300px;
    /*元素作为块级表格来显示  padding失效*/
    display: table;
    /*设置相邻单元格的边框间距*/
    border-spacing: 5px;
}
li{
    list-style: none;
    text-align: center;
    background-color: #243F49;
    color: white;
    font-weight: bolder;
    /*此元素会作为一个表格行来显示 margin和padding都失效*/
    display: table-row;
}
div{
    line-height: 90px;
    text-align: center;
    /*元素以单元格形式来显示  Margin失效*/
    display: table-cell;
}
 <ul>
    <li>
      <div>1</div>
      <div>2</div>
      <div>3</div>
    </li>
    <li>
      <div>4</div>
      <div>5</div>
      <div>6</div>
    </li>
    <li>
      <div>7</div>
      <div>8</div>
      <div>9</div>
    </li>
  </ul>

效果图:
css table布局,css,css,前端,css3文章来源地址https://www.toymoban.com/news/detail-674927.html

到了这里,关于css:九宫格布局的五种方法(grid布局、flex布局、table布局、float浮动定位、inline-block+letter-spacing属性)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • CSS水平垂直居中(最常见的三种方案flex、grid、absolute)

    本文简单介绍一下现代 CSS 中最常见的三种水平垂直居中方案。 html: css: 方案1:父元素设置 flex 布局,并设置主轴以及交叉轴的对齐方式: 方案2:父元素设置 flex 布局,子元素设置 margin: auto : 父元素设置 grid 布局,以及 place-items: center 。 place-items  是  align-items  和 

    2024年01月16日
    浏览(47)
  • CSS Grid布局

    网格布局(Grid)将王爷分成一个个网格,可以任意组合不同的网格,做出各种各样的布局。Grid布局与Flex不具有一定的相似性,都可以指定容器内部多个项目的位置,但是他们存在重大的区别。flex布局时轴线布局,只能指定项目针对轴线的位置,可以看作是一维布局;grid布

    2024年02月15日
    浏览(52)
  • 43.CSS grid布局

    本节我们学习的初始代码如下: 注:如上,同行情况下,一个元素有高度的话,同行元素会被拉伸,这是默认行为 注:(3)没有被拉伸是因为它有固定高度

    2023年04月18日
    浏览(49)
  • CSS-grid布局

    网格布局也叫grid布局,平常写样式的时候基本上都是用的flex布局。 像以下布局,用flex布局就可能会有有点麻烦,这时候用grid布局就方便的多了。 或者是照片墙 grid布局就是将容器划分为行和列,产生单元格,然后在指定的单元格,可以看作是二维布局,我们一直经常用的

    2024年02月13日
    浏览(56)
  • css中的grid高频布局

    1.一个父级容器内有n个子元素; 2.每个子元素最小宽度是100px; 3.每个子元素最大宽度根据屏幕宽度自适应; 4.每个子元素的宽度保持同宽; 5.每个元素之间有间隔,每一行的两边不留间隙,每一列的上下不留间隙; 6.每个子元素中的文本超出之后省略显示; css排版常见布局

    2024年02月04日
    浏览(57)
  • css3 Grid布局

    Grid布局是一种强大的CSS布局系统,它可以帮助我们创建灵活的网格结构,使网页布局更易于管理和响应式。 Grid布局由网格容器(Grid Container)和网格项(Grid Item)组成。网格容器是包含网格项的父元素,而网格项则是直接放置在网格容器中的子元素。 在上述示例中,我们创

    2024年02月09日
    浏览(80)
  • css3 grid 布局

    特别声明:这篇博客转载于阮一峰老师,转载是为了方便日后复习,实在写的太棒了。 目录 一、概述 二、基本概念 2.1 容器和项目 2.2 行和列 2.3 单元格 2.4 网格线 三、容器属性 3.1 display 属性 3.2grid-template-columns 属性,grid-template-rows 属性 3.3grid-row-gap 属性,grid-column-gap 属性,

    2024年02月10日
    浏览(77)
  • css3-grid:grid 布局 / 基础使用

    一、理解 grid   二、理解 css grid 布局 CSS Grid布局是一个二维的布局系统,它允许我们通过定义网格和网格中每个元素的位置和尺寸来进行页面布局。CSS Grid是一个非常强大的布局系统,它不仅可以用于构建网格布局,还可以用于定位元素,并且可以很好地处理复杂的布局。

    2024年02月12日
    浏览(42)
  • 【前端】CSS-Grid网格布局

    grid布局:网络布局,是目前唯一一种CSS二维布局方式,一种新的CSS布局模型,由纵横相交的两组网络线形成的框架性布局结构,能够同时处理行与列。号称是最强大的CSS布局方案。 擅长将一个页面划分为几个主要区域,以及定义这些区域的大小、位置、层次等关系 Grid布局是

    2024年02月09日
    浏览(37)
  • CSS Flex布局

    Flex布局(弹性盒子布局) 是一种用于在容器中进行灵活和自适应布局的CSS布局模型。通过使用Flex布局,可以更方便地实现各种不同尺寸和比例的布局,使元素在容器内自动调整空间分配。 目录 容器属性 🍁display属性 🍁flex-direction属性 🍁flex-wrap属性 🍁flex-flow属性 🍁jus

    2024年02月10日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包