btn样式类

工作上写了一个btn的样式类。很小的一块了。在bootstrap强大的样式库里就是非常渺小的一个。

类名 <code>.btn</code>
<button class="btn"></button>
表现类<code>.btn-default/.btn-primary/.btn-danger/.btn-warning/.btn-info/.btn-success</code>

btn的默认表现为btn-default。

可应用元素

你可以应用在 input[type=submit/button/reset]、a、span等元素上。

处理方法

input[type="button"]和input[type="submit"]在浏览器中的box-sizing表现是不一样的。前者表现为content-box,后者则为border-box,这个ie,火狐都惊人的一直,连ie7也是如此。所以将box-sizing设置为content-box,让其行为一致,ie7则采用手动添加border高度的方式降级处理。

input[type=submit] ie7黑色边框bug
<label class="btn btn-success"><input type="submit" value=" 提交"></label>

采用label包裹的方式处理,内部input背景透明,border:0的方式消除。

当然,如果你不用处理ie7上的这个小bug,完全不用理会。直接btn类设置就好了。

![W)P7]LTQPYYHIF`0AYZ0}ZB.png](http://upload-images.jianshu.io/upload_images/330266-87eb9e6ee98e2a2f.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

查看DEMO

@charset "utf-8";
$height:100;
.btn{
    height:$height + px;
    line-height:$height + px;
    padding: 0 0.3em;
    font-size: 14px;
    box-sizing:content-box;//重置input submit、buttonbox-sizing border-box 为content-box。做到一致的表现 //ie7手动添加border高度
    vertical-align: text-top;
    
    display: inline-block;
    *display: inline;
    *zoom:1;
    border:1px solid #ddd;
    background-color: #ddd;
    border-radius: 3px;
    overflow: visible;//IE7下文字表现左右空格
    color: #333;
    cursor: pointer;
    input[type="submit"]{//IE7下黑色边框问题,采用label包裹input[type="submit"]方式
        background:transparent;
        border:none;
        line-height:$height + px;
        height:$height + px;
        display: block;
        vertical-align: text-top;
        font-size:14px;
        margin:0 -6px;
        *overflow: visible;
        *margin:0;
        color: #fff
    }
    
    &:hover{
        opacity: 0.8;
        filter:alpha(opacity=80); 
    }
    &:active{
        opacity:1;
        filter:alpha(opacity=100); 
    }
    &:focus{
        outline: 0;
        outline: 5px auto -webkit-focus-ring-color;
        outline-offset: -2px;
    }
    &:visited{
        opacity:1;
        filter:alpha(opacity=100); 
    }
    
    @at-root{
        /* 处理火狐-moz-focus-inner内默认padding值,导致line-height文字不居中问题*/
        button::-moz-focus-inner,
        input[type="button"]::-moz-focus-inner,
        input[type="submit"]::-moz-focus-inner,
        input[type="reset"]::-moz-focus-inner { 
            border:none; 
            padding:0 inherit; 
        }
        input[type="submit"].btn,
        input[type="button"].btn,
        input[type="reset"].btn,
        button.btn{
            *height:($height + 2) + px;//处理IE7 box-sizing问题。submit,button,reset表现为border-box问题
            *line-height:($height - 2) + px;
        }
        a.btn{
            color:inherit;
            text-decoration:none;
        }
    }
}

.btn-default{
    color: #333;
    background-color: #fff;
    border-color: #ccc;
}
.btn-danger{
    color: #fff;
    background-color: #d9534f;
    border-color: #d43f3a;
}
.btn-warning{
    color: #fff;
    background-color: #f0ad4e;
    border-color: #eea236;
}
.btn-info{
    color: #fff;
    background-color: #5bc0de;
    border-color: #46b8da;        
}
.btn-success{
    color: #fff;
    background-color: #5cb85c;
    border-color: #4cae4c;    
}
.btn-primary{
    color: #fff;
    background-color: #428bca;
    border-color: #357ebd;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 问答题47 /72 常见浏览器兼容性问题与解决方案? 参考答案 (1)浏览器兼容问题一:不同浏览器的标签默认的外补...
    _Yfling阅读 13,801评论 1 92
  • 1.行内元素和块级元素?img算什么?行内元素怎么转化为块级元素? 行内元素:和有他元素都在一行上,高度、行高及外...
    极乐君阅读 2,452评论 0 20
  • 一:在制作一个Web应用或Web站点的过程中,你是如何考虑他的UI、安全性、高性能、SEO、可维护性以及技术因素的...
    Arno_z阅读 1,212评论 0 1
  • 图1:为施鸣背后编辑图片灵魂点赞!
    施鸣阅读 224评论 0 1
  • 在我们班有个小女孩,一开始我 并没有在意她,慢慢地我发现了她的与众不同。 她长得高高的,皮肤有点黑,留着...
    风之美阅读 144评论 1 5