Как поместить цвет фона * позади * кнопки начальной загрузки - PullRequest
3 голосов
/ 27 июня 2019

Я пытаюсь, чтобы вход отображался при нажатии кнопки, но затем мне нужен фон вокруг кнопки и входа.В настоящее время моя разметка выглядит следующим образом:

enter image description here

Так что, когда причина щелчка, я в основном хочу желтый фон (предупреждение-предупреждение) вокруг причиныКнопка и вход.Моя разметка выглядит так:

div.saveReason {
    display: inline;
    background-color: #fff3cd;
    border: solid 1px #ffeeba;
    border-bottom-width: 0;
    padding-bottom: 20px;
    z-index: 1;
}
div.saveReasonDetail {
    z-index: 0;
}
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css">
<div>
    <a class="btn btn-primary mr-2 SaveEdits">Save</a>
    <div class="saveReason"><a href="#" class="btn btn-secondary mr-2 SaveReason">Reason</a></div>
    <a class="btn btn-link CancelEdits">Cancel</a>
    <div class="alert alert-warning mt-2 saveReasonDetail">
        <div class="form-group viReason">
            <div class="validator-container">
                <textarea name="iReason" rows="4" id="iReason" class="form-control iReason"></textarea>
            </div>
        </div>
    </div>
</div>

Мои проблемы:

1) Я не хочу, чтобы граница под кнопкой ... Я хочу, чтобы она была тольконет «снаружи» от желтого.

2) Я хочу, чтобы желтый фон немного выходил за пределы кнопки причины (не затрагивая поля между уже установленными кнопками).

Возможно ли это?

Обновление : я получил действительные ответы от Карима Даббита и Чейза Ингебрицона.Карим был сначала помечен как ответ, но я не являюсь экспертом в HTML, я думаю, что комментарий, который Чейз сделал по поводу «того же контейнера», кажется важным.Обязательно просмотрите и его ответ.

Ответы [ 3 ]

2 голосов
/ 27 июня 2019

В этом случае вы, вероятно, захотите поместить и элемент кнопки, и элемент текстового поля в один и тот же контейнер.Как только они имеют общего родителя, вы можете установить для position текстового поля значение absolute, и это не повлияет на положение других кнопок.

div.main { padding-top: 20px; }
div.saveReason {
  background-color: #fff3cd;
  border: solid 1px #ffeeba;
  border-bottom-width: 0;
  z-index: 1;
  
  display: inline-block;
  padding: 10px;
}

.saveReason > .btn {
  margin-right: 0 !important;
}

div.saveReasonDetail {
  z-index: -1;
  
  position: absolute;
  width: 100%;
  left: 0;
}
<link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/4.3.1/css/bootstrap.min.css" integrity="sha384-ggOyR0iXCbMQv3Xipma34MD+dH/1fQ784/j6cY/iJTQUOhcWr7x9JvoRxT2MZw1T" crossorigin="anonymous">

<div class="main">
  <a class="btn btn-primary mr-2 SaveEdits">Save</a>
  <div class="saveReason">
    <a href="#" class="btn btn-secondary mr-2 SaveReason">Reason</a>
    <div class="alert alert-warning mt-2 saveReasonDetail">
      <div class="form-group viReason">
        <div class="validator-container">
          <textarea name="iReason " rows="4 " id="iReason" class="form-control iReason"></textarea>
        </div>
      </div>
    </div>
    
  </div>
  <a class="btn btn-link CancelEdits">Cancel</a>
</div>
2 голосов
/ 27 июня 2019

Для первого вопроса:

Просто отредактируйте div.saveReasonDetail позицию и сделайте ее inherit:

div.saveReasonDetail {
    position: inherit;
}

Теперь отредактируйте цвет нижней границы для saveReason, чтобы сделать егоаналогично «saveReasonDetail» bg-color:

border-bottom-color: #FFF3CD

Для второго вопроса: чтобы смоделировать m-2 между каждой кнопкой, вам нужно изменить поле справа на кнопке сохранения на m-1 идобавьте отступы влево / вправо с тем же значением для кнопки причины, как показано ниже:

    .SaveEdits { 
      margin-right: 0 !important;
    }

    div.saveReason { 
        padding-left: 0.25rem;
        padding-right: 0.25rem;
        padding-top: 10px;
    }

Я нарисовал цветную ссылку "отмена", чтобы убедиться, что поля в порядке

Вот окончательный результат

div.main { 
    padding-top: 20px; 
}
div.saveReason {
    display: inline;
    background-color: #fff3cd;
    border: solid 1px #ffeeba;
    border-bottom-color: #fff3cd;
    padding-bottom: 20px;
    padding-top: 10px;
    padding-left: 0.25rem;
    padding-right: 0.25rem;
    z-index: 1;
}
div.saveReasonDetail {
   position: inherit;
}

.SaveEdits { 
margin-right: 0 !important
}
.CancelEdits { 
background-color: purple !important;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="main">
    <a class="btn btn-primary mr-1 SaveEdits">Save</a>
    <div class="saveReason"><a href="#" class="btn btn-secondary SaveReason"">Reason</a></div>
    <a class="btn btn-link ml-1 CancelEdits">Cancel</a>
    <div class="alert alert-warning mt-2 saveReasonDetail">
        <div class="form-group viReason">
            <div class="validator-container">
                <textarea name="iReason" rows="4" id="iReason" class="form-control iReason"></textarea>
            </div>
        </div>
    </div>
</div>
0 голосов
/ 28 июня 2019

Это ваше решение

div.main { 
    padding-top: 20px; 
}
div.saveReason {
    display: inline;
    background-color: #fff3cd;
    border: solid 1px #ffeeba;
    border-bottom-color: #fff3cd;
    padding-bottom: 20px;
    padding-top: 6px;
    z-index: 1;
}
div.saveReasonDetail {
   position: inherit;
}

.SaveEdits { 
margin-right: 0 !important
}
.CancelEdits { 
background-color: purple !important;
}
<link href="https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css" rel="stylesheet"/>
<div class="main">
    <a class="btn btn-primary mr-1 SaveEdits">Save</a>
    <div class="saveReason"><a href="#" class="btn btn-secondary SaveReason"">Reason</a></div>
    <a class="btn btn-link ml-1 CancelEdits">Cancel</a>
    <div class="alert alert-warning mt-2 saveReasonDetail">
        <div class="form-group viReason">
            <div class="validator-container">
                <textarea name="iReason" rows="4" id="iReason" class="form-control iReason"></textarea>
            </div>
        </div>
    </div>
</div>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...