父圆角与孩子重叠

时间:2015-11-20 10:40:01

标签: html css

我遇到了一个问题,我有一个nav,其中我有两个div,其中我有一个li。我希望divnav栏重叠,但让我陷入困境的是,我希望nav栏能够获得圆角,div重叠,这意味着div需要伸展他们的角落以使nav栏形成圆形。这可能吗?我怎么能这样做?



ul {
  list-style: none;
}
div {
  display: inline-block;
  width: 20%;
  height: 30px;
  margin: 0;
  position: relative;
  text-align: center;
  -webkit-transform: skew(-40deg);
  -moz-transform: skew(-40deg);
  -o-transform: skew(-40deg);
  background-color: #ddd;
}
nav {
  background-color: #777;
  padding: 0;
}
li {
  font-size: 0.8em;
  position: relative;
  top: 505;
  margin-top: -0.4em;
  -webkit-transform: skew(40deg);
  -moz-transform: skew(40deg);
  -o-transform: skew(40deg);
}

<nav>
  <ul>
    <div class="overlapping_div">
      <li>Text in div</li>
    </div>
    <div class="overlapping_div">
      <li>Text in div</li>
    </div>
  </ul>
</nav>
&#13;
&#13;
&#13;

1 个答案:

答案 0 :(得分:0)

li需要成为ul的直接孩子,为了做你想做的事,可以尝试这个解决方案:

<nav>
  <ul>
      <li class="overlapping_div">
          <span>Text in div</span>
      </li>
      <li class="overlapping_div">
          <span>Text in div</span>
      </li>
  </ul>
</nav>

,CSS看起来像这样

ul {
  list-style: none;
}

.overlapping_div {
  display: inline-block;
  width: 20%;
  height: 30px;
  margin: 0;
  position: relative;
  text-align: center;
  -webkit-transform: skew(-40deg);
  -moz-transform: skew(-40deg);
  -o-transform: skew(-40deg);
  background-color: #ddd;
}
nav {
  background-color: #777;
  padding: 0;
}
span {
  font-size: 0.8em;
  position: relative;
  top : 5px;
  display : block;
  -webkit-transform: skew(40deg);
  -moz-transform: skew(40deg);
  -o-transform: skew(40deg);
}