电脑技术学习

CSS实例:无懈可击的CSS圆角技术

dn001
3.应用样式

  因为不想给框赋予一个固定的宽度,并且还希望那些圆角总是紧挨着框中的内容,所以浮动这个容器。将容器浮动能防止框自动变得和窗体(或者其他外围容器对象)一样宽。取而代之,框里面的内容的宽度将决定框伸展多宽。

  .container {
  float: left;
  color: #666;
  background: url(img/rounded-right.gif) top right no-repeat;
  }

  注意我们是通过将图片定位到对象的右上方来设置背景。

  结果如图9,rounded-right.gif 的上面部分显示出来成为了整个容器的背景。

CSS实例:无懈可击的CSS圆角技术

  图9 将图片对齐到右上角显示出了圆角效果

  按照代码顺序,容器之后的对象就是第一个段落,我们使用了一个class="desc"(desc表示description)来标记它。然后我们将rounded-left.gif对齐到top和left,它的上半部分作左上圆角。这里我们还将<p>对象的默认margin和padding都高为0。稍后我们再根据需要加上全适的padding值。

  .container {
  float: left;
  color: #666;
  background: url(img/rounded-right.gif) top right no-repeat;
  }
  .desc {
  margin: 0;
  padding: 0;
  background: url(img/rounded-left.gif) top left no-repeat;
  }


  加上第二张背景图片后的结果见图10,左上圆角加好了。

CSS实例:无懈可击的CSS圆角技术

  图10 将图片对齐于左上角后,部分圆角效果出来了。

  接下来,添加左下圆角,通过给第二个段落(我们给它标记了class="link")指定rounded-left.gif的下面部分作为背景。这张图的上面部分,我们之前通过将图片对齐于top和left来显示,现在则将它对齐于bottom和left,以显示出下面的圆角。使用的间隔。第二个段落的三个侧边加了9px的padding,以此给内容和框的边界之间添加合适的间隔。第二个段落的左侧也加了9px的padding.这个值和图本身的宽度相同,以便让"Indestructible!"链接文字后面的圆角能显露出来。

  .container {
  float: left;
  color: #666;
  background: url(img/rounded-right.gif) top right no-repeat;
  }
  .desc {
  margin: 0;
  padding: 9px 9px 0 9px;
  background: url(img/rounded-left.gif) top left no-repeat;
  }
  .link {
  margin: 0;
  padding: 0 0 0 9px;
  background: url(img/rounded-left.gif) bottom left no-repeat;
  }


  到目前为止的结果见图11,四个圆角中有三个已经被加在了正确位置,还剩最后一个了。

CSS实例:无懈可击的CSS圆角技术
图11 通过重用rounded-left.gif 但是对齐到下方,我们加上了第三个圆角

  最后一张背景图将附着在嵌套在第二个段落对象里面的<em>对象上。我们将rounded-right.gif对齐于bottom和right,显示图片的下面部分,另外好包括一定padding值,以便将框中的文字和边线有均匀的间隔。大多数浏览器会将<em>包围起来的文字显示为斜体,所以我们还要覆盖这个属性,显示正常的字体。

  .container {
  float: left;
  color: #666;
  background: url(img/rounded-right.gif) top right no-repeat;
  }
  .desc {
  margin: 0;
  padding: 9px 9px 0 9px;
  background: url(img/rounded-left.gif) top left no-repeat;
  }
  .link {
  margin: 0;
  padding: 0 0 0 9px;
  background: url(img/rounded-left.gif) bottom left no-repeat;
  }
  .link em {
  display: block;
  padding: 0 9px 9px 0;
  font-style: normal;
  background: url(img/rounded-right.gif) bottom right no-repeat;
  }
  .container a {
  font-size: 130%;
  color: #e70;
  }


  通常情况,<em>是一个内联对象,不会自动扩展直至和父容器宽度相同,所以不能用于背景图片的载体。但能过添加规则display: block;,将<em>变成一个块级对象,强制让它内部的任何内容都延伸到框的边界,就能解决这个问题了。此外我们将框中的链接文字设置为橙色,并且比正常情况大——因为,不可破坏的链接就该是这样子。

  图12是最后完成的框的效果,通过对齐两张背景图片,创建好了四个圆角。

CSS实例:无懈可击的CSS圆角技术
  图12 这就是我们的成品,“牢不可破”的矩形框

  4.牢不可破的特性

  正如Browse Happy例子那样的情况,请注意我们的圆角矩形框,根据其内部的文字大小和内容量的变化,能够在所有方向自由扩展和收缩。真正的牢不可破(图13)

CSS实例:无懈可击的CSS圆角技术
图13 不管有多大的文字还是多少内容,框都可以扩大再扩大