CSS3 圆角无效

今天在做页面的时候遇到 CSS3 圆角无效的情况,实例代码:

<style type="text/css">
  .category-menu {
    -webkit-border-radius: 14px;
    -moz-border-radius: 14px;
    border-radius: 14px;
  }

  .category {
    background: #fff;
  }
</style>
<div class="category-menu">
  <div class="category">
    <a href="featured">Featured</a>
  </div>
  <div class="category">
    <a href="rated">Highest Rated</a>
  </div>
  <div class="category">
    <a href="newest">Newest Videos</a>
  </div>
</div>

你会发现圆角居然没有出现!让我们加上边框看看发生了什么:

.category-menu {
  border: 3px solid #BADA55;
}

仔细观察可以发现,圆角被类为category的div所设置背景挡住了。将 background: #fff; 注释,我们看到了圆角

从此可以得出结论,CSS3 的圆角会被子元素的背景遮挡,从而产生圆角无效的假象。

问题找到了,但是如果要求鼠标移上类为categorydiv 时,相应的 div 背景变色,那怎么办呢?

天无绝人之路,只要给第一个设置左上和右上圆角,最后一个 div 设置左下和右下圆角,就可以完美解决这个问题了。

<style type="text/css">
  .category {
    background: #fff;
  }

  .category:hover {
    background: #ff6633;
  }

  .first {
    -webkit-border-radius: 4px 4px 0 0;
    -moz-border-radius: 4px 4px 0 0;
    border-radius: 4px 4px 0 0;
  }

  .last {
    -webkit-border-radius: 0 0 4px 4px;
    -moz-border-radius: 0 0 4px 4px;
    border-radius: 0 0 4px 4px;
  }
</style>
<div class="category-menu">
  <div class="category first">
    <a href="featured">Featured</a>
  </div>
  <div class="category">
    <a href="rated">Highest Rated</a>
  </div>
  <div class="category last">
    <a href="newest">Newest Videos</a>
  </div>
</div>

上一篇
Mac 更新 Emacs Mac 更新 Emacs
最近买了 hhkb 开始折腾 Emacs。 Mac 自带 Emacs,但是版本比较老是 Emacs22,Emacs24 是现在最新的,有很多新功能,比如原生支持显示行数。 升级参考 wikemacs.org: Installing Emac
2014-03-17
下一篇
Siege Siege
siege 围攻是一个压力测试和评测工具,设计用于 web 开发这评估应用在压力下的承受能力。 可以模拟对一个 web 站点进行多用户的并发访问,记录每个用户所有请求过程的响应时间,并在一定数量的并发访问下重复进行。 在 Mac OS X
2013-08-27