在`hover` - 如何处理不同场景下的孩子`border-radius`?

use*_*080 5 html css css3

我有一个有子a元素的父母 .当用户mouse over我将子边框颜色更改为红色时.有用.

我的问题是,孩子的长度不是静态的.它是动态的.我加入左边框radiusfirstlast,但如何添加right-radiussecondlast?(因为我不知道孩子的数量)

.parent {
  border:5px solid red;
  display:inline-block;
  position: relative;
  border-radius:5px;
  box-sizing:border-box;
  margin-bottom:3em;
}

.parent a {
  display:block;
  padding:1em;
  border-bottom:1px solid #ddd;
  position: relative;
  width:50%;
  float:left;
  box-sizing:border-box;
}

.parent a:nth-child(odd):hover{
  border:5px solid #ddd;
  margin: -5px;
}

.parent a:nth-child(even):hover{
  border:5px solid #ddd;
  margin: -5px;
  left:10px;
}

.parent a:first-of-type{
  border-top-left-radius:5px;
}

.parent a:last-of-type{
  border-bottom-left-radius:5px;
}
Run Code Online (Sandbox Code Playgroud)
<div class="parent">
      <a href="#">1</a><a href="#">2</a><a href="#">3</a><a href="#">4</a><a href="#">5</a>
   </div>
   
   <div class="parent">
      <a href="#">1</a><a href="#">2</a><a href="#">3</a>
   </div>
   
      <div class="parent">
      <a href="#">1</a>
   </div>
Run Code Online (Sandbox Code Playgroud)

或者处理这个问题的正确方法是什么?

Ara*_*mar 2

您可以使用以下内容,并且所有案例都应进行排序:

.parent {
  border:5px solid red;
  display:inline-block;
  position: relative;
  border-radius:5px;
  box-sizing:border-box;
  margin-bottom:3em;
}

.parent a {
  display:block;
  padding:1em;
  border-bottom:1px solid #ddd;
  position: relative;
  width:50%;
  float:left;
  box-sizing:border-box;
}

.parent a:nth-child(odd):hover{
  border:5px solid #ddd;
  margin: -5px;
}

.parent a:nth-child(even):hover{
  border:5px solid #ddd;
  margin: -5px;
  left:10px;
}

.parent a:first-of-type{
  border-top-left-radius:5px;
}

.parent a:nth-child(2) { /* second child */
  border-top-right-radius:5px;
}

.parent a:last-of-type:nth-child(even){
  border-bottom-right-radius:5px;
}

.parent a:last-of-type:nth-child(odd){
  border-bottom-left-radius:5px;
}

.parent a:nth-last-child(2):nth-child(odd) {
  border-bottom-left-radius: 5px;
}
Run Code Online (Sandbox Code Playgroud)

这是一个jsfiddle: https://jsfiddle.net/67hr0oax/4

这是删除了一些抖动的更新: https ://jsfiddle.net/67hr0oax/7/

请注意:浏览器仅支持 IE9 及以上版本。