Обивка продолжает толкать относительные элементы

0

У меня есть div с text-align: center и 3 пролета с текстом в них. У меня также есть мыши над событием, которое устанавливает дополнение, цвет фона и границу. Но при этом он толкает другие 2 пролета. Вот вам jsfiddle для лучшей визуализации.

http://jsfiddle.net/93EBu/

<div id="div">
   <span class="span">Word</span>
   <span class="span">Word</span>
   <span class="span">Word</span>
</div>



   #div {
       text-align:center;
   }

   .span {
       margin: 0px 5%;
   }

   .spanhover {
       border:1px solid blue;
       background-color:lightblue;
       padding:5px;
   }
  • 0
    Я предполагаю, что ваш вопрос - почему это происходит и как я могу предотвратить толкание? Это тот случай?

2 ответа

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

ПОПРОБУЙ ЭТО:

#div {
    text-align:center;
}
.span {
    margin: 0px 5%;
    padding:6px;
}
.spanhover {
    border:1px solid blue;
    background-color:lightblue;
    padding:5px;
}

ДЕМО ЗДЕСЬ: http://jsfiddle.net/93EBu/1/

Причина, по которой возникает эта проблема, заключается в том, что добавление, добавляемое в класс spanhover, вызывает элементы. Таким образом, вам нужно иметь пролет уже есть дополнение, но.... но так как вы добавили 1px границы. Вам нужно, чтобы прокладка диапазона была 6px... Padding + Border.

1

Вы можете удалить padding: 5px из .spanhover а также добавить border: 1px solid transparent для ваших элементов span:

#div {
    text-align:center;
}
.span {
    margin: 0px 5%;
    border: 1px solid transparent;
}
.spanhover {
    border:1px solid blue;
    background-color:lightblue;
}

Демо-версия скрипта

Кроме того, вместо использования ненужного jQuery здесь вы можете использовать :hover селектор :hover:

span:hover {
    border:1px solid blue;
    background-color:lightblue;
}

Демо-версия скрипта

Ещё вопросы

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