在每行的第一个元素上设置边框

乔巴特

(我是网页设计的新手)我有一个链接列表(当前页面上的各个部分),这些链接可以根据视口大小扩展为多行。链接由垂直线(左边框)分隔:

当前结果

我想避免为每行的第一个元素显示边框。我设法避免为第一个孩子使用它,但是我不知道如何为每一行的第一个元素使用它。就像是:

预期成绩

请注意,每个页面的此列表可能有所不同。

问题:如何达到这样的效果?CSS?JavaScript?

.links a {
  display: inline-block;
}
.links a:not(:first-child) {
  border-left: 1px solid black;
  padding-left: 15px;
}
.links a:not(:last-child) {
  padding-right: 15px;
}
<div class="links">
  <a href="#">Link number 1</a>
  <a href="#">Link number 2</a>
  <a href="#">Link number 3</a>
  <a href="#">Link number 4</a>
  <a href="#">Link number 567</a>
  <a href="#">Link number 6</a>
  <a href="#">Link number 7</a>
  <a href="#">Link number 8</a>
  <a href="#">Link number 9</a>
</div>

PS:display: inline-block只是为了避免在行之间缠绕。我想避免更改HTML结构,因为许多页面都会受到影响。此类链接始终嵌套在<div class="links"></div>示例中所示的中。

泰勒罗珀

设置overflow: hidden;在容器上,给你的链接负left-margin您只需将两倍加倍,即可抵消其他链接上的负边距padding-right

.links {
  overflow: hidden;
}
.links a {
  display: inline-block;
  border-left: 1px solid black;
  padding-left: 15px;
  margin-left: -15px;
}
.links a:not(:last-child) {
  padding-right: 30px;
}
<div class="links">
  <a href="#">Link number 1</a>
  <a href="#">Link number 2</a>
  <a href="#">Link number 3</a>
  <a href="#">Link number 4</a>
  <a href="#">Link number 567</a>
  <a href="#">Link number 6</a>
  <a href="#">Link number 7</a>
  <a href="#">Link number 8</a>
  <a href="#">Link number 9</a>
</div>


这个怎么运作

左边距和左边框存在,但是,负利润率迫使他们离开容器。然后,我们使用来将任何东西隐藏在容器之外overflow: hidden

下面的示例通过删除overflow: hidden;容器并为其设置边框来显示实际发生的情况

.links {
  border: 1px solid red;
  overflow: visible;
  margin-left: 30px;
}
.links a {
  display: inline-block;
  border-left: 1px solid black;
  padding-left: 15px;
  margin-left: -15px;
}
.links a:not(:last-child) {
  padding-right: 30px;
}
<div class="links">
  <a href="#">Link number 1</a>
  <a href="#">Link number 2</a>
  <a href="#">Link number 3</a>
  <a href="#">Link number 4</a>
  <a href="#">Link number 567</a>
  <a href="#">Link number 6</a>
  <a href="#">Link number 7</a>
  <a href="#">Link number 8</a>
  <a href="#">Link number 9</a>
</div>

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在加载时在第一个元素上设置动画?

jQuery .append() 仅在第一个元素上

CSS:如何在每行中选择第一个<td>元素?

numpy索引:二维数组中每行的第一个(可变)元素数

正则表达式获取每行的第一个元素

筛选列表中符合每行熊猫标准的第一个元素

每行的第一个非零元素

Angular2仅在第一个元素上使用ng-for时如何设置元素类名称

替换txt文件中每行上匹配文本的第一个实例

二维数组打印每行的第一个负数和最后一个之间的元素总和

防止每行的第一个下拉选项重复

使每行的第一个可用字母大写

获取每行的第一个非空值

使用每行的第一个单词作为变量

在每行中填充第一个NaN

删除每行的第一个字母

数组第一个元素

XPATH的第一个元素

缩进的第一个元素

在列表的最后一个空间上拆分第一个元素

在 json 元素数组上使用 Junit 断言在第一个元素上失败

删除第一个子项的边框

自动用元素列表循环填充数组,仅设置第一个元素

如何使用 bash/awk 将每个文件的日期显示为每行的第一个元素?

CSS第n个子元素-每行的第一个TD,是否采用其他颜色?

添加第一个元素或删除最后一个元素时触发事件的设置

在二维数组(网格)中设置第一个数组的第一个元素在每个内部数组中设置第一个元素

如何计算每行的平均值(不包括每行的第一个值)?

Numpy max 仅在一对数组的第一个元素上