首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CSS -为li提供边界

CSS -为li提供边界
EN

Stack Overflow用户
提问于 2019-01-30 14:53:02
回答 3查看 2.7K关注 0票数 1

我在试着给我的列表加上边界。我使用li来实现这一点。我已经创建了一些东西,我已经在上面附加了它,你可以检查一下。我使用了额外的div,但我需要删除所有额外的div,并且只需要使用css就可以给出这样的边框。我们能做到吗?

代码语言:javascript
复制
.counter {
  position: relative;
  max-width: 600px;
}

.counter ul {
  display: inline-block;
  max-width: 600px;
  margin: 0 auto;
  width: 100%;
}

.counter li {
  float: left;
  width: 33.33%;
  height: 100px;
}

.counter li .c-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  align-content: stretch;
  height: 100%;
  width: 100%;
}

.line-1 {
  height: 1px;
  width: 100%;
  background: #000;
  position: absolute;
  left: 0;
  right: 0;
  top: 65%;
}

.line-2 {
  height: 1px;
  width: 100%;
  background: #000;
  position: absolute;
  left: 0;
  right: 0;
  top: 35%;
}

.line-3 {
  height: 100%;
  width: 1px;
  background: #000;
  position: absolute;
  right: 35%;
  top: 0;
  bottom: 0;
}

.line-4 {
  height: 100%;
  width: 1px;
  background: #000;
  position: absolute;
  right: 65%;
  top: 0;
  bottom: 0;
}
代码语言:javascript
复制
<div class="counter">
  <div class="line-1"></div>
  <div class="line-2"></div>
  <div class="line-3"></div>
  <div class="line-4"></div>
  <ul>
    <li>
      <div class="c-grid"> 1 </div>
    </li>
    <li>
      <div class="c-grid"> 2 </div>
    </li>
    <li>
      <div class="c-grid"> 3 </div>
    </li>
    <li>
      <div class="c-grid"> 4 </div>
    </li>
    <li>
      <div class="c-grid"> 5 </div>
    </li>
    <li>
      <div class="c-grid"> 6 </div>
    </li>
    <li>
      <div class="c-grid"> 7 </div>
    </li>
    <li>
      <div class="c-grid"> 8 </div>
    </li>
    <li>
      <div class="c-grid"> 9 </div>
    </li>
  </ul>
</div>

EN

回答 3

Stack Overflow用户

发布于 2019-01-30 15:17:20

添加list-style-position:inside;

代码语言:javascript
复制
.borderlist {
list-style-position:inside;
border: 1px solid black;

}

票数 0
EN

Stack Overflow用户

发布于 2019-01-30 15:17:35

在这里,我删除了四行div行,并使用了li边框,您可以在其中添加尽可能多的行,并且它将继续跟随还添加了box-sizing: border-box;,以避免网格中断

代码语言:javascript
复制
* {
  box-sizing: border-box;
}
.counter {
  position: relative;
  max-width: 600px;
}

.counter ul {
  display: inline-block;
  max-width: 600px;
  margin: 0 auto;
  width: 100%;
  padding: 0;
}

.counter li {
  float: left;
  width: 33.33333%;
  height: 100px;
}

.counter li .c-grid {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  justify-content: center;
  align-items: center;
  align-content: stretch;
  height: 100%;
  width: 100%;
}

li {
  border-right: 1px solid #000;
  border-bottom: 1px solid #000;
}

li:nth-child(3n) {
  border-right: none;
}

li:nth-last-child(-n+3),
li:nth-last-child(-n+2),
li:last-child {
  border-bottom: none;
}
代码语言:javascript
复制
<div class="counter">
  <ul>
    <li>
      <div class="c-grid"> 1 </div>
    </li>
    <li>
      <div class="c-grid"> 2 </div>
    </li>
    <li>
      <div class="c-grid"> 3 </div>
    </li>
    <li>
      <div class="c-grid"> 4 </div>
    </li>
    <li>
      <div class="c-grid"> 5 </div>
    </li>
    <li>
      <div class="c-grid"> 6 </div>
    </li>
    <li>
      <div class="c-grid"> 7 </div>
    </li>
    <li>
      <div class="c-grid"> 8 </div>
    </li>
    <li>
      <div class="c-grid"> 9 </div>
    </li>
  </ul>
</div>

票数 0
EN

Stack Overflow用户

发布于 2019-01-30 15:23:17

最简单的方法是使用带有一些nth-child边框样式的CSS Grid。使用这种方法,我们可以删除:

不必要的<div>s

  • floats

  • redundant样式

代码语言:javascript
复制
html, body, ul {
  margin: 0;
  padding: 0;
}

ul {
  list-style: none;
  display: grid;
  grid-template-columns: repeat(3, 1fr);
}

ul > li {
  padding: 20px 15px;
  text-align: center;
}

/* First 6 items */
ul > li:nth-child(-n + 6)  {
  border-bottom: 1px solid black;
}

/* Every 3rd item, starting from the 2nd item */
ul > li:nth-child(3n + 2) {
  border-left: 1px solid black;
  border-right: 1px solid black;  
}
代码语言:javascript
复制
<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>

https://jsfiddle.net/2hg9zr4q/3/

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54434818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档