【问题标题】:How to create a ribbon shape in CSS如何在 CSS 中创建丝带形状
【发布时间】:2019-08-09 03:17:00
【问题描述】:

http://jsfiddle.net/6HyjZ/

.bookmarkRibbon{
     width:0; 
     height:100px; 
     border-right:50px solid blue;
     border-left:50px solid blue;
     border-bottom:30px solid transparent;
}

<div class="bookmarkRibbon"></div>

我正在努力制作这种形状的版本,其中功能区指向右侧而不是向下, 我怎样才能做到这一点?

【问题讨论】:

    标签: html css css-shapes


    【解决方案1】:

    为了帮助您逐步了解逻辑
    因此您可以轻松地将其应用到您想要的任何一侧:

    .bookmarkRibbon {
      border:       50px solid blue;        /* All borders set */
      border-left:  0;                      /* Remove left border */
      border-right: 30px solid transparent; /* Right transparent */
      width:        100px;                  /* Increase element Width */
    }
    &lt;div class="bookmarkRibbon"&gt;&lt;/div&gt;

    【讨论】:

    • 这不仅是这个问题的最佳答案,也是我在这个论坛上看到的最好的答案
    • 解释得很好!泰!
    【解决方案2】:

    这里使用有用的接受答案是文本版本。

    垂直(从上到下)带文字的横幅

    .ribbon-vertical {
    	position: absolute;
    	right: 10px;
      	border:       13px solid #e46a76;        /* All borders set */
      	border-top:  0;                      /* Remove left border */
      	border-bottom: 10px solid transparent; /* Right transparent */
      	height: auto;                  /* Increase element Width */
      	width: 0;
      	word-wrap: break-word;
      	color: white;
      	z-index: 1;
      	-webkit-filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
        		filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
    }
    
    .ribbon-vertical div{
        position: relative;
        right: 5px;
        padding-top: 2px;
        padding-bottom: 2px;
    }
    &lt;div class="ribbon-vertical"&gt;&lt;div&gt;BANNER&lt;/div&gt;&lt;/div&gt;

    带文字的水平(从右到左)横幅

    .ribbon-horizontal{
    	position: absolute;
    	right: 0;
    	bottom: 5rem;
      	border: 13px solid #e46a76;
      	border-right: 0;
      	border-left: 10px solid transparent;
      	height: 0;
      	line-height: 0;
      	width: 100px;
      	color: white;
      	z-index: 1;
      	-webkit-filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
        		filter: drop-shadow(0 1px 2px rgba(0, 0, 0, 0.3));
    	letter-spacing: 3px;
    }
    .ribbon-horizontal span{
    	position: relative;
    	padding: 0 4px 0 10px;
    	text-align: center;   			
    }
    &lt;div class="ribbon-horizontal"&gt;&lt;span&gt;BANNER&lt;/span&gt;&lt;/div&gt;

    【讨论】:

      【解决方案3】:
      .bookmarkRibbon{
           width:100px; 
           height:0; 
           border-bottom:50px solid blue;
           border-top:50px solid blue;
           border-right:30px solid transparent;
      }
      

      【讨论】:

        【解决方案4】:

        如果您“旋转”css 属性,它会将表单旋转 90 度。

        .bookmarkRibbon{
             width:100px; 
             height:0; 
             border-bottom:50px solid blue;
             border-top:50px solid blue;
             border-left:30px solid transparent;
        }
        

        http://jsfiddle.net/6HyjZ/6/

        【讨论】:

          【解决方案5】:

          使用transform:rotate

          .bookmarkRibbon{
               width:0; 
               height:100px; 
               border-right:50px solid blue;
               border-left:50px solid blue;
               border-bottom:30px solid transparent;
              transform:rotate(7deg);
              -ms-transform:rotate(7deg); /* IE 9 */
              -webkit-transform:rotate(7deg); /* Opera, Chrome, and Safari */
          }
          

          【讨论】:

            【解决方案6】:

            只要交换你所拥有的就可以了jsfiddle

            .bookmarkRibbonRight{
                 width:100px; 
                 height:0px; 
                 border-right:30px solid transparent;
                 border-bottom:50px solid blue;
                 border-top:50px solid blue;
            }
            

            【讨论】:

              【解决方案7】:

              你已经有了形状,只需使用 transform 属性来改变它的角度。

              这是我添加到您拥有的代码中的代码。

               transform: rotate(270deg);
              

              这是小提琴,http://jsfiddle.net/6HyjZ/11/ 它现在指向右侧(除非那是右侧 right 侧)

              【讨论】:

              • 他只是努力制作这个形状的版本,使功能区指向右侧而不是向下,因此它可以在纯 CSS2(IE8 友好)中实现
              【解决方案8】:

              使用rotate css 转换:

               .bookmarkRibbon{
                    width:0; 
                    height:100px; 
                    border-right:50px solid blue;
                    border-left:50px solid blue;
                    border-bottom:30px solid transparent;
                   -webkit-transform: rotate(90deg);
                   -ms-transform: rotate(90deg);
                   transform: rotate(90deg);
               }
              

              http://jsfiddle.net/6HyjZ/13/

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 2020-03-13
                • 2021-01-02
                • 2014-11-28
                • 2016-10-21
                • 1970-01-01
                • 1970-01-01
                • 2012-01-30
                • 1970-01-01
                相关资源
                最近更新 更多