美文网首页
@边框内圆角

@边框内圆角

作者: Yuxin_Liu | 来源:发表于2017-02-12 19:56 被阅读0次

怎么样能仅用一个div来实现下面图片当中的边框内圆角效果呢?

(调色略丑,为了效果明显。)


CSS Secrets @边框内圆角 - CSS娃娃 - CSS娃娃的博客

这个时候脑子里面迅速闪现出能够实现边框效果的东西:border、outline、box-shadow...
因为要有圆角border-radius,而且之前讲到outline是不会随border圆角而变化的,所以一定要用到outline才行!
好哒,那就在base的css基础上先加上一个outline:

.wrapper{
    margin: 135px auto;
    width: 200px;
    height: 100px;
    padding: 1em;
    background: lightblue;
    border-radius: 1em;
    outline: .8em solid dodgerblue;
}

然后就变成了酱紫:


CSS Secrets @边框内圆角 - CSS娃娃 - CSS娃娃的博客

缺了四个角。用什么补?border肯定是不行。因为之前也讲过,outline对border很宽容,outline一定要把border紧紧抱在里面,绝对不允许它俩之间有间隙。那么,既然border办不到,就只能是用box-shadow了。
先随便写个小一点儿的box-shadow(为了区分,先和outline的颜色不一样)看下效果:

.wrapper{
    margin: 135px auto;
    width: 200px;
    height: 100px;
    padding: 1em;
    background: lightblue;
    border-radius: 1em;
    outline: .8em solid dodgerblue;
    box-shadow: 0 0 0 .25em lightpink;
}
CSS Secrets @边框内圆角 - CSS娃娃 - CSS娃娃的博客
阿咧?好像小粉粉把白色的角补上了一丢丢呢。。。
那我把box-shadow弄大点儿(大过outline的宽度)看看呢?
.wrapper{
    margin: 135px auto;
    width: 200px;
    height: 100px;
    padding: 1em;
    background: lightblue;
    border-radius: 1em;
    outline: .8em solid dodgerblue;
    box-shadow: 0 0 0 1em lightpink;
}
CSS Secrets @边框内圆角 - CSS娃娃 - CSS娃娃的博客
超出去了。。。box-shadow的大小一定不能超过outline的宽度!但是也不能太小,最小到什么程度呢?

绝对不能小于(√2 -1padding*的宽度。
(这是一个正方形和它的内切圆的故事,我相信宝宝们一画图就懂了。)

So in total, 我们的解决办法就是一层outline作为方边,加上一层box-shadow来补上空隙,
而** (√2 -1)padding.width < box-shadow.width < outline.width*,就是对box-shadow的要求。
那咱就写一个范围内的值试一下,

.wrapper{
    margin: 135px auto;
    width: 200px;
    height: 100px;
    padding: 1em;
    background: lightyellow;
    border-radius: 1em;
    outline: .8em solid dodgerblue;
    box-shadow: 0 0 0 .5em lightpink;
}
CSS Secrets @边框内圆角 - CSS娃娃 - CSS娃娃的博客

**酱~ **感觉补得刚刚好呢!

最后最后说句废话,那就是只要把box-shadow的颜色改成和outline一样的颜色就好了!

相关文章

  • CSS边框圆角--跟着李南江学编程

    1.什么是边框圆角? 就是把矩形边框变成圆角边框,就叫做边框圆角。 2.设置边框圆角的格式 2.1 border-...

  • 25.边框圆角渐变

    边框 什么是边框圆角?将直角的边框变为圆角的边框 边框圆角的格式?border-radius: 左上 右上 右下 ...

  • Flutter-Border

    边框(Border) 单侧边框 全部边框 圆角(borderRadius) 全部圆角 单侧圆角 阴影(BoxSha...

  • Image

    直接圆角图片 设置圆角图片度数 设置圆角图片带灰色圆角边框 设置圆角图片带灰色圆角边框带阴影

  • 常用CSS3 一目了然

    1.css3边框 圆角边框 border-radius: 5px;(圆角半径) 边框阴影 box-shadow: ...

  • android中实现view的圆角

    一、实心圆角 二、空心圆角、有边框

  • UIView任意角圆角和圆角边框

    圆角原理:设置view.layer.mask该遮罩层。 圆角边框:在view.layer 上增加一层,绘制圆角边框...

  • CSS3边框,背景,渐变,过渡,2d变换

    01-边框圆角.html 02-圆角应用.html 03-边框阴影.html 04-边框图片.html 01-背景...

  • 盒模型

    内容区 内边距 边框 指定边框圆角 边框风格 外边距

  • 边框相关样式

    border-radius(边框圆角) 该属性用于设置边框圆角,属性值为圆角半径,当设置一个时为值为四个角的圆角半...

网友评论

      本文标题:@边框内圆角

      本文链接:https://www.haomeiwen.com/subject/nzgaittx.html