css效果之边框内圆角
你可能想到的方法 padding: 16px; box-shadow: 0 0 0 8px #655; border-radius: 5px; 如果采用上面的方式,会产生一个与上面效果很像的效果:内外都是圆角。下过如下
如何将外面的那层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> (编辑:焦作站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |