При наведении, как я могу сделать границу моего ребенка пересекающейся с родительской границей?
У меня есть родитель с красной рамкой. Когда пользователь наводит на детей, я пытаюсь изменить границу детей, чтобы перекрывать родителя. Как я могу достичь этого?
.parent{
border:1px solid red;
display:inline-block;
}
.parent a {
display:block;
padding:1em;
border-bottom:1px solid #ddd;
}
.parent a:hover{
border:1px solid #ddd;
}
<div class="parent">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
</div>
Ответы
Ответ 1
Пока вы знаете ширину границ и можете использовать относительное позиционирование... Я здесь преувеличил границы для ясности.
.parent {
border:5px solid red;
display:inline-block;
position: relative;
}
.parent a {
display:block;
padding:1em;
border-bottom:1px solid #ddd;
position: relative;
}
.parent a:hover{
border:5px solid #ddd;
margin: -5px;
}
https://jsfiddle.net/kd0gf31z/
Ответ 2
Я сделал некоторые изменения в вашем стиле:
.parent{
display:inline-block;
}
.parent a {
display:block;
padding:1em;
border-right:1px solid red;
border-left:1px solid red;
border-bottom:1px solid #ddd;
border-top: none;
}
.parent a:first-of-type{
border-top:1px solid red;
}
.parent a:last-of-type{
border-bottom:1px solid red;
}
.parent a:hover{
border-color:#ddd;
}
см. результат здесь https://jsfiddle.net/IA7medd/343ydvhs/
Ответ 3
Вы можете достичь этого, используя абсолютно позиционированные псевдоэлементы, например:
*,*::before,*::after{box-sizing:border-box;font-family:sans-serif;}
.parent{
border:1px solid red;
display:inline-block;
}
.parent a{
display:block;
padding:1em;
border-bottom:1px solid #ddd;
position:relative;
}
.parent a:last-child{
border:0;
}
.parent a:hover::after{
border:1px solid #ddd;
bottom:-1px;
content:"";
left:-1px;
position:absolute;
right:-1px;
top:-1px;
}
<div class="parent">
<a href="#">1</a>
<a href="#">2</a>
<a href="#">3</a>
<a href="#">4</a>
<a href="#">5</a>
</div>
Ответ 4
.parent a:hover{
border:1px solid #ddd;
width:120%;
}
https://jsfiddle.net/9Lmwp0e7/
Что-то вроде этого?
Ответ 5
Почему бы не просто изменить родительский CSS на зависание ребенка?
.parent a:hover .parent {
//Some CSS
}