CSS网格布局中的每一列之间的边界

发布于 2025-02-05 05:56:41 字数 2099 浏览 4 评论 0原文

我正在尝试在CSS中的网格布局中添加每个列之间的边界。但是,在我的包装师内部,我没有包含相同内容的div,因此当我试图设置边框并留在包装纸上,然后在我的内部divs上放置边框权利和底部,边界的高度不是相同的。我只想知道,当我做网格 - 板柱时:1fr 1fr 1fr;我如何为每个分数设置边界右翼。

这是我的代码:

<div class="sort-count-filter">
  
    <div class="product-count">
        <p>{{ collection.products_count }} products</p>
    </div>

    <!-- collections filter by tag -->
    <div class="filter-by">
      {% if collection.all_tags.size > 0 %}
        <p>Filter by</p>
        <ul class="tag-filters">
          {% for tag in collection.all_tags %}
          {% unless tag contains "_"%}
            {% if current_tags contains tag %}
                <li class="tag-filters__item"><p class="filters">{{ tag | link_to_remove_tag: tag }}</p></li>
            {% else %}
              <li class="tag-filters__item"><p class="filters">{{ tag | link_to_add_tag: tag }}</p></li>
            {% endif %}
          {% endunless %}
          {% endfor %}
        </ul>
      {% endif %}
    </div>

<!-- collection sort -->
    <div class="sort-by">
      <span>Sort by</span>
      <span>
        <select id="sort-by">
            {% assign sort_by = collection.sort_by | default: collection.default_sort_by %}
            {% for option in collection.sort_options %}
              <option value="{{ option.value }}" {% if option.value == sort_by %}selected="selected"{% endif %}>
                {{ option.name }}
              </option>
            {% endfor %}
          </select>
        </span>
    </div> 

</div>

这是CSS:

.sort-count-filter {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    margin-top: 3%;
    font-family: "Open Sans";
    justify-content: center;
    align-items: center;
    border-top: 1px solid black;
    border-left: 1px solid black;
}
.sort-count-filter > div {
    border-bottom: 1px solid black;
    border-right: 1px solid black;
}

I am trying to add borders between each columns in a grid layout in CSS. However, inside my wrapper div, the divs that I have don't contain the same content, so when I'm trying to set a border-top and left on my wrapper div and then a border-right and bottom on my inside divs, the borders aren't of the same height. I just want to know that when I'm doing grid-template-columns: 1fr 1fr 1fr; how can I set a border-right for each fraction.

Here's my code:

<div class="sort-count-filter">
  
    <div class="product-count">
        <p>{{ collection.products_count }} products</p>
    </div>

    <!-- collections filter by tag -->
    <div class="filter-by">
      {% if collection.all_tags.size > 0 %}
        <p>Filter by</p>
        <ul class="tag-filters">
          {% for tag in collection.all_tags %}
          {% unless tag contains "_"%}
            {% if current_tags contains tag %}
                <li class="tag-filters__item"><p class="filters">{{ tag | link_to_remove_tag: tag }}</p></li>
            {% else %}
              <li class="tag-filters__item"><p class="filters">{{ tag | link_to_add_tag: tag }}</p></li>
            {% endif %}
          {% endunless %}
          {% endfor %}
        </ul>
      {% endif %}
    </div>

<!-- collection sort -->
    <div class="sort-by">
      <span>Sort by</span>
      <span>
        <select id="sort-by">
            {% assign sort_by = collection.sort_by | default: collection.default_sort_by %}
            {% for option in collection.sort_options %}
              <option value="{{ option.value }}" {% if option.value == sort_by %}selected="selected"{% endif %}>
                {{ option.name }}
              </option>
            {% endfor %}
          </select>
        </span>
    </div> 

</div>

Here's the CSS:

.sort-count-filter {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    margin-top: 3%;
    font-family: "Open Sans";
    justify-content: center;
    align-items: center;
    border-top: 1px solid black;
    border-left: 1px solid black;
}
.sort-count-filter > div {
    border-bottom: 1px solid black;
    border-right: 1px solid black;
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

国产ˉ祖宗 2025-02-12 05:56:42

也许您想要Align-Items:Stretch

此页面是格式化网格的很好参考。

.sort-count-filter {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    font-family: "Open Sans";
    justify-content: center;
    align-items: stretch;
    border-top: 1px solid black;
    border-left: 1px solid black;
}
.sort-count-filter > div {
    border-bottom: 1px solid black;
    border-right: 1px solid black;
    padding: 0 1em;
}
<div class="sort-count-filter">
  
    <div class="product-count">
        <p>99 products</p>
    </div>

    <div class="filter-by">
        <p>Filter by</p>
        <ul class="tag-filters">
          <li class="tag-filters__item"><p class="filters">One</p></li>
          <li class="tag-filters__item"><p class="filters">Two</p></li>
          <li class="tag-filters__item"><p class="filters">Three</p></li>
          <li class="tag-filters__item"><p class="filters">Four</p></li>
          <li class="tag-filters__item"><p class="filters">Five</p></li>
          <li class="tag-filters__item"><p class="filters">Six</p></li>
          <li class="tag-filters__item"><p class="filters">Seven</p></li>
        </ul>
    </div>

    <div class="sort-by">
      <p>Sort by
        <select id="sort-by">
              <option>One</option>
              <option>Two</option>
              <option>Three</option>
              <option>Four</option>
          </select>
        </p>
    </div> 

</div>

Perhaps you want align-items: stretch?

This page is a great reference for formatting grids.

.sort-count-filter {
    display: grid;
    grid-template-columns: 1fr 1fr 1fr;
    font-family: "Open Sans";
    justify-content: center;
    align-items: stretch;
    border-top: 1px solid black;
    border-left: 1px solid black;
}
.sort-count-filter > div {
    border-bottom: 1px solid black;
    border-right: 1px solid black;
    padding: 0 1em;
}
<div class="sort-count-filter">
  
    <div class="product-count">
        <p>99 products</p>
    </div>

    <div class="filter-by">
        <p>Filter by</p>
        <ul class="tag-filters">
          <li class="tag-filters__item"><p class="filters">One</p></li>
          <li class="tag-filters__item"><p class="filters">Two</p></li>
          <li class="tag-filters__item"><p class="filters">Three</p></li>
          <li class="tag-filters__item"><p class="filters">Four</p></li>
          <li class="tag-filters__item"><p class="filters">Five</p></li>
          <li class="tag-filters__item"><p class="filters">Six</p></li>
          <li class="tag-filters__item"><p class="filters">Seven</p></li>
        </ul>
    </div>

    <div class="sort-by">
      <p>Sort by
        <select id="sort-by">
              <option>One</option>
              <option>Two</option>
              <option>Three</option>
              <option>Four</option>
          </select>
        </p>
    </div> 

</div>

巴黎夜雨 2025-02-12 05:56:42

我有一个类似的问题,使我进入了这篇文章。但是,我直接使用网格。这是我所做的,这可能会帮助您或访问此帖子的人有类似的问题:

我正在使用以下代码创建四个网格,但它一直在每列之间创建空间:

.grid-four-cols {
    grid-template-columns: repeat(4, 1fr);
}

我只是使用以下属性来使列无用额外的空间:

.grid-four-cols {
    grid-template-columns: repeat(4, 1fr);
    grid-gap: initial;
}

希望此属性有助于解决问题。

I had a similar issue that led me into this post. However, I was using grids directly. Here's what I did that may help you or the person visiting this post with similar issue:

I was using the below code to create four grids but it kept creating space between each column:

.grid-four-cols {
    grid-template-columns: repeat(4, 1fr);
}

I just used the below property to make the columns be free of extra space:

.grid-four-cols {
    grid-template-columns: repeat(4, 1fr);
    grid-gap: initial;
}

Hope this property helps with the issue.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文