【问题标题】:Make a 3D button with rounded edge制作一个圆角的 3D 按钮
【发布时间】:2014-05-19 14:37:41
【问题描述】:

我正在开发一个网站,我想在其中实现带有圆边的 3D 按钮。因此,我需要创建一个 CSS 文件。我搜索了很多关于 3D 按钮的信息,但目前还没有任何效果。

【问题讨论】:

    标签: html css button 3d


    【解决方案1】:

    您想使用以下 CSS 样式的组合:borderborder-radiusbackgroundtext-shadow,最后是 box-shadow

    要使用这些实现 3D 效果,您需要在 background 样式上使用 gradient 值。

    这里有一个有用的制作跨浏览器渐变css的工具:http://www.colorzilla.com/gradient-editor/

    这里有一些示例 CSS 可以设置 a 标签的样式:

    .button {
        display: block;
        height: 30px;
        margin-bottom: 10px;
        text-align: center;
        line-height: 30px;
        width: 150px;
        margin: 20px;
    
        color: #FFF;
        text-align: center;
        border: solid #427AA8 1px;
        border-radius: 5px;
        text-decoration: none;
    
        /* Gradient */
        background: #427AA8;
        background: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiA/Pgo8c3ZnIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgd2lkdGg9IjEwMCUiIGhlaWdodD0iMTAwJSIgdmlld0JveD0iMCAwIDEgMSIgcHJlc2VydmVBc3BlY3RSYXRpbz0ibm9uZSI+CiAgPGxpbmVhckdyYWRpZW50IGlkPSJncmFkLXVjZ2ctZ2VuZXJhdGVkIiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSIgeDE9IjAlIiB5MT0iMCUiIHgyPSIwJSIgeTI9IjEwMCUiPgogICAgPHN0b3Agb2Zmc2V0PSIxJSIgc3RvcC1jb2xvcj0iIzU5YTNlMCIgc3RvcC1vcGFjaXR5PSIxIi8+CiAgICA8c3RvcCBvZmZzZXQ9IjEwMCUiIHN0b3AtY29sb3I9IiM0MjdhYTgiIHN0b3Atb3BhY2l0eT0iMSIvPgogIDwvbGluZWFyR3JhZGllbnQ+CiAgPHJlY3QgeD0iMCIgeT0iMCIgd2lkdGg9IjEiIGhlaWdodD0iMSIgZmlsbD0idXJsKCNncmFkLXVjZ2ctZ2VuZXJhdGVkKSIgLz4KPC9zdmc+);
        background: -moz-linear-gradient(top,  #59A3E0 1%, #427AA8 100%);
        background: -webkit-gradient(linear, left top, left bottom, color-stop(1%,#59A3E0), color-stop(100%,#427AA8));
        background: -webkit-linear-gradient(top,  #59A3E0 1%,#427AA8 100%);
        background: -o-linear-gradient(top,  #59A3E0 1%,#427AA8 100%);
        background: -ms-linear-gradient(top,  #59A3E0 1%,#427AA8 100%);
        background: linear-gradient(to bottom,  #59A3E0 1%,#427AA8 100%);
        filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#59A3E0', endColorstr='#427AA8',GradientType=0 );
    
        text-shadow: 1px 1px 0 rgba(0,0,0,0.25);
        box-shadow: 0 1px 0 rgba(255,255,255, 0.3), inset 0 1px 0 rgba(255,255,255, 0.3);
    }
    
    .button:hover {
        background: #59A3E0;
        text-decoration: none;
        filter: none;
    }​
    
    <a href="#" class="button">Example Button</a>
    

    以及您可以制作的示例:jsfiddle.net/UPTyw

    这适用于所有现代浏览器,适用于 IE8-6(不支持border-radius)。此方法也不使用图像。

    还可以查看这个问题 Google's Imageless Buttons,它解释了 Google 如何创建他们的 CSS 按钮系列。

    IE9 错误

    如果设置了filter,IE9 存在渲染border-radius 的错误。解决方法是使用 css 渐变将以下仅 IE9 CSS 添加到任何元素。

    <!--[if gte IE 9]>
      <style type="text/css">
        .gradient {
           filter: none;
        }
      </style>
    <![endif]-->
    

    【讨论】:

      【解决方案2】:

      【讨论】:

      • 该站点和生成的按钮在 Opera 中无法正常工作。但是,如果您通过prefixr.com 运行生成的 CSS,它应该可以工作。
      【解决方案3】:

      试试http://www.cssbuttongenerator.com/

      完成按钮样式后,单击它,相应的 CSS 将出现在底部的框中​​。

      【讨论】:

        【解决方案4】:
        <style>
        button {
            -webkit-border-radius: 3px;
            -moz-border-radius: 3px;
            border-radius: 3px;
        }
        </style>
        
        <button>Test</button>
        

        见:http://jsfiddle.net/wPcn3/

        【讨论】:

          猜你喜欢
          • 2017-03-04
          • 1970-01-01
          • 2016-10-26
          • 1970-01-01
          • 2019-06-09
          • 1970-01-01
          • 1970-01-01
          • 2019-05-17
          • 2011-05-04
          相关资源
          最近更新 更多