2013-09-20 2 views
2

У меня есть 4 float: left DIV контейнеры, как так ...Div граница по наведению выталкивает плавали содержание

enter image description here

Я хочу, чтобы отобразить границу, когда ДИВ завис над. Тем не менее, когда я наведите курсор мыши на первый или второй DIV, он толкает нижний DIV влево ...

enter image description here

Я попытался добавить поля и отступы в Див-х года, но ничего не помогало.

.div 
{ 
    width: 33%; 
} 

.div:hover 
{ 
    boder: solid 1px #EEE; 
} 
+0

Пожалуйста, пост полный пример кода. А как насчет jsFiddle? – j08691

ответ

5

Используйте обратную цветную или прозрачную рамку в исходном состоянии, и размер окна не изменится.

.div { 
    width: 32%; // (33% + 1px border) * 3 = likely more than the width of the container 
    border: solid 1px transparent; 
} 

.div:hover { 
    boder: solid 1px #EEE; 
} 
+0

Хороший отзыв! Я буду отмечать его правильно, как только SO позволяет мне – mnort9

1

Одно решение должно иметь границы все время, но сделать это тот же цвет в качестве фона, когда не колебались.

Например:

.div 
{ 
    width: 33%; 
    border: solid 1px #FFF; 
} 
.div:hover 
{ 
    border: solid 1px #EEE; 
} 

EDIT: В качестве альтернативы, если невидимая граница не будет работать (градиентный фон и т.д.) вы можете добавить 1px отступы, когда не колебались и сделать его 0px заполнения при наведении.

Например:

.div 
{ 
    width: 33%; 
    padding: 1px; 
} 
.div:hover 
{ 
    border: solid 1px #EEE; 
    padding: 0; 
} 
+1

Вы также можете использовать 'border: 1px solid transparent;', правильно? – jbaum012

+0

Итак, вы можете! Я не осознал. Благодаря! – RLHawk

Смежные вопросы