CSS - исправлено изменение ширины границы при изменении размера окна браузера - PullRequest
0 голосов
/ 25 октября 2018

Я сделал 2 простые кнопки ссылки, которые расположены в тегах 2 div.

Это код css и html, который я пробовал:

.lang-box {
  position: absolute;
  bottom: 60px;
  left: 2%;
  z-index: 3;
}

.flex-container {
  display: flex;
}

.flex-direction-column {
  flex-direction: column;
}

.border-gold {
  border: 2px solid #ac8b45;
}

.text-gold {
  color: #ac8b45;
}

.background-gold {
  background-color: #ac8b45;
}

.text-black {
  color: #000;
}

.no-background {
  background-color: transparent;
}

.lang-a-button {
  text-decoration: none;
  outline: 0;
  display: block;
  font-size: 20px;
  padding-bottom: 6px;
  padding-top: 10px;
  padding-left: 6px;
  padding-right: 6px;
  height: auto;
  text-align: center;
}

.lang-a-button:hover {
  text-decoration: none;
  opacity: .7;
}
<div class="lang-box">
  <div class="flex-container flex-direction-column border-gold">
    <a href="/en" target="_self" class="lang-a-button no-background text-gold" title="Change to English">EN</a>
    <a href="/" target="_self" class="active_lang lang-a-button text-black background-gold" title="Cambia in Italiano">IT</a>
  </div>
</div>

И это конечный результат:

this is the final result

Проблема в том, чтоправая граница .border-gold изменяется по толщине при изменении размера экрана браузера:

Problem with border 1 Problem with border 2

Не знаюЯ не понимаю, почему это происходит.Я пытался использовать это , но ничего не изменилось.

Я использую Google Chrome v69 для тестирования.

Нужно ли что-то добавить?

1 Ответ

0 голосов
/ 26 октября 2018

Попробуйте добавить ссылки flex-grow:0; flex-shrink:0; и фиксированную ширину, например:

* {
  box-sizing: border-box;
}

.lang-box {
    position: absolute; 
    top: 60px;
    left: 2%; 
    z-index: 3;
  
  width: 42px;
}

.flex-container{
  display: flex;
  width: 100%;
}

.flex-direction-column{
    flex-direction: column;
}

.border-gold{
    border: 2px solid #ac8b45;
}

.text-gold{
  color: #ac8b45;
}

.background-gold{
    background-color: #ac8b45;
}

.text-black{
    color: #000;
}

.no-background{
  background-color: transparent;
}

.lang-a-button{
    text-decoration: none;
    outline: 0;
    display: block;
    font-size: 20px;
    padding-bottom: 6px;
    padding-top: 10px;
    /* padding-left: 6px;
    padding-right: 6px; */
    height: auto;
    text-align: center;
  
  width: 100%;
  flex-grow:0;
  flex-shrink:0;
  width: 40px;
}

.lang-a-button:hover{
    text-decoration: none;
    opacity: .7;
}
<div class="lang-box">
    <div class="flex-container flex-direction-column border-gold">
         <a href="/en" target="_self" class="lang-a-button no-background text-gold" title="Change to English">EN</a>
          <a href="/" target="_self" class="active_lang lang-a-button text-black background-gold" title="Cambia in Italiano">IT</a>
    </div>
</div>

У меня нет точного ответа, но я думаю, что это из-за особенности flex & flex-direction: column.Даже когда мы устанавливаем фиксированную ширину элемента внутри блока flex, это не всегда учитывается.Поэтому для блоков с фиксированной шириной необходимо дополнительно указать flex-grow: 0; flex-shrink: 0;.

Итак ... для flex-direction: column ... добавить фиксированную ширину для переноса и внутренних ссылок.

...