jquery - 隐藏内容扭曲了 css 多列布局上的列

标签 jquery html css css-multicolumn-layout

我正在尝试获得一个 3 列网格,以便隐藏对象能够在同一列上显示和展开,而无需将内容移动到下一列或为其他列创建空白。这是我到目前为止所拥有的,但是当您单击按钮以显示隐藏内容时,下面的内容将移至下一列。我怎样才能让它保持在同一列?

$("#clickable").click(function(){
  $(".hidden_until_button_clicked").toggle();
});
#container {
  width: 100%;
  max-width: 700px;
  margin: 2em auto;
}
.flex-col {
  columns: 3;
  -webkit-columns: 3;
}
.box {
  height: auto;
  display: block;
  margin-bottom: 20px;
  page-break-inside: avoid;
  background-color: red;
}
.hidden_until_button_clicked{
  display: none;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <div id="container" class="flex-col">
    <div class="box">Box 1</div>
    <div class="box">
      Box 2 <br />
      <button id="clickable">Click me</button>
      <div class="hidden_until_button_clicked">
        <p>This is all the extra content hidden until clicked</p>
      </div>
    
    </div>
    <div class="box">Box 3</div>
    <div class="box">Box 4</div>
    <div class="box">Box 5</div>
    <div class="box">Box 6</div>
    <div class="box">Box 7</div>
    <div class="box">Box 8</div>
  </div>

最佳答案

可以给点击后显示的div设置绝对位置:

$("#clickable").click(function(){
  $(".hidden_until_button_clicked").toggle();
});
#container {
  width: 100%;
  max-width: 700px;
  margin: 2em auto;
}
.flex-col {
  columns: 3;
  -webkit-columns: 3;
}
.box {
  height: auto;
  display: block;
  margin-bottom: 20px;
  page-break-inside: avoid;
  background-color: red;
}
.hidden_until_button_clicked{
  display: none;
  position: absolute;
  background: red;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
  <div id="container" class="flex-col">
    <div class="box">Box 1</div>
    <div class="box">
      Box 2 <br />
      <button id="clickable">Click me</button>
      <div class="hidden_until_button_clicked">
        <p>This is all the extra content hidden until clicked</p>
      </div>
    
    </div>
    <div class="box">Box 3</div>
    <div class="box">Box 4</div>
    <div class="box">Box 5</div>
    <div class="box">Box 6</div>
    <div class="box">Box 7</div>
    <div class="box">Box 8</div>
  </div>

关于jquery - 隐藏内容扭曲了 css 多列布局上的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58067799/

相关文章:

javascript - 如何设置 href 以 Bootstrap 导航栏 onclick 菜单它应该触发到另一个页面的标签栏

jquery - 当标记拖出多边形时发出警报

javascript - 如何禁用 DocuSign 基于浏览器的地理位置弹出对话框

html - Bootstrap 尝试将 Logo 向左对齐并将其居中

html - 如何更改文本区域输入中的滚动条?

html - 创建消息框

javascript - CSS 和 jQuery 制作一个滑动面板,将另一个 div 水平推,而不是向下推,并且右侧面板必须填充所有页面

javascript - jQuery - 停止 ajax 请求

javascript - 更改location.href后执行函数

html - 如何将输入定位在它自己的 div 的左下角