CSS 中是否可以使用表示行的元素来构建网格?

2024-02-26

我正在尝试使用 HTML/CSS 为现代浏览器复制此设计:

它本质上是一个包含行和列的表格,这意味着如果一行的名称单元格变大,那么所有行的名称单元格都应该变大。我看到两种可能性:表格和 CSS 网格。

据我所知,表格中的行的样式不够,例如它们不能采用边框半径,我还没有尝试过盒子阴影。

如果我使用 CSS 网格,我可以设置单元格的样式以模拟末尾的边框半径,但随后框阴影变得不可能,因为第二个单元格的框阴影覆盖了第一个单元格。

我认为问题归结为具有代表样式的行的元素,但仍在每个元素内部,单元格的宽度应与其他行中的宽度相同,以代表列。

CSS 有什么办法可以实现这一点吗?

例如,这里尝试使用 HTML 来做到这一点table其中边距和边框半径不起作用:

table {
  border-collapse: collapse;
}

tr {
  background-color: grey;
  border-radius: 8px;
  margin: 10px;
}
<table>
  <tr>
    <td>Eva Lee</td>
    <td>Call back</td>
    <td>15/02/19</td>
  </tr>
  <tr>
    <td>Evelyn Allen</td>
    <td>Call back</td>
    <td>14/01/19</td>
  </tr>
  <tr>
    <td>Slawomir Pelikan</td>
    <td>Voicemail</td>
    <td>14/01/19</td>
  </tr>
  <tr>
    <td>Christopher Walken</td>
    <td>Voicemail</td>
    <td>14/01/19</td>
  </tr>
</table>

这是另一个尝试,使用display: table,其作用与table:

.table {
  display: table;
  border-collapse: collapse;
}

.row {
  display: table-row;
  background-color: grey;
  border-radius: 8px;
  margin: 10px;
}

.cell {
  display: table-cell;
}
<div class="table">
  <div class="row">
    <div class="cell">Eva Lee</div>
    <div class="cell">Call back</div>
    <div class="cell">15/02/19</div>
  </div>
  <div class="row">
    <div class="cell">Evelyn Allen</div>
    <div class="cell">Call back</div>
    <div class="cell">14/01/19</div>
  </div>
  <div class="row">
    <div class="cell">Slawomir Pelikan</div>
    <div class="cell">Voicemail</div>
    <div class="cell">14/01/19</div>
  </div>
  <div class="row">
    <div class="cell">Christopher Walken</div>
    <div class="cell">Voicemail</div>
    <div class="cell">14/01/19</div>
  </div>
</div>

Edit 1

这适用于 FF、Chrome、MSIE、MS Edge。
边缘可能需要一些调整,因为表格单元格具有子像素宽度,如果现在给出像素宽度,则会导致烦人的垂直条。

这是通过使用负边距来实现的divs 包裹单元格内容并且overflow: hidden在细胞上。

table {
  border-collapse: collapse;
  border-spacing: 0;
}
table tr td {
  overflow: hidden;
  padding: 0 0 5px 0;
}
table tr td > div {
  background-color: gold;
  padding: 4px;
  border-radius: 0px;
  box-shadow: 3px 3px 5px rgba(0, 0, 0, 0.3);
  margin-left: -10px;
  margin-right: -10px;
  padding-left: 14px;
  padding-right: 14px;
}
table tr td:first-child {
  padding-left: 10px;
}
table tr td:first-child > div {
  border-radius: 10px 0 0 10px;
}
table tr td:last-child {
  padding-right: 20px;
}
table tr td:last-child > div {
  border-radius: 0 10px 10px 0;
}
<table>
  <tr>
    <td>
      <div>Lorem.</div>
    </td>
    <td>
      <div>Ea!</div>
    </td>
    <td>
      <div>Animi.</div>
    </td>
  </tr>
  <tr>
    <td>
      <div>Quas!</div>
    </td>
    <td>
      <div>Dolor!</div>
    </td>
    <td>
      <div>Suscipit.</div>
    </td>
  </tr>
  <tr>
    <td>
      <div>Mollitia?</div>
    </td>
    <td>
      <div>Inventore!</div>
    </td>
    <td>
      <div>Dolorem.</div>
    </td>
  </tr>
</table>

旧的,不能在 Chrome 中运行

来点伪元素魔法怎么样?

table {
  border-spacing: 10px;
  border-collapse: separate;
}

tr {
  position: relative;
  margin: 10px;
}
tr:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
  background-color: gold;
  z-index: -1;
  border-radius: 20px;
  box-shadow: 3px 2px 5px rgba(0, 0, 0, 0.25);
}

td {
  padding: 10px;
}
<table>
  <tr>
    <td>Eva Lee</td>
    <td>Call back</td>
    <td>15/02/19</td>
  </tr>
  <tr>
    <td>Evelyn Allen</td>
    <td>Call back</td>
    <td>14/01/19</td>
  </tr>
  <tr>
    <td>Slawomir Pelikan</td>
    <td>Voicemail</td>
    <td>14/01/19</td>
  </tr>
  <tr>
    <td>Christopher Walken</td>
    <td>Voicemail</td>
    <td>14/01/19</td>
  </tr>
</table>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

CSS 中是否可以使用表示行的元素来构建网格? 的相关文章

  • 在 HTML5 iOS 7 / iOS 8 中显示十进制键盘

    经过几个小时的搜索后 我只是有一个简单的问题 是否有可能在网络浏览器输入字段中显示小数键盘 input type number 只显示数字 但我需要在左下角使用逗号或点 我尝试过任何事情 pattern step等等 但没有显示十进制键盘
  • 将html表格保存到excel中[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 help reopen questions 我必须编写一个程序 定期读取网页并将
  • 滚动时将菜单栏固定在顶部[关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我见过一些网站 当用户向下滚动页面时 会在右侧或左侧弹出一个框 另外 注意到这个模板 http www mvpthemes com m
  • 使用 jQuery 更改父元素样式

    我有下一个 html 设置 div class one div class two a href class three Click a div div 我想更改具有类的元素的背景颜色 one当我点击元素时 three使用 jQuery 这
  • 为什么此 TTF 字体在我的浏览器中无法使用?

    我下载了一种名为 Clunk 的 TTF 字体 并尝试将其应用于某些文本 这是我正在使用的代码 h1 Test h1 这似乎不起作用 Chrome 给了我两个错误 Failed to decode downloaded font path
  • 为不同的字体系列指定不同的字体大小

    有没有办法为不同的字体系列指定不同的字体大小 我想要使 用的字体 出于产品品牌目的 是一种有点罕见的字体 FlashDLig 并非所有 PC 和浏览器都支持 我的一台带有 IE 9 的 Windows 7 PC 不显示它 现在 对于我使用
  • CSS 网格框架中的间距有什么作用?

    我正在深入研究 Web 开发 并且正在使用 Blueprint CSS 框架 其中包括网格系统 我有几个问题 水沟有什么用处 当然 它们不用于在列之间包含空间 因为您可以使用 margin CSS 属性来实现这一点 对吗 或者排水沟只是一种
  • CSS 精灵按钮

    这些精灵按钮让我抓狂 我几乎可以让他们工作 但不完全是 我正在玩这个非常简单的精灵图像 我有一个 jsfiddle 项目 gt gt 这里 如果你想看的话 但如果你只想看一下 代码就在下面 http jsfiddle net jp2code
  • PDF 在 Safari 中隐藏 Jquery Modal

    这是与我有关的事情this https stackoverflow com questions 24052681 pdf hide jquery modal in ie问题 在 IE 中 我在对话框中使用 iframe 解决了问题 所以它工
  • 为什么使用 iPhone 或 iOS 设备在“iframe”中查看“position:fixed”时不起作用?

    我研究过 stackoverflow 似乎position fixed在 iOS 移动设备的 iframe 中 https stackoverflow com questions 15874910 position fixed and if
  • chrome 中选择选项元素的额外填充

    我有一个选择元素 用户可以在其中选择分类和描述 仅在 Chrome 浏览器中 我有一个额外的填充 无法使用 padding 0 或其他 css 标签删除它 Chrome 的屏幕 https i stack imgur com m3iIb p
  • 从字体到跨度(大小和颜色)和背面的正则表达式(VB.NET)

    我正在寻找一个正则表达式 可以将我的字体标签 仅具有大小和颜色属性 转换为具有相关内联CSS的span标签 如果有帮助的话 这将在 VB NET 中完成 我还需要一个正则表达式来实现相反的效果 下面详细说明的是我正在寻找的转换示例 font
  • 编辑类名中带有空格的元素的 css 样式

    我正在创建一个 tumblr 我必须编写一个外部 CSS 文件 但我在编辑 post 元素的 css 样式时遇到问题 这是它的结构 li class post quote other code li 问题是类名中有空格 我如何创建一个 CS
  • Gmail 无法在电子邮件上正确呈现字体

    我已经建立了一个 html 电子邮件并使用了 Google 字体 我已使用以下方法将字体包含在 head 标签中 if mso endif 并使用字体 即我这样做了
  • 如何将 div 与其父级的顶部对齐,但保持其内联块行为?

    See http jsfiddle net b2BpB 1 http jsfiddle net b2BpB 1 问 如何让box1和box3对齐到父div的顶部boxContainer boxContainerContainer backg
  • 为什么网格项目不居中?

    由于某种原因 两个输入范围使网格中的前两项偏离中心 我假设这是因为它们的影子 DOM 样式 事实真的是这样吗 有谁知道为什么范围使项目 A 和 B 偏离中心 这是一个代码笔 https codepen io tOkyO1 pen QOeKL
  • 在按钮之间添加空间?

    嗨 我这里有一个代码 除了一件事之外 一切都很完美 代码中每个按钮之间没有空格 我尝试过 margin 但不幸的是它是一个无序列表 所以我有点困惑 我将添加或替换什么以在两个按钮之间留出空间 帮助
  • 使用 :hover 作为元素的内联样式(使用 HTML/CSS/php)[重复]

    这个问题在这里已经有答案了 可能的重复 如何将 a hover 规则嵌入到文档中间的样式属性中 https stackoverflow com questions 131653 how do i embed an ahover rule i
  • 引导标签输入宽度

    我正在尝试使用引导程序标签输入 http timschlechter github io bootstrap tagsinput examples 以模态中包含的形式 像这样 div class form group div
  • 使用 CSS 覆盖透明 div 中的不透明文本

    我试图使透明 div 内的文本没有不透明度 也就是全黑 div style background 3cc p style background 000 This text should be all black p div 只用 CSS 就

随机推荐

  • 设计问题:哪种做法更好?

    我有 3 个不同的 Web 服务器来处理用户数据 用户名 密码 电子邮件等 我分别有 3 个不同的 Web 服务调用 因此我创建了 3 个不同的类 它们调用相同的信息 getUsername setUsername getEmail set
  • ImportError:Ubuntu 11.04 服务器上的 django 项目中没有名为 mysql.base 的模块

    我正在按照中的步骤操作姜戈书 http www djangobook com en 2 0 chapter05 到了作者解释我如何建立一个 django 项目来使用数据库的部分 我选择了mysql 我的设置在settings py are
  • didReceiveRemoteNotification 不在后台工作

    我正在开发一个带有大量遗留代码的大型应用程序 目前 有一个实现 void application UIApplication application didReceiveRemoteNotification NSDictionary use
  • WriteProcessMemory/ReadProcessMemory 失败

    我尝试在应用程序中同时使用 ReadProcessMemory 和 WriteProcessMemory 但在这两种情况下我都得到一个结果 仅完成了 ReadProcessMemory 或 WriteProcessMemory 请求的一部分
  • 从 DRF 中的令牌字符串获取用户对象?

    我有一个令牌字符串Django REST 框架令牌身份验证 http www django rest framework org api guide authentication tokenauthentication 我需要获取相应的用户
  • 使用列表中的数据创建填充等值线图

    我的数据集由 csv 文件中的 3 列组成 前两列是地图坐标 第三列是在相应地图坐标的钻孔中发现的锌的百分比 我想创建一个等高线图来显示锌浓度随距离的变化 我能够找到的所有代码示例都使用矩阵形式的数据 而我的代码示例则位于列表中 我尝试了几
  • 如何在 System.Net.WebUtility.UrlEncode 中强制使用 %20 而不是 +

    我需要在类库程序集中对 URL 进行编码 但我不想在其中引用 System Web URL包含多个空格 https query yahooapis com v1 public yql q select from yahoo finance
  • 阻止应用程序在 bluestacks、youwave 和其他模拟器中运行

    我想阻止我的应用程序在 bluestacks youwave 等模拟器中运行 我是否可以阻止甚至识别用户是否在 bluestacks youwave 中运行 我的应用程序具有登录功能 所以它也使用服务器 所以我不介意在客户端 服务器端阻止用
  • Excel 2010 - 在工作簿中存储功能区自定义

    我是 Excel 功能区自定义新手 将功能区自定义存储在工作簿中的最直接的方法是什么 以便在工作簿关闭时自定义消失得无影无踪 要更改工作簿的功能区 您需要更改 xlsx 文件 内部 的 XML 文件 只不过是 zip 一切都在这里得到了很好
  • 当 required 不为 true 时,jQuery 验证 `valid()` 方法返回 0

    我正在使用jQuery 验证插件 http docs jquery com Plugins Validation我有一个带有班级的文本框digits强制它仅是数字 但不是必需的 当我在表单上调用 validate 时 它 工作正常 但如果我
  • 为什么Web Workers不允许修改dom

    I know web workers作为一个单独的线程工作UI thread但我不明白为什么他们不允许修改DOM 我的意思是你可以允许线程间通信并保持DOM数据位于共享空间并具有web workers线程修改DOM 为什么浏览器不允许这样做
  • Android 4.3 ImageView 方法 getImageMatrix() 的错误

    我最近升级到 Android 4 4 我的应用程序的某些功能令人惊讶地停止工作 我有这段代码用于初始化然后绘制我的自定义视图 基本思想是调整缩放级别 使整个视图适合屏幕 private void initAtZoomLevel float
  • Angular 4材质表突出显示一行

    我正在寻找一种好方法来突出显示整个行md table 我应该做指令还是什么 div class example container mat elevation z8 div
  • 在步骤:将推送通知功能添加到您的应用程序 ID 中报告错误

    In 开发者网站 https developer apple com 我让我的app ID s Push Notifications enable 但在我的项目中 TARGETS gt Capabilities gt Push Notifi
  • UITableView 顶部和底部具有透明渐变

    我搜索过这个论坛 谷歌和其他论坛 但没有找到我的特定问题的答案 基本上 我有一个UIView其中包含UITableView 我跟着这个tutorial http www cocoanetics com 2011 08 adding fadi
  • 事件网格吞吐量限制

    我是天蓝色事件网格概念的新手 目前正在研究事件网格以在我们的项目中实现 任何人都可以告诉我们事件网格的吞吐量吗 每秒我可以推送多少个事件以及每秒事件网格的出口是多少 意味着每秒从事件网格输出事件的数量 我向微软询问了这个话题 他们的回应是
  • Java中的抽象类和方法,继承

    我有类 B 它继承自类 A 超类 A 是抽象的 包含一个抽象方法 我不想在类 B 中实现抽象方法 因此我也需要将类 B 声明为抽象方法 声明 B 类抽象 有两件事对我有用 程序正确编译和运行 1 我没有在类 B 中声明任何抽象方法 即使该类
  • MongoDB 唯一索引不允许覆盖

    我在 Mongo 文档中的一个字段上创建了一个 unique true 索引 这按预期工作 它通过覆盖现有条目来禁止重复 我想禁止覆盖 而是在尝试插入重复项时出现错误或异常 有什么办法可以做到这一点吗 我该如何使用 Spring Data
  • 如何重用/重置 ZipInputStream?

    我想重置 ZipInputStream 即回到起始位置 以便按顺序读取某些文件 我怎么做 我好卡住 ZipEntry entry ZipInputStream input new ZipInputStream fileStream item
  • CSS 中是否可以使用表示行的元素来构建网格?

    我正在尝试使用 HTML CSS 为现代浏览器复制此设计 它本质上是一个包含行和列的表格 这意味着如果一行的名称单元格变大 那么所有行的名称单元格都应该变大 我看到两种可能性 表格和 CSS 网格 据我所知 表格中的行的样式不够 例如它们不