每日一个css效果之边框内圆角

栏目: CSS · 发布时间: 6年前

内容简介:效果如下你可能想到的方法如果采用上面的方式,会产生一个与上面效果很像的效果:内外都是圆角。下过如下

效果如下

每日一个css效果之边框内圆角

你可能想到的方法

padding: 16px;
box-shadow: 0 0 0 8px #655;
border-radius: 5px;
复制代码

如果采用上面的方式,会产生一个与上面效果很像的效果:内外都是圆角。下过如下

每日一个css效果之边框内圆角

如何将外面的那层shadow变为直角呢?

其关键就是outline和box-shadow属性:元素的圆角无法规定描边的方式

那么你可能会想到这样的实现方式

padding: 16px;
outline: 8px solid #655
border-radius: 5px;
复制代码

然后当你满怀自信去查看效果时发现,居然又不是你想要的效果,你会发现内外之间会有一小点空白。

那怎么办,是不是bug?虽然元素的圆角无法规定描边的角的样式,但可以规定box-shadow的角的样式,于是解决方式诞生了:让box-shadow与outline重合,outline将box-shadow的圆角填充成直角,box-shadow填充outline与内层之间的空白

padding: 16px;
box-shadow: 0 0 0 8px #655;
border-radius: 5px;
outline: 8px solid #655;
复制代码

这时再去刷新浏览器就会发现会是我们想要的效果了

附一个完整的例子

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <meta http-equiv="X-UA-Compatible" content="ie=edge">
  <title>css learning</title>
  <style>
    .section {
      display: inline-block;
      width: 200px;
      background: gray;
      padding: 16px;
      box-shadow: 0 0 0 8px #655;
      border-radius: 5px;
      outline: 8px solid #655;
    }
  </style>
</head>
<body>
<div class="container">
  <span class="section">
    Suspendisse et arcu felis, ac gravida turpis. 
    Suspendisse potenti. Ut porta rhoncus ligula,
    sed fringilla felis feugiat eget.
  </span>
</div>
</body>
</html>
复制代码

以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Redis设计与实现

Redis设计与实现

黄健宏 / 机械工业出版社 / 2014-6 / 79.00

【官方网站】 本书的官方网站 www.RedisBook.com 提供了书本试读、相关源码下载和勘误回报等服务,欢迎读者浏览和使用。 【编辑推荐】 系统而全面地描述了 Redis 内部运行机制 图示丰富,描述清晰,并给出大量参考信息,是NoSQL数据库开发人员案头必备 包括大部分Redis单机特征,以及所有多机特性 【读者评价】 这本书描述的知识点很丰富,......一起来看看 《Redis设计与实现》 这本书的介绍吧!

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换