允许按钮在响应网格中完全展开而不截断文本

时间:2018-01-16 22:05:54

标签: html css

我有一个响应式网格和按钮容器,它出现在许多不同页面上,每页都有不同长度的文本。

我不想文本换行,所以我在按钮上使用了white-space: nowrap

问题是,对于save and continue等较长的文本,文本会被截断。

无论父容器的宽度如何,文本是否可以扩展到所需的数量?

我可以在按钮上使用width: auto,但在较低的分辨率下会崩溃。

.wrapper {
  margin: 0 auto;
  padding: 0 15px;
}

.grid {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-left: -30px;
}

.grid__item {
  display: inline-block;
  padding-left: 30px;
  vertical-align: top;
  width: 100%;
  box-sizing: border-box;
}

.application-layout__container__right {
  float: right;
}

.one-half {
  width: 50%;
}

button {
  width: 100%;
  white-space: nowrap;
  border: 1px solid #0065bd;
  background-color: #0065bd;
  color: #fff;
  font-size: 16px;
  height: auto;
  text-transform: uppercase;
  padding: 14px 22px;
  line-height: 28px;
  font-weight: bold;
  cursor: pointer;
  display: table;
  vertical-align: middle;
  text-align: center;
  text-decoration: none;
  border-radius: 0;
  width: 100%;
}
@media (min-width: 380px) {
  .application-layout__container {
    padding-right: 0;
  }
  .wrapper {
    max-width: 750px;
  }
  .medium--one-half {
    width: 50%;
  }
  
  button {
    font-size: 19px;
  }
}

@media (min-width: 992px) {
  .wrapper {
    max-width: 970px;
  }
  .large--one-third {
    width: 33.33333%;
  }
}

@media (min-width: 1200px) {
  .wrapper {
    max-width: 1170px;
  }
}
<div class="wrapper application-layout__button__wrapper">
  <div class="grid">
    <div class="grid__item one-half">
      <div class="grid">
        <div class="grid__item one-whole  medium--one-half large--one-third ">
          <button>Back
          </button>
        </div>
      </div>
    </div>
    <div class="grid__item one-half  application-layout__container__right">
      <div class="grid">
        <div class="grid__item one-whole medium--one-half large--one-third">
          <button class="remote-submit-button__default button__default button__primary" type="button">Confirm and pay</button>
        </div>
      </div>
    </div>
  </div>
</div>

1 个答案:

答案 0 :(得分:1)

您需要的是一个值,但所有broswer尚不支持它。宽度/分钟宽度可以使用fit-content

.wrapper {
  margin: 0 auto;
  padding: 0 15px;
}

.grid {
  list-style: none;
  margin: 0;
  padding: 0;
  margin-left: -30px;
}

.grid__item {
  display: inline-block;
  padding-left: 30px;
  vertical-align: top;
  width: 100%;
  box-sizing: border-box;
}

.application-layout__container__right {
  float: right;
}

.one-half {
  width: 50%;
}

button {
  width: 100%;
  white-space: nowrap;
  border: 1px solid #0065bd;
  background-color: #0065bd;
  color: #fff;
  font-size: 16px;
  height: auto;
  text-transform: uppercase;
  padding: 14px 22px;
  line-height: 28px;
  font-weight: bold;
  cursor: pointer;
  display: table;
  vertical-align: middle;
  text-align: center;
  text-decoration: none;
  border-radius: 0;
  min-width: fit-content;
}
@media (min-width: 380px) {
  .application-layout__container {
    padding-right: 0;
  }
  .wrapper {
    max-width: 750px;
  }
  .medium--one-half {
    width: 50%;
  }
  
  button {
    font-size: 19px;
  }
}

@media (min-width: 992px) {
  .wrapper {
    max-width: 970px;
  }
  .large--one-third {
    width: 33.33333%;
  }
}

@media (min-width: 1200px) {
  .wrapper {
    max-width: 1170px;
  }
}
<div class="wrapper application-layout__button__wrapper">
  <div class="grid">
    <div class="grid__item one-half">
      <div class="grid">
        <div class="grid__item one-whole  medium--one-half large--one-third ">
          <button>Back
          </button>
        </div>
      </div>
    </div>
    <div class="grid__item one-half  application-layout__container__right">
      <div class="grid">
        <div class="grid__item one-whole medium--one-half large--one-third">
          <button class="remote-submit-button__default button__default button__primary" type="button">Confirm and pay</button>
        </div>
      </div>
    </div>
  </div>
</div>