整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          CSS 按鈕

          為大家介紹使用 CSS 來制作按鈕。


          基本按鈕樣式

          默認按鈕 CSS 按鈕

          CSS 實例

          .button {

          background-color: #4CAF50; /* Green */

          border: none;

          color: white;

          padding: 15px 32px;

          text-align: center;

          text-decoration: none;

          display: inline-block;

          font-size: 16px;

          }


          按鈕顏色

          GreenBlueRedGrayBlack

          我們可以使用 background-color 屬性來設置按鈕顏色:

          CSS 實例

          .button1 {background-color: #4CAF50;} /* Green */

          .button2 {background-color: #008CBA;} /* Blue */

          .button3 {background-color: #f44336;} /* Red */

          .button4 {background-color: #e7e7e7; color: black;} /* Gray */

          .button5 {background-color: #555555;} /* Black */

          嘗試一下 ?


          按鈕大小

          10px12px16px20px24px

          我們可以使用 font-size 屬性來設置按鈕大小:

          CSS 實例

          .button1 {font-size: 10px;}

          .button2 {font-size: 12px;}

          .button3 {font-size: 16px;}

          .button4 {font-size: 20px;}

          .button5 {font-size: 24px;}


          圓角按鈕

          2px4px8px12px50%

          我們可以使用 border-radius 屬性來設置圓角按鈕:

          CSS 實例

          .button1 {border-radius: 2px;}

          .button2 {border-radius: 4px;}

          .button3 {border-radius: 8px;}

          .button4 {border-radius: 12px;}

          .button5 {border-radius: 50%;}

          嘗試一下 ?


          按鈕邊框顏色

          綠藍紅灰黑

          我們可以使用 border 屬性設置按鈕邊框顏色:

          CSS 實例

          .button1 {

          background-color: white;

          color: black;

          border: 2px solid #4CAF50; /* Green */

          }

          ...

          嘗試一下 ?


          鼠標懸停按鈕

          綠藍紅灰黑

          綠藍紅灰黑

          我們可以使用 :hover 選擇器來修改鼠標懸停在按鈕上的樣式。

          提示: 我們可以使用 transition-duration 屬性來設置 "hover" 效果的速度:

          CSS 實例

          .button {

          -webkit-transition-duration: 0.4s; /* Safari */

          transition-duration: 0.4s;

          }

          .button:hover {

          background-color: #4CAF50; /* Green */

          color: white;

          }

          ...


          按鈕陰影

          陰影按鈕鼠標懸停后顯示陰影

          我們可以使用 box-shadow 屬性來為按鈕添加陰影:

          CSS 實例

          .button1 {

          box-shadow: 0 8px 16px 0 rgba(0,0,0,0.2), 0 6px 20px 0 rgba(0,0,0,0.19);

          }

          .button2:hover {

          box-shadow: 0 12px 16px 0 rgba(0,0,0,0.24), 0 17px 50px 0 rgba(0,0,0,0.19);

          }

          嘗試一下 ?


          禁用按鈕

          正常按鈕禁用按鈕

          我們可以使用 opacity 屬性為按鈕添加透明度 (看起來類似 "disabled" 屬性效果)。

          提示: 我么可以添加 cursor 屬性并設置為 "not-allowed" 來設置一個禁用的圖片:

          CSS 實例

          .disabled {

          opacity: 0.6;

          cursor: not-allowed;

          }

          嘗試一下 ?


          按鈕寬度

          250px

          50%100%

          默認情況下,按鈕的大小有按鈕上的文本內容決定( 根據文本內容匹配長度 )。 我們可以使用 width 屬性來設置按鈕的寬度:

          提示: 如果要設置固定寬度可以使用像素 (px) 為單位,如果要設置響應式的按鈕可以設置為百分比。

          CSS 實例

          .button1 {width: 250px;}

          .button2 {width: 50%;}

          .button3 {width: 100%;}

          嘗試一下 ?


          按鈕組

          ButtonButtonButtonButton

          移除外邊距并添加 float:left 來設置按鈕組:

          CSS 實例

          .button {

          float: left;

          }

          嘗試一下 ?


          帶邊框按鈕組

          ButtonButtonButtonButton

          我們可以使用 border 屬性來設置帶邊框的按鈕組:

          CSS 實例

          .button {

          float: left;

          border: 1px solid green

          }

          嘗試一下 ?


          按鈕動畫

          CSS 實例

          鼠標移動到按鈕上后添加箭頭標記:

          Hover

          嘗試一下 ?

          CSS 實例

          點擊時添加 "波紋" 效果:

          Click

          CSS 實例

          點擊時添加 "壓下" 效果:

          Click

          如您還有不明白的可以在下面與我留言或是與我探討QQ群308855039,我們一起飛!

          一篇文章Stimulus:連接HTML和JavaScript的橋梁,實現簡單的controller,并學習了Stimulus是如何連接HTML與JavaScript的。現在我們使用Stimulus來實現復制文本到粘貼板的按鈕。

          比如說,我們現在有一個需求,就是幫助用戶生成密碼,在密碼旁邊放置一個按鈕,點擊按鈕后密碼就被拷貝到粘貼板上了,這樣就方便用戶使用這個密碼了。

          打開public/index.html,修改body內容,填充一個簡單的按鈕,如下:

          <div>
              PIN: <input type="text" value="1234" readonly>
              <button>Copy to Clipboard</button>
          </div>



          下一步,創建src/controllers/clipboard_controller.js,然后添加一個copy()方法:

          import { Controller } from "@hotwired/stimulus"
          
          export default class extends Controller {
              copy() {
              }
          }

          然后,給div添加data-controller=“clipboard”。只要是給元素添加了data-controller屬性,Stimulus就會連接一個controller實例。

          <div data-controller="clipboard">

          我們還需要一個對輸入框的引用,這樣我們就可以在調用粘貼板API之前獲取輸入框的內容。給文本框添加data-clipboard-target=“source“:

          PIN: <input data-clipboard-target="source" type="text" value="1234" readonly>

          在controller中定義一個target,然后就可以通過this.sourceTarget訪問文本框了。

          import { Controller } from "@hotwired/stimulus"
          
          export default class extends Controller {
              static targets = [ "source" ]
              
              copy() {
              }
          }


          解釋一下這個targets:

          當Stimulus加載你的controller類時,它會查看靜態數組targets的字符串元素,對于每一個字符串,Stimulus會在controller中添加3個屬性。在這里,對于“source”,會添加如下屬性:

          this.sourceTarget 在controller的域內的第一個source

          this.sourceTargets 在controller的域內所有的source組成的一個數組

          this.hasSourceTarget 在controller的域內是否有source


          我們希望點擊按鈕時調用controller中的copy()方法,所以我們需要添加data-action=“clipboard#copy“

          <button data-action="clipboard#copy">Copy to Clipboard</button>

          你可以已經注意到在上面的動作描述符中省略了click->。那是因為Stimulus給button設置了click作為它默認的事件。


          某些其他元素也有默認事件。下面是個全部列表:

          元素

          默認事件

          a

          click

          button

          click

          details

          toggle

          form

          submit

          input

          input

          input type=“submit”

          click

          select

          change

          textarea

          input

          最終,在copy()方法中,我們獲取輸入框的內容,調用粘貼板API

          copy() {
              navigator.clipboard.writeText(this.sourceTarget.value)
          }


          刷新頁面,點擊按鈕,然后快捷鍵粘貼到Greet按鈕前到輸入框,可以看到1234。



          到目前為止,在頁面上同一時間只有一個controller實例。在頁面上同時有一個controller的多個實例也是很正常的。


          我們的controller是可以復用的,只要你需要在頁面上添加復制內容的按鈕,無論是哪個頁面,只要把對應的屬性值寫好,我們的controller都是生效的。


          還是上面的例子,再添加另外一個復制按鈕:

          <div data-controller="clipboard">
              PIN: <input data-clipboard-target="source" type="text" value="3737" readonly>
              <button data-action="clipboard#copy" class="clipboard-button">Copy to Clipboard</button>
          </div>


          刷新頁面,驗證一下兩個復制按鈕是否都生效。

          我們再添加一個可以復制的元素,不用button,我們用a標簽,

          <div data-controller="clipboard">
              PIN: <input data-clipboard-target="source" type="text" value="6666" readonly>
              <a href="#" data-action="clipboard#copy" class="clipboard-button">Copy to Clipboard</a>
          </div>



          Stimulus允許我們使用任何元素,只要它設置了合適的data-action屬性,就可以觸發復制。

          這個例子里,要注意一點,點擊鏈接會使瀏覽器追蹤a標簽內的href屬性跳轉,可以取消這種默認行為,只需要在action中調用 event.preventDefault()就可以了。

          copy(event) {
              event.preventDefault()    
              navigator.clipboard.writeText(this.sourceTarget.value)
          }


          還有另外一個方法,拷貝粘貼板上

          copy(event) {
              event.preventDefault()    
              this.sourceTarget.select()
              document.execCommand("copy")
          }


          在本文中,我們看了一個在現實中把瀏覽器API包裝在Stimulus的controller中的例子。還有一個controller的多個實例如何同時出現在頁面上,我們還探索了actions和targets如何保持HTML和JavaScript的松散耦合。


          下一篇文章,我們將優化一下這個復制粘貼板的功能,讓它運行起來更加健壯。

          Stimulus:瀏覽器不支持復制或者弱網條件下,怎么辦?

          文中我們對CSS超炫加載動畫設計、實現與實例進行了講解與說明,通過學習可知使用CSS提供的animation屬性及偽元素等可以實現精美的CSS動畫效果的設計與開發。本文我們將繼續介紹CSS在Web頁面元素設計中的應用。

          純CSS實現開關元素設計


          按鈕開關設計要求及效果

          本例我們使用CSS完成開關的設計,主要要求是在點擊開關時開關標識顏色需要改變,另外需要體現出元素點擊前與點擊后的動態變化與立體效果。本例最終設計呈現效果描述如下圖所示:

          開關按鈕實現效果展示


          設計思路與語法說明

          要實現如上圖所示的開關按鈕效果,需要針對元素改變鼠標點擊前后的CSS樣式,因為只使用CSS實現,我們選擇本身具有點擊屬性的INPUT元素。因此還需要考慮對INPUT元素外觀進行設置,其設置也主要是依托于CSS選擇器及相關屬性的設置。

          CSS選擇器及屬性設置

          另一方面本例中出現的開關標志,主要使用第三方字體庫提供的圖標實現,因此需要對font相關屬性及CSS外部link方法有所學習掌握。本例所使用字體如下所示:

          字體圖標

          在明確基本思路之后,我們可以使用submine進行代碼編寫,主要編寫步驟如下:

          1、鏈接字體樣式

          本例使用如上圖所示提供的on圖標,即Font Awesome圖標字體庫和CSS框架,因此需要外部鏈接或者下載相應CSS文件,這里我們選擇外部鏈接,通過使用CSS提供的link,實現代碼如下:

          字體鏈接

          鏈接完成之后我們在設置字體時可直接使用FontAwesome字體,其中on圖標對應的編碼為f011。

          2、定義頁面內容

          本例頁面內容主要使用input元素checkbox屬性進行按鈕設置。因此頁面內容部分定義如下所示:

          頁面主體部分

          3、定義checkbox樣式

          在完成頁面元素添加之后就需要對頁面元素進行CSS樣式的設置,本例通過元素加type屬性作為選擇器,選擇指定元素并進行樣式設置。代碼如下:

          checkbox屬性設置

          checkbox屬性設置描述如上圖所示,設置效果如下:

          checkbox屬性效果

          4、input添加checked、after等樣式

          為進一步實現點擊效果切換及圖標按鈕的效果,需要對check狀態及after偽元素進行CSS樣式的設置。其中after為元素主要用于在上圖中添加on開關圖標。實現代碼描述如下:

          after偽元素選擇器及樣式設置

          after偽元素選擇器及樣式設置如上圖所示,主要完成content內容即on圖標設置,字體選擇、字體顏色及字體大小設置,設置完成預覽效果如下:

          after為元素設置效果

          要實現點擊效果就需要在點擊之后對input元素樣式進行設置,因此我們使用checked作為選擇器對該狀態下input樣式進行設置。設置代碼如下所示:

          checked狀態CSS設置

          checked狀態CSS設置如上圖所示,我們只對box-shadow陰影進行設置,通過陰影變化實現按鈕動態效果。

          5、點擊之后on圖標顏色變化

          點擊之后on圖標顏色變化主要通過對input[type="checkbox"]:checked,進一步使用after偽元素定義字體顏色實現。實現代碼如下所示:

          on圖標(字體)顏色改變

          通過使用該選擇器,會在input點擊之后,on字體顏色變為紅色。以上給出了input按鈕效果實現的基本思路與部分核心實現代碼。如需完整案例代碼請關注并私信作者。


          本頭條號長期關注編程資訊分享;編程課程、素材、代碼分享及編程培訓。如果您對以上方面有興趣或代碼錯誤、建議與意見,可在評論區回復。更多程序設計相關教程及實例分享,期待大家關注與閱讀!


          主站蜘蛛池模板: 国产午夜福利精品一区二区三区| 91久久精品国产免费一区| 无码精品视频一区二区三区| 亚洲av成人一区二区三区观看在线 | 亚洲国产一区二区视频网站| 日本免费一区二区三区四区五六区| 国产一区二区福利久久| 亚洲AV无码一区东京热久久| 日韩在线一区视频| 亚洲综合在线成人一区| 成人区人妻精品一区二区不卡网站| 中文字幕av人妻少妇一区二区| 国产色欲AV一区二区三区| 一区二区三区无码视频免费福利 | 日韩人妻无码一区二区三区99| 国产大秀视频在线一区二区| 精品一区二区高清在线观看| 国产自产在线视频一区| 国产福利无码一区在线| 国产美女视频一区| 国产日韩高清一区二区三区| 精品3d动漫视频一区在线观看| 日韩av片无码一区二区不卡电影 | 久久久综合亚洲色一区二区三区| 国产99精品一区二区三区免费| 国产熟女一区二区三区五月婷| 亚洲日韩国产一区二区三区在线| 亚洲视频一区二区三区| 91精品福利一区二区三区野战| 亚洲一区二区三区香蕉| 鲁丝片一区二区三区免费| 国产一区二区三区不卡AV| 国产AV午夜精品一区二区三| 国产一区二区精品久久凹凸| 亚洲国产一区二区视频网站| 成人国产一区二区三区| 精品视频一区二区三区四区五区| 精品国产日韩亚洲一区| 中文字幕VA一区二区三区| 国产凹凸在线一区二区| 日韩精品无码一区二区中文字幕|