CSS странная вещь происходит при масштабировании

0

это мой первый пост здесь. Я не знаю, как объяснить свою проблему, потому что я действительно не знаю, что заставляет мой CSS-код сломаться. Было бы проще показать вам фотографию.

Поэтому у меня есть тег div и входные и дочерние элементы div. Один из div - статический 32px x 32px, и я вычисляю его ширину с помощью calc (100% - 32px), но при масштабировании некоторые пиксели не заполняются входом.

Вот фотография проблемы: http://imgur.com/TkRFLde

Это происходит, когда зум не делится на 100. Например, он разрывается на 110%, 150% и 175%. Но это правильно, когда зум 100%, 200%, 300%...

Вот мой код:

<div class="search">
    <input type="text" value="Search" class="search-text" />
    <div class="search-icon" ></div>
</div>

CSS:

.search {
    height: 32px;
    width: 250px;
}
.search-text{
    float:left;
    width: calc(100% - 55px) !important;
    display: inline-block !important;
    border-top-right-radius: 0 !important;
    border-bottom-right-radius: 0 !important;
    margin: 0;width: 196px;
}
.search-icon{
    display: inline-block !important;
    background-color: #ACB6BE;
    height: 30px;
    width: 31px;
    float:right;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    cursor: pointer;
    border: 1px solid #acb6be;
}
input[type=text] {
   border-radius: 5px;
   border: 1px solid #acb6be;
   min-width: 180px;
   color: #acb6be;
   padding: 0 10px;
   height: 30px;
   background-color: #fff;
   font-weight: 600;
}

Или jsfiddle: http://jsfiddle.net/39VDR/1/

  • 1
    Лично меня не будут интересовать люди, которые не используют масштабирование по умолчанию. Это крайний случай с точки зрения дизайна
  • 0
    @ mituw16 Да, но я хочу совершенства для своих сайтов. Кроме того, мой дизайн адаптивный, поэтому эта проблема может возникнуть на мобильных устройствах, планшетах и т. Д.
Показать ещё 6 комментариев
Теги:
input

1 ответ

1
Лучший ответ

Проблема возникает, потому что когда вы увеличиваете масштаб, ваши значения больше не будут целыми. Это означает, что округление будет иметь место, а внешний контейнер (.search) будет на 1px больше, чем вы ожидали.

Вы можете удалить float:right на .search-icon и он будет работать нормально.

Вы можете видеть это здесь:

http://jsfiddle.net/39VDR/4/

.search-icon{
    display: inline-block;
    background-color: #ACB6BE;
    height: 30px;
    width: 31px;
    border-top-right-radius: 5px;
    border-bottom-right-radius: 5px;
    cursor: pointer;
    border: 1px solid #acb6be;
    font-size:12px;
    vertical-align: top;
}

Тем не менее, как уже упоминалось, вы можете удалить значение !important если вы просто добавите более специфичность для своих селекторов.

  • 0
    Большое спасибо :)

Ещё вопросы

Сообщество Overcoder
Наверх
Меню