Смещение содержимого блока от бордера

310
22 июня 2017, 02:49

Делаю блок с постером. При наведении по макету должен появляться бордер, но не должен смещать при этом ни содержимое блока, ни увеличивать его размер.

В моём же случае, изменяется положение содержимого, сдвигается на 2px (толщина обводки).

Попробовал box-sizing, не помогло.

Подскажите, возможно ли это?

Answer 1

Меняйте цвет бордера с transparent на нужный цвет

div{ 
 width: 100px; 
 height: 100px; 
 background-color: gray; 
 border: 10px solid transparent; 
 } 
  
 div:hover{ 
  border: 10px solid red; 
  }
<div></div>

Вариант с тенью

	div{ 
	 width: 100px; 
	 height: 100px; 
	 background-image: url("http://img.clipartall.com/emotion-smiley-faces-clip-art-clipart-best-emotion-faces-clip-art-631_632.jpg"); 
	 background-repeat: no-repeat; 
	 background-size: cover; 
	 margin: 10px; 
	 overflow: hidden; 
	 } 
 
	 div:hover{ 
	  box-shadow: 0 0 2px 2px red; 
	  }
<div></div>

Answer 2

Вам нужно свойство outline

В отличие от линии, задаваемой через border, свойство outline не влияет на положение блока и его ширину.

.test { 
  background: #999; 
  height: 100px; 
  width: 100px; 
} 
 
.test:hover { 
  outline: 4px solid red; 
}
<div class="test"></div>

READ ALSO
Получить дату в определенном формате

Получить дату в определенном формате

ЗдравствуйтеМне нужно в программе на C# получить значение текущей даты в формате "год-месяц-день время" (как предусматривает тип DATETIME в MySql)

204
Сохранить картику с Bitmap C#

Сохранить картику с Bitmap C#

Мне нужно из Bitmap создать картинку формата *png или *

218
c# DeflateStream глюк сжатия 100байт?

c# DeflateStream глюк сжатия 100байт?

Как заворачивать поток (файлы) в DeflateStream? С распаковкой проблем не было, первый раз пакую - получаю из 10 байт длинну "сжатого" пакета 104 (смешно),...

209