设置 CSS 列中第一项的样式

2024-01-08

我有一个显示在多列上的列表。每个列表项都是块元素 (display:block),并附加了一些样式(底部有 1px 边框)。目前看起来是这样的:

List item    List item    List item
---------    ---------    ---------
List item    List item    List item
---------    ---------    ---------
List item    List item
---------    ---------

我想在每列中第一个项目的顶部添加相同的边框,例如

---------    ---------    ---------    
List item    List item    List item
---------    ---------    ---------
List item    List item    List item
---------    ---------    ---------
List item    List item
---------    ---------

我尝试过 :first-line 和 ::first-line,在这种情况下它们似乎都没有任何作用(可能是因为它不适用于块元素?)

该列表的长度可能会有所不同,因此我无法确定每列中有多少项目,因此我也无法使用 :nth-of-type() 。

有谁知道这是否可以做到(或者相反,如果绝对不能做到?)

My HTML

<ul>
  <li><a href="">List item</a></li>
  <li><a href="">List item</a></li>
  <li><a href="">List item</a></li>
  ...
</ul>

My CSS

  ul {
    list-style: none;
    padding: 21px;
    -moz-column-count: 4;
    -webkit-column-count: 4;
    column-count: 4;
    -moz-column-gap: 21px;
    -webkit-column-gap: 21px;
    column-gap: 21px;
  }
  li {
    display: block;
    -moz-column-break-inside: avoid;
    -webkit-column-break-inside: avoid;
    -mx-column-break-inside: avoid;
    column-break-inside: avoid;
    padding: 1em 0;
    border-bottom: 1px dotted #000;
  }

看到代码1小时后编辑:完毕!用纯CSS!

因为我不想使用 javascript,所以花了我很长时间。这是幕后真正发生的事情的演示http://jsfiddle.net/mEtF6/1/ http://jsfiddle.net/mEtF6/1/,这是工作版本:http://jsfiddle.net/mEtF6/2/ http://jsfiddle.net/mEtF6/2/。如果您不明白任何内容,请随时询问,因为它没有很好的记录。我实际上必须添加一个 div 来包裹 'ul' 因为overflow: hidden on ul不会表现得像border-top位于元素之外。这是工作代码:

<div>
  <ul>
    <li><a href="">List item 1</a></li>
    <li><a href="">List item 2</a></li>
    <li><a href="">List item 3</a></li>
    <li><a href="">List item 4</a></li>
    <li><a href="">List item 5</a></li>
    <li><a href="">List item 6</a></li>
    <li><a href="">List item 7</a></li>
    <li><a href="">List item 8</a></li>
    <li><a href="">List item 9</a></li>
  </ul>
</div>

和CSS:

div {
  /* This will hide the white space at the right (blue in the explanation) */
  overflow: hidden;
  }

ul {
  position: relative; /* Needed to place the :before pseudo element in the proper position */
  list-style: none;
  border-top: 1px dotted #000;
  padding: 0;
  margin: 0;
  -moz-column-count: 4;
  -webkit-column-count: 4;
  column-count: 4;
  -moz-column-gap: 20px;
  -webkit-column-gap: 20px;
  column-gap: 20px;
  }

/* This 'cuts' the top margin of ul so it's displayed in the same way as the other */
ul:before {
  content: " ";
  position: absolute;
  display: block;
  width: 100%;
  height: 1px;

  /* Put the gaps on the <ul> top margin */
  top: -1px;

  /* Background-size = 1/4 of the width + 1/4 of the space between columns */
  background-size: calc(25% + 5px) 1px;

  /* Or it will hide the border-top of the ul */
  background-color: transparent;

  /* The actual white gaps at the top */
  background-image: linear-gradient(
    90deg,
    transparent calc(100% - 20px), /* All the <li> width minus the gap is transparent */
    red 20px);  /* Those 20px are white */
  }

li {
  -moz-column-break-inside: avoid;
  -webkit-column-break-inside: avoid;
  -mx-column-break-inside: avoid;
  column-break-inside: avoid;
  padding: 0;
  border-bottom: 1px dotted #000;
  }

/* This will hide the top margin of the last columns without elements */
li:last-child:before {
  position: absolute;
  /* You want to place the top  */
  margin-left: calc(25% + 5px);
  content: " ";
  display: block;
  background-color: blue;
  width: 10px;
  height: 1px;
  top: -1px;
  width: 100%;
  }

/* Make the <a> fill the whole space of the <li> */
li a {
  display: block;
  padding: 1em 0;
  }

注意:我添加了对<a>标签,使整个块可点击,而不仅仅是其中的文本。您可以将其逆转。

注 2:仅测试FIREFOX。您可能需要添加一些其他 -webkit 渐变以使其跨浏览器。抱歉,我会把这个肮脏的工作留给你(;我发现了一个明显的错误并询问了这里有关于它的问题 https://stackoverflow.com/q/19302836/938236.

再次,工作演示:http://jsfiddle.net/mEtF6/2/ http://jsfiddle.net/mEtF6/2/.

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

设置 CSS 列中第一项的样式 的相关文章

  • 如何隐藏其他选项卡的内容并仅显示所选选项卡的内容

    当我单击特定选项卡时 其他选项卡的内容应该隐藏 但它并没有隐藏 这是我所有的代码 function showStuff id if document getElementById id style display block documen
  • 将单选按钮放置在图像上

    我试图在图像上的确切位置放置一些单选按钮 我已将两者都放在 Div 中 但我不知道下一步该怎么做 这是我想要放置单选按钮的位置 红色圆圈 到目前为止 这是我的代码 center display block margin left auto
  • iPhone 上的 Chrome 溢出空白页面上的内容(仅在新选项卡上,而不是重新加载)

    在 iOS Chrome 上 正文会在没有内容的新选项卡或页面上溢出 但如果重新加载页面 问题就会得到解决 它会给位于底部的任何元素 绝对或固定 带来问题 这是重现问题的代码
  • 设置overflow-y可见,而overflow-x为auto,以便内容可以垂直溢出父容器

    我在用着position absolute and position relative如果将其父级悬停在图像上 则在图像上显示文本 文本和图像父 div 所在的容器设置为overflow x auto 使其具有水平滚动条 我想要看起来垂直溢
  • :hover 状态在 iOS 上不会结束

    我有一个带有悬停状态的简单菜单
  • 使用 bootstrap 将搜索图标放入文本框中

    我默认使用引导程序 文本框占据列的全宽 我想将搜索图标放在文本框的末尾 我的代码是这样的 div class container div class row div class form group col lg 4 div div div
  • 如何使用 css 在标题的两侧放置实线? [复制]

    这个问题在这里已经有答案了 可能的重复 如何在标题文本上制作字段集图例样式的 背景线 https stackoverflow com questions 5985009 how can i make a fieldset legend st
  • CSS - SASS:使用基于@each的mixins来生成多个背景

    我正在使用 CSS 创建发型和颜色目录 我有 55 种不同颜色和发型的组合 每种发型和颜色都有自己的图像 SVG 文件 我需要将它们全部组合成一个背景 使用 CSS3 的多背景功能 我编写了这个混合来生成多个背景 它基于 mixin在这篇文
  • 如何使用CSS将背景图像放入选择选项标签中

    我有一个从 json 响应接收的国家 地区下拉列表 并且想要在国家 地区名称旁边添加相应的国家 地区国旗图标 也从 json 响应获取图像 我已经尝试了不同的 jQuery 和 bootstrap 插件 但他们所做的是破坏我以前的选择框样式
  • Menu.Item 中的 Antd 自动换行

    可以在 Menu Item 组件中应用自动换行吗 示例不起作用
  • 监听浏览器宽度以进行响应式网页设计?

    我正在努力使我的网站适合移动设备 我想知道浏览器窗口的大小 以便当它比 728px 窄时我可以执行某些操作 而当它大于 728px 时我可以执行其他操作 这必须考虑到调整 PC 上的窗口大小以及在手机中从纵向模式更改为横向模式 如何才能做到
  • div Hello div div Howdy dere pardner div div div 我明白它的作用 但为什么叫这个名字both 什么是both mean 两者的意思是 一组两件事中的每一项 左 和 右 两件事
  • 将 Div 放置在另一个 DIV 下方

    我有两个 DIV 元素 其中之一具有绝对位置 主 DIV 的左下角 第二个 DIV 是隐藏的 只有单击链接才能显示 我需要第二个出现在第一个下方 但由于第一个 div 的位置是绝对的 第二个 div 出现在第一个 div 之上 HTML 代
  • save_and_open_page 已停止提供我的 CSS

    我的测试设置工作得很好 每当我打电话时 都能提供正确格式的 css 页面save and open page从测试中 然后 我设置了一些 javascript 测试 并对我的设置进行了一些更改 抱歉 我无法详细说明所有内容 我没有足够详细地
  • 网站在 iPhone 屏幕右侧显示空白区域

    我遇到问题http eiglaw com http eiglaw com iPhone 屏幕右侧显示约 25 像素宽的空白 边框 我在 stackoverflow 上研究了这个问题 这些帖子是相关的 但是当我尝试提供的各种解决方案时 我无法
  • div 中的中心文本?

    我有一个div 30px高和500px宽的 这div可以包含两行文本 一行在一行 并相应地设置样式 填充 但有时它只包含一行 我希望它居中 这可能吗 要水平居中 请使用text align center 要垂直居中 只能使用vertical
  • 导航栏下拉菜单(折叠)在 Bootstrap 5 中不起作用

    我在尝试使用以下命令创建响应式菜单或下拉按钮时遇到问题Bootstrap 5一切似乎都正常 导航图标和下拉图标出现 但它不起作用 当我单击nav图标或dropdown按钮 无dropdown menu apears 我想特别提到的是 我还包
  • javascript 选择自定义光标 (svg)

    我正在动态地将光标更改为悬停时的本地 svg element on mouseover function this css cursor url svgs pointer svg 9 30 auto 工作正常 但我想选择该 svg 来操纵其
  • 合并 2 个大型 CSS 文件的有效方法

    我正在寻找一个可以合并 2 个大型 CSS 文件的工具 到目前为止我尝试过的所有方法 例如CSSMerge 都没有成功 其中一些只是随机删除属性 其他人则因 webkit 和 moz 等非标准属性而窒息 并给我错误 我还需要保留每条规则大小
  • 使用 JavaScript 移动页面上的按钮

    我的按钮可以移动 但奇怪的是 我无法弄清楚偏移是否有问题 我希望我的按钮随着鼠标光标移动 但现在它的移动方式不是我想要的 有时它会消失 另外 创建的新按钮是重叠的 我不知道如何解决这个问题并拥有更好的外观 var coorA var coo

随机推荐

  • Matplotlib 中极坐标图的插值差异

    我正在尝试在极坐标图上生成等值线图 并在 matlab 中编写一些快速脚本以获得一些结果 出于好奇 我也想使用 matplotlib 在 python 中尝试同样的事情 但不知何故 我看到相同输入数据的不同组等高线图 我试图弄清楚发生了什么
  • 如何仅聚合混合数据类型数据框中的数字列

    我有一个混合的pd DataFrame import pandas as pd import numpy as np df pd DataFrame A 1 B pd Timestamp 20130102 C pd Timestamp 20
  • 搜索/迭代 boost::spirit::qi::symbols

    如果我有一个符号表 struct MySymbols symbols
  • OCaml构造函数解包

    是否可以通过将数据绑定到单个值而不是元组来解包类型 type foo Foo of int string type foo Foo of int string Foo 3 bar Foo 3 bar Error The constructo
  • 如何为 geopandas 图制作表格图例

    我正在使用 geopandas 绘制分区统计图 并且需要绘制自定义的表格图例 这个问题 https stackoverflow com questions 44567107 how to make tabular legend using
  • 函数如何检查打字稿中的 null ?

    在 typescript 2 6 中 我想编写一个执行空检查的函数 当我启用严格的空检查时 typescript 2 6 会抱怨以下代码 注意 使用空检查时直接起作用 编辑 已更正notNullOrUndefined因为它没有检查 foo
  • 具有无限参数但具有相同(固定)类型的 C++ 函数

    我想要一个具有无限数量参数的函数 但我还想确保这些都是同一类型的指针 像这样的事情 void myFunc float value MyClass take all pointers of type MyClass and call fun
  • SQL Server 脚本生成器从十六进制转换日期时间值

    我需要从 SQL Server 生成插入脚本 当我使用 SQL Server 脚本生成器时 它会从十六进制转换日期时间值 例如 CAST xxxxxxxxxxxxx as dateTime 我怎样才能避免这种情况 我想要脚本中的实际值 不幸
  • Google Picker API 和选择 Google 云端硬盘项目的问题

    我正在尝试集成 Google Picker 以从 Google Drive 选择文件 如下这个例子 https developers google com drive integrate open 打开选择器时 我在 javascript
  • 使用 NSTask 和 NSPipe 导致 CPU 使用率 100%

    我正在尝试使用 NSTask 运行一个简单的 bash 脚本并将输出定向到文本视图 任务执行后 我的应用程序的 CPU 使用率为 100 即使它是一个简单的任务echo 目前 我创建了一个全新的项目来隔离该问题 interface AppD
  • 如何将 Byte[](解码为 PNG 或 JPG)转换为 Tensorflows 张量

    我正在尝试在 Unity 的项目中使用 Tensorflowsharp 我面临的问题是 对于转换 您通常使用第二个图将输入转换为张量 Android 不支持使用的函数 DecodeJpg 和 DecodePng 那么如何将该输入转换为张量
  • 如何使用 PHP 处理邮件发送错误

    我正在构建一个用于发送新闻通讯的 symfony 模块 这个想法是建立一个地址队列列表来接收邮件 然后使用 cron 作业 一次发送 50 个邮件 我现在不知道如何做是阅读当电子邮件地址不存在或邮件已满时服务器发回的邮件传送报告 这个想法是
  • 在 HTML 中查找值的快速方法 (Java)

    使用正则表达式 获取网站 HTML 并查找此标记内的值 或与此相关的任何属性值 的最简单方法是什么 snip snip 取决于您需要构建的 Http 请求的复杂程度 身份验证等 这是我过去见过的一种简单方法 StringBuilder ht
  • 检查丢失的软件包并安装它们的优雅方法?

    这些天我似乎与合著者分享了很多代码 他们中的许多人都是 R 新手 中级用户 并且没有意识到他们必须安装他们尚未安装的软件包 有没有一种优雅的调用方式installed packages 将其与我正在加载和安装的那些进行比较 如果丢失 是的
  • Windows 批处理文件中一行中的多个命令

    在 Unix 中 我们可以将多个命令放在一行中 如下所示 date ls l date 我在Windows中尝试过类似的事情 gt echo TIME dir echo TIME 但它打印了时间并且不执行命令dir 我怎样才能实现这个目标
  • 在mapview中绘制透明的圆

    我的地图视图和叠加有问题 每次改变 GPS 位置时 我都必须在地图上画一个圆圈 我在覆盖类中使用了扩展覆盖的方法绘制 问题是我必须以透明度绘制这些圆圈 但是当圆圈在交点处相互重叠时 颜色会有所不同 因为存在 alpha 之和 我该如何修复它
  • 多线程Hello World

    使用两个线程 您应该打印 Hello World Hello World Hello World Hello World Hello World Hello World 在两个线程中 一个应该打印 Hello 另一个线程应该打印 World
  • 将本地时间转换为 UTC 时,如何使 Time::Piece 尊重 DST?

    我想将时间戳从当地时间转换为 GMT 我有遗留代码 手动 执行此操作Time Local timelocal and gmtime 它有效 但我不喜欢它并想使用Time Piece反而 我用了这个答案 https stackoverflow
  • pyinstaller 没有名为 pyinstaller 的模块

    我的 mac osx sierra 下安装了 2 个 python 版本 蟒蛇3 5 蟒蛇2 7 我使用以下命令在 python3 5 下安装了 pyinstaller python3 5 m pip install pyinstaller
  • 设置 CSS 列中第一项的样式

    我有一个显示在多列上的列表 每个列表项都是块元素 display block 并附加了一些样式 底部有 1px 边框 目前看起来是这样的 List item List item List item List item List item L