当前位置: 首页 > 面试题库 >

防止CSS网格中出现双重边框

舒斯伯
2023-03-14
问题内容

给定当前的CSS网格示例,如何折叠边框以避免出现双边框?

这是使用Html表实现的如此简单的事情。如何使用display: grid

.wrapper {

  display: grid;

  grid-template-columns: 50px 50px 50px 50px;

}



.wrapper > div {

  padding: 15px;

  text-align: center;

  border: 1px solid black;

}


<div class="wrapper">

  <div>1</div>

  <div>2</div>

  <div>3</div>

  <div>4</div>

  <div>5</div>

  <div>6</div>

  <div>7</div>

  <div>8</div>

</div>

问题答案:

您可能会这样:

.wrapper {

  display: inline-grid;

  grid-template-columns: 50px 50px 50px 50px;

  border-bottom: 1px solid black;

  border-left: 1px solid black;

}



.wrapper > div {

  padding: 15px;

  text-align: center;

  border-top: 1px solid black;

  border-right: 1px solid black;

}



body {

 background:pink;

}


<div class="wrapper">

  <div>1</div>

  <div>2</div>

  <div>3</div>

  <div>4</div>

  <div>5</div>

  <div>6</div>

  <div>7</div>

  <div>8</div>

</div>

另一个想法是依靠渐变来填补空白,如下所示:

.wrapper {

  display: inline-grid;

  grid-template-columns: 50px 50px 50px 50px;

  grid-gap:1px;

  background:

    linear-gradient(#000,#000) center/100% 1px no-repeat,

    repeating-linear-gradient(to right,

        transparent ,transparent 50px,

        #000 50px,#000 51px);

  border:1px solid;

}



.wrapper > div {

  padding: 15px;

  text-align: center;

}



body {

 background:pink;

}


<div class="wrapper">

  <div>1</div>

  <div>2</div>

  <div>3</div>

  <div>4</div>

  <div>5</div>

  <div>6</div>

  <div>7</div>

  <div>8</div>

</div>

您还可以调整初始解决方案以使其更加灵活,并且可以在一行中处理任意数量的项目。

在整个页面上运行以下代码并调整窗口大小:

.wrapper {

  display: grid;

  max-width:800px;

  grid-template-columns: repeat(auto-fill,minmax(100px,1fr));

  border-top: 1px solid black;

  border-left: 1px solid black;

}



.wrapper > div {

  padding: 15px;

  text-align: center;

  border-bottom: 1px solid black;

  border-right: 1px solid black;

}



body {

 background:pink;

}


<div class="wrapper">

  <div>1</div>

  <div>2</div>

  <div>3</div>

  <div>4</div>

  <div>5</div>

  <div>6</div>

  <div>7</div>

  <div>8</div>

  <div>9</div>

  <div>10</div>

  <div>11</div>

</div>


 类似资料:
  • 我有一个包装了一个块,当点击它时,会打开一个新的场景(我使用的是react native router flux)。 除了快速点击之外,一切正常,场景可以渲染两次。 我想防止用户快速点击该按钮。 在本机中实现这一点的最佳方法是什么?我研究了手势应答器系统,但没有任何例子或类似的东西,如果你是新来的,像我一样,会让人困惑。

  • 问题内容: 即使单元格为空,我应该使用哪种CSS来显示单元格的边框? 专门针对IE 7。 问题答案: 如果我还记得的话,除非在某些IE中存在该单元格,否则它不存在… 如果您可以放置​​一个(不间断的空格)来填补空白,那通常会起作用。还是您需要纯CSS解决方案? 显然,IE8默认显示单元格,您必须使用隐藏它,但是它在IE7中根本不起作用(默认情况下是隐藏的)。

  • 我试图阻止用户在谷歌地图的某个区域之外移动。然而,似乎没有一种简单的方法来做到这一点。第一次在这里求你发发慈悲吧。 我尝试了以下方法,试图在用户滚动时进行轮询,但问题是OncamaChange触发的频率不够,因此它的工作不稳定且不准确。我知道一定有某种方法可以做到这一点,因为它似乎是一个简单而基本的功能。

  • 我希望能够覆盖 doubleTap 运动事件,使其不执行任何操作,而不是缩放和取消缩放。我在另一篇文章中读到,有人能够通过创建自定义WebView类并覆盖其中的内容来使其工作,但是无论如何,我似乎都无法在DoubleTap上启动,并且无论如何双击缩放仍在发生。 到目前为止,我的进展是我可以正确触发onDown事件(我在调试输出窗口中看到了msg)。 这是我的代码,在我帖子的最底部有一个链接,指向我

  • 问题内容: 在当前的工作中,我需要在容器上产生一个双边框。边框样式:double;做到这一点,但是我的客户希望外部边界更厚,内部边界具有正常的厚度。 除了创建2个div之外,还有1个嵌套在另一个div中,外部div具有更大的厚度,或者通过使用边框图像,有什么方法可以用CSS来实现,而仅使用1 div?指定边框样式:double; 并且仍然能够使外边界更厚。 问题答案: 轮廓包含在CSS3规范中,并

  • 我有一个蓝牙条形码扫描仪附在Android平板电脑上。硬件键盘在Android设置中被禁用。这让我既可以扫描条形码,又可以使用软键盘打字。 当我扫描条形码时,我的活动按预期捕获所有键。但是软键盘出现了。 但什么都没起作用。当应用程序按下硬件键时,软键盘就会出现。