整合營銷服務(wù)商

          電腦端+手機(jī)端+微信端=數(shù)據(jù)同步管理

          免費(fèi)咨詢熱線:

          Three主題如何添加3D旋轉(zhuǎn)標(biāo)簽云

          果大家有關(guān)注知更鳥的博主們都知道,前陣子知更鳥大神分享了一個(gè)WordPress添加3D旋轉(zhuǎn)標(biāo)簽云的JS文件和具體的添加辦法,所以今天趁著有空我也把這個(gè)3D旋轉(zhuǎn)標(biāo)簽云添加到Three主題中測(cè)試,現(xiàn)分享具體的操作步驟:

          1、將下面的3d.js腳本下載放到Three主題js目錄中,即Three\js。

          下載地址

          2、刪除Three主題 functions.php 模板文件的彩色標(biāo)簽云代碼,即刪除473至485行。

          3、打開Three主題 functions.php 模板文件,在大約260行,添加:

          1. wp_enqueue_script( '3d', get_template_directory_uri() . '/js/3d.js' );

          或者直接將下面代碼加到主題header.php的34行上面。

          1. <script type="text/javascript" src="<?php bloginfo('template_directory'); ?>/js/3d.js"></script>

          4、登錄WordPress后臺(tái)》外觀》小工具》添加“標(biāo)簽云”小工具到指定側(cè)邊欄(如首頁側(cè)邊欄),然后鼠標(biāo)對(duì)著側(cè)邊欄的這個(gè)標(biāo)簽云小工具右鍵》查看元素(360瀏覽器,其他應(yīng)該差不多)》在瀏覽器最下方就可以看到這個(gè)小工具的名稱為:tag_cloud-4。

          5、將下面的樣式添加到主題style.css的最后即可(PS:如果第3步得到的小工具名稱不是4,而是其他數(shù)字,則修改CSS代碼中相應(yīng)的數(shù)字即可):

          1. /** 3D旋轉(zhuǎn)標(biāo)簽云 **/

          2. #tag_cloud-4 {

          3. position:relative;

          4. height:340px;

          5. margin: 10px auto 0;

          6. }

          7. #tag_cloud-4 a {

          8. position:absolute;

          9. color: #fff;

          10. text-align: center;

          11. text-overflow: ellipsis;

          12. whitewhite-space: nowrap;

          13. top:0px;

          14. left:0px;

          15. padding: 3px 5px;

          16. border: none;

          17. }

          18. #tag_cloud-4 a:hover {

          19. background: #d02f53;

          20. display: block;

          21. }

          22. #tag_cloud-4 a:nth-child(n) {

          23. background: #666;

          24. border-radius: 3px;

          25. display: inline-block;

          26. line-height: 18px;

          27. margin: 0 10px 15px 0;

          28. }

          29. #tag_cloud-4 a:nth-child(2n) {

          30. background: #d1a601;

          31. }

          32. #tag_cloud-4 a:nth-child(3n) {

          33. background: #286c4a;

          34. }

          35. #tag_cloud-4 a:nth-child(5n) {

          36. background: #518ab2;

          37. }

          38. #tag_cloud-4 a:nth-child(4n) {

          39. background: #c91d13;

          40. }

          6、將3d.js文件19行的tag_cloud-2也改為tag_cloud-4即可(PS:如果第3步得到的小工具名稱不是4,而是其他數(shù)字,則修改CSS代碼中相應(yīng)的數(shù)字即可)。

          至此,Three主題已經(jīng)成功添加了3D旋轉(zhuǎn)標(biāo)簽云。不過這個(gè)只能添加到首頁側(cè)邊欄或日志頁側(cè)邊欄,如果想讓這個(gè)標(biāo)簽云同時(shí)出現(xiàn)在首頁和日志頁側(cè)邊欄,我們還需要添加一個(gè)公共側(cè)邊欄,步驟如下:

          1、打開Three主題 functions.php 模板文件,在48行后面添加以下代碼:

          1. register_sidebar( array(

          2. 'name' => '公共側(cè)邊欄',

          3. 'id' => 'sidebar-6',

          4. 'description' => '整站小工具',

          5. 'before_widget' => '<aside id="%1$s" class="widget %2$s">',

          6. 'after_widget' => '<div class="clear"></div></aside>',

          7. 'before_title' => '<h3 class="widget-title"><span class="cat">',

          8. 'after_title' => '</span></h3>',

          9. ) );

          2、打開Three主題 sidebar.php 模板文件,在13行后面添加以下代碼:

          1. <?php dynamic_sidebar( 'sidebar-6' ); ?>

          3、將剛才在后臺(tái)》外觀》小工具添加的“標(biāo)簽云”拖到“公共側(cè)邊欄”即可實(shí)現(xiàn)整站顯示3D旋轉(zhuǎn)標(biāo)簽云。


          家好,不知道你們是否和我一樣存在這樣的困惑呢,雖然css入門容易,但是其內(nèi)容太多,好多屬性看了似是而非,覺得自己看懂了,到自己用的時(shí)候又很犯難了,看到漂亮的效果還是無從下手,這主要還是自己對(duì)新屬性實(shí)踐太少了,不能進(jìn)行靈活應(yīng)用,CSS總讓一些人找不到感覺。其實(shí)學(xué)好CSS真的沒有太多捷徑,和JS編程一樣,要重視對(duì)待,要多看和多練,因?yàn)楝F(xiàn)在的CSS不再是以前的CSS啦。

          比如這兩本書《 CSS 權(quán)威指南第四版》,1000多頁,買了好幾個(gè)月我到現(xiàn)在還沒看完,文字實(shí)在太枯燥了,看完了忘,忘了繼續(xù)看,實(shí)在看不下去,不知道大家有沒有同樣的感受呢?

          好了,廢話不多說,今天我們要做的一個(gè)案例就是做一個(gè)常見的例子:在不少網(wǎng)站右側(cè)都有一個(gè)固定浮動(dòng)的留言圖標(biāo),我們點(diǎn)擊這個(gè)圖標(biāo),就會(huì)側(cè)滑顯示留言內(nèi)容面板。你也許會(huì)說這個(gè)不簡單嗎,使用JQ就能輕松實(shí)現(xiàn),但是我想說的,為了網(wǎng)站的性能,能用CSS實(shí)現(xiàn)的盡量不要用JS,因?yàn)楝F(xiàn)在CSS已足夠強(qiáng)大。

          今天這個(gè)例子,我們將使用純CSS實(shí)現(xiàn)這個(gè)效果,這里我們將用到” CSS checkbox hack“的技術(shù),效果如下圖所示:


          一、創(chuàng)建 HTML 結(jié)構(gòu)

          基于上面的效果圖,我們要?jiǎng)?chuàng)建三個(gè)元素,一個(gè) checkbox 元素以及對(duì)應(yīng)的 label 標(biāo)記,和一個(gè)表單面板元素。

          這里用到了一個(gè) CSS 特性值得大家關(guān)注下:<label> 標(biāo)簽的 for 屬性用于指定與哪個(gè)表單元素進(jìn)行關(guān)聯(lián),擴(kuò)大表單元素的點(diǎn)擊區(qū)域,我們點(diǎn)擊 label 元素標(biāo)記,其對(duì)應(yīng)的表單元素將會(huì)被聚焦選中。

          這個(gè)特性是我們實(shí)現(xiàn)這個(gè)案例的技巧之一,再結(jié)合 CSS checkbox 的偽類選擇器進(jìn)行留言面板的顯示與隱藏,這樣我們就可以擺脫 JS 來實(shí)現(xiàn)這個(gè)案例。

          基于以上思路 ,我們開始動(dòng)手吧,首先我們先放置 checkbox,和其對(duì)應(yīng)的 label,最后添加表單面板和相關(guān)的表單元素。

          我們將通過表單的 id 屬性與表單中l(wèi)abel元素的 for 值與其關(guān)聯(lián),最終我們完成了 HTML 結(jié)構(gòu)如下段代碼所示:

          <input type="checkbox" id="mycheckbox">
          <label for="mycheckbox" class="feedback-label">FEEDBACK</label>
          <form class="form">
            <div>
              <label for="fullname">Full Name</label>
              <input type="text" id="fullname">
            </div>
            <div>
              <label for="email">Email</label>
              <input type="email" id="email">
            </div>
            <div>
              <label for="comment">Comment</label>
              <textarea id="comment"></textarea>
            </div>
            <div>
              <button type="submit">Send</button>
            </div>
          </form>
          

          完成后的效果圖如下:

          二、定義基礎(chǔ)的樣式

          現(xiàn)在我們開始添加一些基礎(chǔ)的CSS的式,這里我們用到了CSS自定義變量,方便我們?nèi)中薷模€有一些 reset 規(guī)則,和表單的基礎(chǔ)規(guī)則樣式,示例代碼如下:

          :root {
            --white: white;
            --gradient: linear-gradient(-45deg, #FFA600 0%, #FF5E03 50%);
            --form: #eeefef;
            --border-radius: 4px;
            --form-width: 500px;
            --form-mob-width: 320px;
          }
           
          * {
            padding: 0;
            margin: 0;
            box-sizing: border-box;
          }
          
          body {
            font: 20px/1.5 sans-serif;
            background: var(--white);
          }
          
          h1 {
            font-size: 2rem;
            text-align: center;
            margin-top: 20vh;
          }
           
          button,
          label {
            cursor: pointer;
          }
           
          label {
            display: block;
          }
           
          button,
          input,
          textarea {
            font-family: inherit;
            font-size: 100%;
            border: none;
          }
           
          textarea {
            resize: none;
          }
          

          三、 定義表單元素相關(guān)樣式

          1、由于 checkbox 這個(gè)元素在案例中無需顯示,我們只是用其的偽類特性結(jié)合 label 控制留言面板的顯示與隱藏,因此我們需要將其移出可視區(qū)域,記住這里不能用隱藏屬性(display:none)。示例代碼如下:

          [type="checkbox"] {
            position: absolute;
            left: -9999px;
          }
          

          2、接下來,我們需要添加這些CSS操作:

          • 使用 fix 屬性將 checkbox 對(duì)應(yīng)的 label 標(biāo)簽元素固定在右側(cè)的中央。
          • 垂直先顯示”FEEDBACK“文本。
          • 隱藏表單面板,我們這里將其往右移動(dòng)其寬度的 100% 的距離,并垂直居中。

          對(duì)應(yīng)的CSS代碼如下:

          /*CUSTOM VARIABLES HERE*/
          .feedback-label,
          .form {
            position: fixed;
            top: 50%;
            right: 0;
          }
           
          .feedback-label {
            transform-origin: top right;
            transform: rotate(-90deg) translate(50%, -100%);
            z-index: 2;
          }
           
          .form {
            width: var(--form-width);
            max-height: 90vh;
            transform: translate(100%, -50%);
            padding: 30px;
            overflow: auto;
            background: var(--form);
            z-index: 1;
          }
          

          小提示:

          1、這里需要強(qiáng)調(diào)的是 feedback-label 樣式,在其垂直變換時(shí),我們先逆時(shí)針進(jìn)行了旋轉(zhuǎn),其 x ,y 軸的方向也是隨著旋轉(zhuǎn)的,所以是translate(50%, -100%),將其垂直居中。

          2、在 form 樣式里,我們使用 transform 方法,translate(100%, -50%) 將其移出頁面顯示區(qū)域

          3、我們繼續(xù),大家不要著急,馬上就快完成了,我們需要將頁面弄的漂亮些,添加一些樣式,示例代碼如下:

          /*CUSTOM VARIABLES HERE*/
           
          .feedback-label,
          .form input,
          .form textarea,
          .form button {
            border-radius: var(--border-radius);
          }
           
          .feedback-label,
          .form button {
            background: var(--gradient);
            color: var(--white);
          }
           
          .feedback-label:hover,
          .form button:hover {
            filter: hue-rotate(-45deg);
          }
           
          .feedback-label {
            padding: 5px 10px;
            border-radius: var(--border-radius) var(--border-radius) 0 0;
          }
           
          form div:not(:last-child) {
            margin-bottom: 20px;
          }
           
          form div:last-child {
            text-align: right;
          }
           
          .form input,
          .form textarea {
            padding: 0 5px;
            width: 100%;
          }
           
          .form button {
            padding: 10px 20px;
            width: 50%;
            max-width: 120px;
          }
           
          .form input {
            height: 40px;
          }
           
          .form textarea {
            height: 220px;
          }
          

          小提示:這里我們的背景色用到了 linear-gradient() 線性漸變,實(shí)現(xiàn)了一個(gè)漂亮的顏色漸變背景。還有一個(gè) CSS3 語法需要關(guān)注下:hue-rotate,色調(diào)旋轉(zhuǎn)濾鏡,方便我們改變當(dāng)前的顏色。

          四、使用CSS選擇器,實(shí)現(xiàn)表單面板的切換和隱藏

          我們通過點(diǎn)擊 checkbox 對(duì)應(yīng)的 label 標(biāo)簽進(jìn)行切換和顯示留言面板,這里我們用到了 :checked 偽類,以及 ~(后續(xù)同胞選擇器)和 +(緊鄰?fù)x擇器),輔助元素的選擇進(jìn)行樣式變換,示例代碼如下:

          [type="checkbox"]:checked + .feedback-label {
            transform: rotate(-90deg) translate(50%, calc((var(--form-width) + 100%) * -1));
          }
           
          [type="checkbox"]:focus + .feedback-label {
            outline: 2px solid rgb(77, 144, 254);
          }
           
          [type="checkbox"]:checked ~ .form {
            transform: translate(0, -50%);
          }
           
          .feedback-label,
          .form {
            transition: all 0.35s ease-in-out;
          }
          

          這里有幾個(gè)樣式規(guī)則我們需要聊一下:

          1. translate(50%, calc((var(--form-width) + 100%) * -1)); 這個(gè)樣式是不是有些復(fù)雜,其實(shí)也不難,就是多加了一個(gè)表單面板的寬度,由于旋轉(zhuǎn)后,y軸變成了水平軸,向左移動(dòng)相當(dāng)Y軸往上移動(dòng),因此是負(fù)值,需要乘-1。
          2. 第二個(gè)選擇器,我們之所以加個(gè)選中后的 outline 輪廓屬性,主要是為了方便那些習(xí)慣鍵盤操作的用戶,當(dāng)其使用 Tab 鍵選擇 feedback label元素時(shí),然后再使用 Space 空格鍵就能很方便的打開留言面板進(jìn)行切換。
          3. 第三個(gè)選擇器,我們使用 transform: translate(0, -50%); 將 X 軸更改成0,恢復(fù)成最開始的位置,這樣我們的留言面板內(nèi)容就能顯示出來。

          處理響應(yīng)式問題

          最后,特別重點(diǎn)提示下我們做頁面要考慮頁面響應(yīng)式適配的問題,這里我們需要針對(duì)手機(jī)設(shè)備做一些樣式的調(diào)整,比如更改表單面板的寬度由原來的 500px 調(diào)整到 320px,以及初始字體的大小,調(diào)整成16px。

          最終添加的響應(yīng)式代碼如下:

          /*CUSTOM VARIABLES HERE*/
           
          @media screen and (max-width: 600px) {
            body {
              font-size: 16px;
            }
           
            .form {
              padding: 15px;
              width: var(--form-mob-width);
            }
           
            form div:not(:last-child) {
              margin-bottom: 10px;
            }
           
            [type="checkbox"]:checked + .feedback-label {
              transform: rotate(-90deg) translate(50%, calc((var(--form-mob-width) + 100%) * -1));
            }
          }
          

          小節(jié)

          好了,到這里,我們的案例就全部完成了,你可以欣賞下自己完成的杰作啦,實(shí)現(xiàn)起來是不是很簡單呢,最后我還是建議大家還是親自動(dòng)手實(shí)踐一遍,這樣才能加深對(duì)本案例用到的CSS屬性的理解。

          最終完成的效果,大家可以點(diǎn)擊以下網(wǎng)址進(jìn)行在線體驗(yàn):

          https://www.qianduandaren.com/demo/feedback/

          今天的內(nèi)容就和大家分享到這里,感謝你的閱讀,如果你喜歡我的分享,麻煩給個(gè)關(guān)注、點(diǎn)贊加轉(zhuǎn)發(fā)哦,你的支持,就是我分享的動(dòng)力,后續(xù)會(huì)持續(xù)分享 CSS 常用案例和技巧,歡迎持續(xù)關(guān)注。

          延伸閱讀

          基礎(chǔ)章節(jié):這30個(gè)CSS選擇器,你必須熟記(上)

          基礎(chǔ)章節(jié):這30個(gè)CSS選擇器,你必須熟記(中)

          基礎(chǔ)章節(jié):這30個(gè)CSS選擇器,你必須熟記(下)

          使用 CSS Checkbox Hack 技術(shù)制作一個(gè)手風(fēng)琴組件

          著現(xiàn)代瀏覽器對(duì)CSS3的支持愈發(fā)完善,對(duì)于實(shí)現(xiàn)各個(gè)瀏覽器兼容的元素的水平翻轉(zhuǎn)或是垂直翻轉(zhuǎn)效果也就成為了可能。相關(guān)的CSS代碼如下:

          其中,就目前而言,對(duì)于基于webkit核心的瀏覽器,如Chrome以及Safari,實(shí)現(xiàn)元素的垂直翻轉(zhuǎn)或是水平翻轉(zhuǎn)也可以使用如下樣式:

          --

          來源:切圖網(wǎng)(qietu.com)始于2007年,專注web前端開發(fā),培訓(xùn)


          主站蜘蛛池模板: 色屁屁一区二区三区视频国产| 午夜在线视频一区二区三区| 人妻视频一区二区三区免费| 精品aⅴ一区二区三区| 国产在线精品一区二区中文| 高清国产AV一区二区三区| 中文字幕一区二区三区在线观看| 亚洲国产精品无码久久一区二区| 日本一区二区在线| 一区二区三区日韩| 免费一区二区三区| 亚洲精品国产suv一区88| 夜夜爽一区二区三区精品| 91在线精品亚洲一区二区| 成人区人妻精品一区二区三区| 国产一区二区四区在线观看| 老湿机一区午夜精品免费福利| 日本免费一区二区三区| 国偷自产Av一区二区三区吞精| 国产在线一区二区| 国产精品无码一区二区三区不卡 | 国产一区视频在线免费观看| 天堂一区二区三区精品| 国产产一区二区三区久久毛片国语 | 日本一区二区三区精品中文字幕| 亚洲一区无码中文字幕乱码| 天美传媒一区二区三区| 亚洲AV无码一区二区乱孑伦AS| 学生妹亚洲一区二区| 香蕉视频一区二区| 亚洲av乱码一区二区三区按摩| 国产一区中文字幕| 亚洲色精品vr一区二区三区| 91在线看片一区国产| 国产精品自在拍一区二区不卡| 寂寞一区在线观看| 一区二区三区四区无限乱码| 制服丝袜一区二区三区| 日韩美女视频一区| 国产99视频精品一区| 国产精品一区二区无线|