CSS面包屑步骤指示器调整大小问题

标签 css breadcrumbs

我的购物网站顶部有一个面包屑导航。它显示了在购买过程中有多少步骤以及它们进行了多长时间。并不意味着可以点击。

我遇到的问题是,当从手机或较小的窗口查看时,它会被挤压并显示为两行而不是一行。

有没有办法让整个东西显示在一行中,最好是屏幕宽度的 100%,并自动调整大小以适应 100% 的较小屏幕宽度?

目前它有一个固定的宽度,基于有多少步。我试图让它在大屏幕上自动调整为更大、大小相等的步长,并在手机和平​​板电脑等小屏幕上变小但仍然内嵌。

    .step-indicator {
      margin-bottom: 20px;
      line-height: 30px;
    }
    
    .step {
      display: inline;
      float: left;
      font-weight: normal;
      background: #858585;
      padding-right: 10px;
      height: 30px;
      line-height: 32px;
      margin-right: 33px;
      position: relative;
      text-decoration: none;
      color: #fff;
      cursor: default;
    }
    .step:before {
      content: "";
      display: block;
      width: 0;
      height: 0;
      position: absolute;
      top: 0;
      left: -30px;
      border: 15px solid transparent;
      border-color: #858585;
      border-left-color: transparent;
    }
    .step:after {
      content: "";
      display: block;
      width: 0;
      height: 0;
      position: absolute;
      top: 0;
      right: -30px;
      border: 15px solid transparent;
      border-left-color: #858585;
    }
    .step:first-of-type {
      border-radius: 2px 0 0 2px;
      padding-left: 15px;
    }
    .step:first-of-type:before {
      display: none;
    }
    .step:last-of-type {
      border-radius: 0 2px 2px 0;
      margin-right: 25px;
      padding-right: 15px;
    }
    .step:last-of-type:after {
      display: none;
    }
    .step.completed {
      background: #CC2262;
      color: #fff;
      cursor: pointer;
    }
    .step.completed:before {
      border-color: #CC2262;
      border-left-color: transparent;
    }
    .step.completed:after {
      border-left-color: #CC2262;
    }
    .step.completed:hover {
      background: #CC2262;
      border-color: #CC2262;
      color: #fff;
      text-decoration: none;
    }
    .step.completed:hover:before {
      border-color: #CC2262;
      border-left-color: transparent;
    }
    .step.completed:hover:after {
      border-left-color: #CC2262;
    }
    <div class="step-indicator">
      <a class="step completed">Step 1</a>
      <a class="step completed">Step 2</a>
      <a class="step completed">Step 3</a>
      <a class="step">Step 4</a>
      <a class="step">Step 5</a>
    </div>  

最佳答案

您可以使用 display:flex; 来拉伸(stretch)内容,并使用媒体查询在页面低于特定宽度时更改字体大小。不幸的是,没有办法仅使用 CSS 来使字体自行调整大小以适应。

.step-indicator {
  display: flex;
}

.step:first-of-type::before,
.step:last-of-type::after {
  display: none;
}

.step {
  flex: 1;
  background: #858585;
  height: 30px;
  line-height: 30px;
  margin-right: 33px;
  position: relative;
  color: #fff;
  cursor: default;
}

.step::after,
.step::before {
  content: "";
  position: absolute;
  width: 0;
  height: 0;
  top: 0;
}

.step::before {
  left: -30px;
  border: 15px solid transparent;
  border-color: #858585 #858585 #858585 transparent;
}

.step::after {
  right: -30px;
  border: 15px solid transparent;
  border-left-color: #858585;
}

.step:first-of-type {
  border-radius: 2px 0 0 2px;
  padding-left: 15px;
}

.step:last-of-type {
  border-radius: 0 2px 2px 0;
  margin-right: 0;
}

.step.completed {
  background: #CC2262;
  color: #fff;
  cursor: pointer;
}

.step.completed::before {
  border-color: #CC2262 #CC2262 #CC2262 transparent;
}

.step.completed::after {
  border-left-color: #CC2262;
}
<div class="step-indicator">
  <a class="step completed">Step 1</a>
  <a class="step completed">Step 2</a>
  <a class="step completed">Step 3</a>
  <a class="step">Step 4</a>
  <a class="step">Step 5</a>
</div>

在我的示例中,我删除了一些没有做任何事情的 CSS,并添加了 flex 位。

要进一步阅读,我建议查看 flexboxmedia queries

希望对您有所帮助

关于CSS面包屑步骤指示器调整大小问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49007000/

相关文章:

javascript - 在不影响导航按钮的情况下单击元素外部时尝试关闭移动菜单(删除类)

javascript - 与使用 getBoundingClientRect 之前放置的位置相比,元素的位置不会保持不变

css - 如何将 CSS 背景图像保持在所有 div(面包屑箭头)之上?

php - 使用 knpmenu bundle 在 symfony 2.1 中创建面包屑

javascript - Angular 2 上的重置表格

css - 如何使用边框图像和线性渐变设置多色边框?

html - 格式化表格中的列

Angular 4 : Routing rule with an undefined number of parameters

seo - RDFa 面包屑在 Google SERP 中未按预期工作

javascript - 在跨度内修改链接时出现问题