切图技巧分享—圆角背景色

简介: 原文:切图技巧分享—圆角背景色一、设计稿 要实现下面这样一个效果,本文重点说的是下面“自动续费,可随时取消”这部分的实现。 我把问题简化一下,变成了 二、解决问题的思路 1、p标签加背景色 一般,很容易想到用p标签实现,代码如下: .
原文: 切图技巧分享—圆角背景色

一、设计稿

要实现下面这样一个效果,本文重点说的是下面“自动续费,可随时取消”这部分的实现。

我把问题简化一下,变成了

二、解决问题的思路

1、p标签加背景色

一般,很容易想到用p标签实现,代码如下:

<style type="text/css">
    .box {
        width: 154px;
        height: 90px;
        float: left;
        border: 1px solid #bfbfbf;
        border-radius: 8px;
        margin: 20px 9px 0 0;
        position: relative;
    }

    p {
        margin: 0;
        margin-top: 50px;
        color: #fd632b;
        background-color: #f7f7f7;
        font-size: 12px;
        text-align: center;

    }
</style>
<body>
<div class="box">
    <p>自动续费,可随时取消</p>
</div>
</body>
View Code

但是会发现p的背景色是是矩形的,并不会按照父容器的border-radius来约束自己的背景色。会超出去如下。

2、父元素overflow:hidden

一般情况可以通过.box的overflow:hidden 让溢出部分不显示。

    .box {
        overflow:hidden;
    }
<style type="text/css">
    .box {
        width: 154px;
        height: 90px;
        float: left;
        border: 1px solid #bfbfbf;
        border-radius: 8px;
        margin: 20px 9px 0 0;
        position: relative;
    overflow:hidden;
    }

    p {
        margin: 0;
        margin-top:74px;
        color: #fd632b;
        background-color: #f7f7f7;
        font-size: 12px;
        text-align: center;

    }
</style>
<body>
<div class="box">
    <p>自动续费,可随时取消</p>
</div>
</body>
View Code

但是我的设计稿里有一个推荐的标签,我直接让父元素overflow:hidden了,那这个推荐标签也无法显示出来了。。

<style type="text/css">
    .box {
        width: 154px;
        height: 90px;
        float: left;
        border: 1px solid #bfbfbf;
        border-radius: 8px;
        margin: 20px 9px 0 0;
        position: relative;
        overflow: hidden;
    }

    p {
        margin: 0;
        margin-top: 74px;
        color: #fd632b;
        background-color: #f7f7f7;
        font-size: 12px;
        text-align: center;

    }
    .label {
        position: absolute;
        top: -6px;
        left: 10px;
        height: 18px;
        font-size: 12px;
        line-height: 18px;
        font-style: normal;
        color: #fff;
        padding: 0 6px;
    }

    .label.rec {
        background-color: #fd632b;
    }
</style>
<body>
<div class="box">
    <em class="label rec">推荐</em>

    <p>自动续费,可随时取消</p>
</div>
</body>
View Code

3、p加border-radius

现在很容易想到,给p也加上一个border-radius。

    p {
    border-radius:0 0 8px 8px;
    }
<style type="text/css">
    .box {
        width: 154px;
        height: 90px;
        float: left;
        border: 1px solid #bfbfbf;
        border-radius: 8px;
        margin: 20px 9px 0 0;
        position: relative;
    }

    p {
        margin: 0;
        margin-top: 74px;
        color: #fd632b;
        background-color: #f7f7f7;
        font-size: 12px;
        text-align: center;
    border-radius:0 0 8px 8px;

    }
    .label {
        position: absolute;
        top: -6px;
        left: 10px;
        height: 18px;
        font-size: 12px;
        line-height: 18px;
        font-style: normal;
        color: #fff;
        padding: 0 6px;
    }

    .label.rec {
        background-color: #fd632b;
    }
</style>
<body>
<div class="box">
    <em class="label rec">推荐</em>

    <p>自动续费,可随时取消</p>
</div>
</body>
View Code

4、另一种思路

也可以通过给父元素设置背景色来实现。

<style type="text/css">
    .box {
        width: 154px;
        height: 90px;
        float: left;
        border: 1px solid #bfbfbf;
        border-radius: 8px;
        margin: 20px 9px 0 0;
        position: relative;
        background-color: #f7f7f7;
    }

    .other {
        height: 74px;
        background-color: #fff;
        border-radius: 8px 8px 0 0;

    }

    p {
        margin: 0;
        color: #fd632b;

        font-size: 12px;
        text-align: center;
        border-radius: 0 0 8px 8px;

    }

    .label {
        position: absolute;
        top: -6px;
        left: 10px;
        height: 18px;
        font-size: 12px;
        line-height: 18px;
        font-style: normal;
        color: #fff;
        padding: 0 6px;
    }

    .label.rec {
        background-color: #fd632b;
    }
</style>
<body>
<div class="box">
    <em class="label rec">推荐</em>
    <div class="other"></div>
    <p>自动续费,可随时取消</p>
</div>
</body>

虽然最后还是要设置border-radius,并不是最佳实践,但也是一种解决问题的思路。

 

本文作者starof,因知识本身在变化,作者也在不断学习成长,文章内容也不定时更新,为避免误导读者,方便追根溯源,请诸位转载注明出处:http://www.cnblogs.com/starof/p/6728473.html有问题欢迎与我讨论,共同进步。

目录
相关文章
|
2天前
背景图像
背景图像。
9 3
|
4月前
边框虚线滚动动画特效
边框虚线滚动动画特效
|
5月前
|
前端开发
【前端切图】CSS文字渐变和背景渐变
【前端切图】CSS文字渐变和背景渐变
34 0
|
11月前
CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
CSS3文本居中显示、圆形圆角绘制、立体阴影效果设置实例演示
92 0
|
前端开发 JavaScript
NaiveUI中看起来没啥用的组件(文字渐变)实现原来这么简单
用不到80行代码复原了NaiveUI中的渐变文字组件,内容不多,非常简单,小小娱乐一次。。。。。。。
308 0
|
前端开发 IDE 开发工具
「趣学前端」为什么有的页面背景颜色是渐变的
用技术实现梦想,用梦想打开创意之门。为了给不懂技术的朋友讲解日常开发中怎么实现网页的效果,我准备出一个系列。
136 1
|
Web App开发 移动开发 前端开发
H5:画布Canvas基础知识讲解(三)之文字、阴影、颜色渐变
​上一节介绍了H5:画布Canvas基础知识讲解(二)之插入图像、像素级操作,接下来继续讲解H5:画布Canvas基础。
|
前端开发 容器
巧妙实现带圆角的渐变边框
巧妙实现带圆角的渐变边框
308 0
巧妙实现带圆角的渐变边框
|
前端开发 JavaScript
canvas-渐变文字
html要求: body这里的onload一定要写,在这个处理模式下,是在body这里执行加载页面完成后加载canvas的命令。有的写在了js中的window.onload=function(){},这里就要换一种写法了。
815 0