亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅使用一個元素的細長六角形按鈕

僅使用一個元素的細長六角形按鈕

溫溫醬 2019-10-12 10:52:40
我想僅使用CSS制作一個類似這樣的按鈕,而不使用其他元素。按鈕圖片由于按鈕帶有border附件,因此我認為通常都需要:before和:after元素,以便僅在一側創建一個箭頭。因此,要在每一側制作一個箭頭,我需要span在鏈接內添加另一個元素。我嘗試的第二種方法是您在下面看到的方法。但是,使用這種解決方案時,它們無法正確居中,并且箭頭的每一邊的長度都不同。有解決方案嗎?/* General Button Style */.button {  display: block;  position: relative;  background: #fff;  width: 300px;  height: 80px;  line-height: 80px;  text-align: center;  font-size: 20px;  text-decoration: none;  text-transform: uppercase;  color: #e04e5e;  margin: 40px auto;  font-family: Helvetica, Arial, sans-serif;  box-sizing: border-box;}/* Button Border Style */.button.border {  border: 4px solid #e04e5e;}.button.border:hover {  background: #e04e5e;  color: #fff;}/* Button Ribbon-Outset Border Style */.button.ribbon-outset.border:after,.button.ribbon-outset.border:before {  top: 50%;  content: " ";  height: 43px;  width: 43px;  position: absolute;  pointer-events: none;  background: #fff;}.button.ribbon-outset.border:after {  left: -3px;  margin-top: -40px;  transform-origin: 0 0;  box-sizing: border-box;  border-bottom: 4px solid #e04e5e;  border-left: 4px solid #e04e5e;  transform: rotate(57.5deg) skew(30deg);}.button.ribbon-outset.border:before {  right: -46px;  margin-top: -40px;  transform-origin: 0 0;  box-sizing: border-box;  border-top: 4px solid #e04e5e;  border-right: 4px solid #e04e5e;  transform: rotate(57.5deg) skew(30deg);}.button.ribbon-outset.border:hover:after {  background: #e04e5e}.button.ribbon-outset.border:hover:before {  background: #e04e5e}<a href="#" class="button ribbon-outset border">Click me!</a>
查看完整描述

3 回答

?
肥皂起泡泡

TA貢獻1829條經驗 獲得超6個贊

我自己得到了答案。這是:before和:after元素的transform屬性的問題。


CSS已更改:


/* Button Border Style */

.button.border {

    border-top:4px solid #e04e5e;

    border-bottom:4px solid #e04e5e;

}

/* Button Ribbon-Outset Border Style */

.button.ribbon-outset.border:after, .button.ribbon-outset.border:before {

    height: 42px;

    width: 42px;

}

.button.ribbon-outset.border:after {

    left:0;

    border-bottom:5px solid #e04e5e;

    border-left:5px solid #e04e5e;

    transform:rotate(45deg) skew(19deg,19deg);

}

.button.ribbon-outset.border:before {

    right:-42px;

    border-top:5px solid #e04e5e;

    border-right:5px solid #e04e5e;

    transform:rotate(45deg) skew(19deg,19deg);

}


查看完整回答
反對 回復 2019-10-12
  • 3 回答
  • 0 關注
  • 688 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號