整合營(yíng)銷(xiāo)服務(wù)商

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

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

          阿里云郵箱假期郵件自動(dòng)回復(fù)怎么設(shè)置?

          阿里云郵箱假期郵件自動(dòng)回復(fù)怎么設(shè)置?
          • 件版本:
          • 軟件大小:
          • 軟件授權(quán):
          • 適用平臺(tái):
          • 下載http://dl.pconline.com.cn/download/373909.html

          1、登錄郵箱后點(diǎn)擊右上角“郵箱設(shè)置”,在左側(cè)展開(kāi)設(shè)置功能列表中點(diǎn)擊"假期回復(fù)”,然后勾選“在以下時(shí)間內(nèi)啟用自動(dòng)回復(fù)”,選擇時(shí)間,輸入回復(fù)內(nèi)容保存即可。

          阿里云郵箱如何設(shè)置自動(dòng)轉(zhuǎn)發(fā)郵件?

          1、登錄郵箱后點(diǎn)擊右上角“郵箱設(shè)置”,在左側(cè)展開(kāi)設(shè)置功能列表中點(diǎn)擊“自動(dòng)轉(zhuǎn)發(fā)”,輸入轉(zhuǎn)發(fā)郵箱地址然后點(diǎn)擊“添加轉(zhuǎn)發(fā)郵箱地址”。

          2、添加后會(huì)在轉(zhuǎn)發(fā)郵箱收到一封確認(rèn)郵件,轉(zhuǎn)發(fā)郵箱地址顯示“待驗(yàn)證”狀態(tài),點(diǎn)擊確認(rèn)郵件中的鏈接進(jìn)行驗(yàn)證后,回到自動(dòng)轉(zhuǎn)發(fā)設(shè)置頁(yè)面保存修改,自動(dòng)轉(zhuǎn)發(fā)設(shè)置成功。

          3、最后選擇對(duì)已轉(zhuǎn)發(fā)的郵件執(zhí)行保留原郵件、刪除原郵件或標(biāo)記原郵件為已讀的操作。

          使用AJAX實(shí)現(xiàn)ChatGPT自動(dòng)回復(fù)微信群聊消息的技術(shù)實(shí)踐

          ## 引言:賦予智能助手實(shí)時(shí)互動(dòng)能力

          在當(dāng)今社交媒體時(shí)代,自動(dòng)化處理與回應(yīng)用戶消息的需求日益增強(qiáng)。設(shè)想一下,如果你的微信公眾號(hào)或微信群能夠集成ChatGPT的強(qiáng)大人工智能回復(fù)功能,無(wú)疑會(huì)給用戶帶來(lái)全新的交互體驗(yàn)。本文將以“使用AJAX實(shí)現(xiàn)ChatGPT自動(dòng)回復(fù)微信群聊消息”為主題,探討如何借助Web前端技術(shù),結(jié)合ChatGPT API構(gòu)建一個(gè)實(shí)時(shí)響應(yīng)并自動(dòng)回復(fù)微信群聊消息的小程序。由于微信平臺(tái)自身的限制,我們將模擬這個(gè)過(guò)程,并非直接在微信平臺(tái)上實(shí)現(xiàn)(微信官方并不開(kāi)放此類接口給第三方)。下面將從設(shè)計(jì)思路、技術(shù)選型到代碼實(shí)現(xiàn)逐步展開(kāi)。

          ### **一、需求分析與設(shè)計(jì)思路**

          #### **1. 需求概述**

          - **獲取群聊消息**:模擬從微信服務(wù)器接收群聊消息。

          - **調(diào)用ChatGPT API**:將接收到的消息發(fā)送至ChatGPT API以獲取智能回復(fù)。

          - **自動(dòng)發(fā)送回復(fù)**:將ChatGPT生成的回復(fù)模擬發(fā)送回群聊。

          #### **2. 技術(shù)路線**

          - 使用HTML5構(gòu)建前端頁(yè)面模擬微信聊天界面。

          - 利用AJAX進(jìn)行異步通信,模擬從微信服務(wù)器拉取消息及發(fā)送回復(fù)。

          - 調(diào)用OpenAI提供的ChatGPT API接口,獲取智能回復(fù)內(nèi)容。

          ### **二、搭建基礎(chǔ)環(huán)境與模擬接口**

          #### **1. HTML基本布局**

          ```html

          <!DOCTYPE html>

          <html lang="zh-CN">

          <head>

          <meta charset="UTF-8">

          <title>ChatGPT自動(dòng)回復(fù)微信群聊</title>

          <!-- 添加樣式 -->

          <style>

          /* CSS代碼省略,用于美化聊天窗口樣式 */

          </style>

          </head>

          <body>

          <div id="chat-container">

          <!-- 模擬聊天記錄區(qū)域 -->

          <div id="message-list"></div>

          <!-- 消息輸入框與發(fā)送按鈕 -->

          <input type="text" id="message-input" placeholder="請(qǐng)輸入消息...">

          <button id="send-button">發(fā)送</button>

          </div>

          <script src="main.js"></script>

          </body>

          </html>

          ```

          #### **2. 模擬API服務(wù)**

          由于無(wú)法直接接入微信API,我們可以自行搭建簡(jiǎn)單的模擬服務(wù)來(lái)模擬獲取和發(fā)送消息的過(guò)程。這里僅做演示,實(shí)際場(chǎng)景中請(qǐng)?zhí)鎿Q為合法且安全的來(lái)源。

          ```javascript

          // 在main.js中定義模擬API

          const MOCK_API_URL='https://your-mock-api.com';

          const simulateFetchMessages=async ()=> {

          // 模擬從服務(wù)器獲取群聊消息

          const response=await fetch(MOCK_API_URL + '/fetch-messages');

          const messages=await response.json();

          // 處理并顯示消息

          displayMessages(messages);

          };

          const simulateSendMessage=async (content)=> {

          // 模擬發(fā)送消息到服務(wù)器

          const payload={ content };

          const response=await fetch(MOCK_API_URL + '/send-message', {

          method: 'POST',

          headers: { 'Content-Type': 'application/json' },

          body: JSON.stringify(payload),

          });

          // 模擬ChatGPT回復(fù)

          const reply=await callChatGPT(content);

          // 顯示ChatGPT回復(fù)

          displayReply(reply);

          };

          ```

          ### **三、調(diào)用ChatGPT API獲取回復(fù)**

          #### **1. 注冊(cè)并獲取OpenAI密鑰**

          前往OpenAI官方網(wǎng)站注冊(cè)并獲取API密鑰,以便調(diào)用ChatGPT API。

          #### **2. 使用AJAX調(diào)用ChatGPT API**

          ```javascript

          async function callChatGPT(message) {

          const CHAT_GPT_API_URL='https://api.openai.com/v1/completions';

          const OPEN_AI_KEY='your-openai-api-key';

          const requestBody={

          model: 'gpt-4',

          prompt: `User: ${message}\n\nAI:` ,

          max_tokens: 100,

          };

          const response=await fetch(CHAT_GPT_API_URL, {

          method: 'POST',

          headers: {

          'Content-Type': 'application/json',

          'Authorization': `Bearer ${OPEN_AI_KEY}`,

          },

          body: JSON.stringify(requestBody),

          });

          if (!response.ok) {

          throw new Error(`Failed to get response from ChatGPT API: ${response.status}`);

          }

          const data=await response.json();

          return data.choices[0].text.trim().replace(/^AI:/, '');

          }

          ```

          ### **四、實(shí)現(xiàn)消息的實(shí)時(shí)顯示與發(fā)送**

          #### **1. 顯示消息與回復(fù)**

          ```javascript

          function displayMessages(messages) {

          const messageList=document.getElementById('message-list');

          // 渲染消息列表

          // ...

          }

          function displayReply(reply) {

          const messageList=document.getElementById('message-list');

          // 創(chuàng)建回復(fù)消息DOM并添加到列表中

          // ...

          }

          // 監(jiān)聽(tīng)發(fā)送按鈕點(diǎn)擊事件

          document.getElementById('send-button').addEventListener('click', ()=> {

          const inputField=document.getElementById('message-input');

          const userInput=inputField.value;


          // 模擬發(fā)送用戶消息并獲取ChatGPT回復(fù)

          simulateSendMessage(userInput);

          // 清空輸入框

          inputField.value='';

          });

          ```

          ### **五、完整流程實(shí)現(xiàn)**

          1. 初始化頁(yè)面加載時(shí),模擬拉取歷史消息并顯示。

          2. 用戶在輸入框中輸入消息后點(diǎn)擊“發(fā)送”按鈕,觸發(fā)模擬發(fā)送事件。

          3. 發(fā)送事件中調(diào)用ChatGPT API獲取回復(fù)內(nèi)容。

          4. 將ChatGPT回復(fù)內(nèi)容渲染到聊天記錄區(qū)域。

          ### **結(jié)語(yǔ):**

          雖然本文中介紹的方法無(wú)法直接應(yīng)用于微信平臺(tái),但通過(guò)模擬流程展示了如何利用AJAX與ChatGPT API結(jié)合實(shí)現(xiàn)自動(dòng)回復(fù)的功能。在實(shí)際項(xiàng)目中,可以嘗試將此方案與微信小程序、企業(yè)微信或其他可定制化的通訊平臺(tái)相結(jié)合,創(chuàng)造出更加智能化的交互體驗(yàn)。同時(shí),了解這一過(guò)程有助于我們理解和拓展其他具備類似機(jī)制的平臺(tái)或系統(tǒng),讓ChatGPT等強(qiáng)大AI工具更好地服務(wù)于我們的日常生活與工作。盡管受限于現(xiàn)實(shí)條件,但這仍不失為一場(chǎng)富有啟發(fā)性的技術(shù)探索之旅。

          天我們學(xué)習(xí)的內(nèi)容有:過(guò)渡,動(dòng)畫(huà),轉(zhuǎn)換,伸縮盒子。

          可以說(shuō)今天學(xué)習(xí)的內(nèi)容都是重量級(jí)的大佬,學(xué)好了,使用css3做出酷炫的效果 So Easy!~~

          1.過(guò)渡

          在css3中,有一個(gè)屬性可以設(shè)置過(guò)渡效果。

          它就是transition,所謂的過(guò)渡效果,指的就是以動(dòng)畫(huà)的形式慢慢演化樣式屬性變化的過(guò)程。

          A.案例:通過(guò)transition設(shè)置焦點(diǎn)過(guò)渡效果

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>div{width: 200px;height: 200px;margin:200px;background: url(girl.jpg);border-radius:50%;transition:all 1s linear 0.3s;cursor: pointer;}div:hover{box-shadow: 0px 0px 20px blue;}</style></head><body><div></div></body></html>

          注意頁(yè)面中的代碼:

          第一,我們給div添加了一個(gè)hover偽類樣式,當(dāng)我們鼠標(biāo)懸停在div上方的時(shí)候,會(huì)給div盒子添加一個(gè)藍(lán)色的盒子陰影。

          第二,我們給div盒子添加了一個(gè)transition樣式,設(shè)置的值為:all 1s linear 0.3s;

          這四個(gè)數(shù)據(jù)分別對(duì)應(yīng)

          transition-property(需要過(guò)渡的屬性):如果設(shè)置為all表示所有樣式屬性都需要過(guò)渡。

          transition-duration(過(guò)渡的時(shí)間):以秒作為單位,設(shè)置過(guò)渡的時(shí)間

          transition-timing-function(過(guò)渡的方式):常用的有l(wèi)inear(勻速),ease(先慢后快),ease-in,ease-out,ease-in-out等

          transition-delay(延遲的時(shí)間):以秒作為單位進(jìn)行延遲,延遲之后開(kāi)始進(jìn)行過(guò)渡效果。

          所以,我們通過(guò)transition這個(gè)復(fù)合屬性設(shè)置的過(guò)渡效果為:

          all:需要過(guò)渡所有的屬性

          1s:過(guò)渡的時(shí)間為1秒

          linear:勻速過(guò)渡

          0.3s:在延遲0.3秒之后開(kāi)始過(guò)渡動(dòng)畫(huà)。

          如果大家理解了上面的描述,那么也就不難理解咱們鼠標(biāo)放到div上之后,為啥會(huì)慢慢出現(xiàn)藍(lán)色的光暈了,就是因?yàn)樵蹅兲砑恿诉^(guò)渡,所以,慢慢的就會(huì)給盒子添加陰影效果。

          2.動(dòng)畫(huà):

          在學(xué)習(xí)完了過(guò)渡之后,發(fā)現(xiàn)咱們可以使用transition去以動(dòng)畫(huà)的形式展示樣式的改變以及變化的過(guò)程,這可以幫助我們來(lái)實(shí)現(xiàn)一些過(guò)渡的動(dòng)畫(huà)。

          但是,有的時(shí)候,我們的需求會(huì)更加的復(fù)雜,要求會(huì)更加的多變,那么,transition可能就無(wú)法滿足我們的需要了,我們需要有更加炫酷,復(fù)雜的效果呈現(xiàn)。

          那么,動(dòng)畫(huà)animation就可以滿足我們的需要。

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>@keyframes moveAndChange{0%{left:0px;top:0px;}25%{left:200px;top:200px;background:green;border-radius: 0;}50%{left:400px;top:200px;background:blue;border-radius: 50%;}75%{left:400px;top:0px;background:#ccc;border-radius: 0;}100%{left:0px;top:0px;background:red;border-radius: 50%;}}div{margin:200px;width: 200px;height: 200px;position: absolute;background:red;border-radius:50%;animation: moveAndChange 5s linear 0.5s infinite normal;}</style></head><body><div></div></body></html>

          代碼效果如下:

          同樣,讓我們來(lái)關(guān)注編寫(xiě)的代碼:

          1.在樣式中,首先我們使用@keyframes 來(lái)定義了一個(gè)復(fù)雜的動(dòng)畫(huà),在css3中,新增了@keyframes可以來(lái)幫助我們添加動(dòng)畫(huà)。代碼如下:

          /*動(dòng)畫(huà)的名字叫做moveAndChange*/

          @keyframes moveAndChange{

          /*動(dòng)畫(huà)最初的時(shí)候,將left設(shè)置為0px,top設(shè)置為0px*/

          0%{

          left:0px;

          top:0px;

          }

          /*當(dāng)動(dòng)畫(huà)進(jìn)行到25%的時(shí)候,使用動(dòng)畫(huà)將left過(guò)渡到200px,top過(guò)渡到200px,

          背景顏色過(guò)渡為綠色,圓角過(guò)渡為0(無(wú)圓角)*/

          25%{

          left:200px;

          top:200px;

          background:green;

          border-radius: 0;

          }

          /*當(dāng)動(dòng)畫(huà)進(jìn)行到50%的時(shí)候,使用動(dòng)畫(huà)將left過(guò)渡到400px,top過(guò)渡到200px,

          背景顏色過(guò)渡為藍(lán)色,圓角過(guò)渡為50%(正圓)*/

          50%{

          left:400px;

          top:200px;

          background:blue;

          border-radius: 50%;

          }

          /*當(dāng)動(dòng)畫(huà)進(jìn)行到75%的時(shí)候,使用動(dòng)畫(huà)將left過(guò)渡到400px,top過(guò)渡到0,

          背景顏色過(guò)渡為灰色,圓角過(guò)渡為0(無(wú)圓角)*/

          75%{

          left:400px;

          top:0px;

          background:#ccc;

          border-radius: 0;

          }

          /*當(dāng)動(dòng)畫(huà)結(jié)束的時(shí)候,使用動(dòng)畫(huà)將left過(guò)渡到0x,top過(guò)渡到0px,

          背景顏色過(guò)渡為紅色,圓角過(guò)渡為50%(正圓)*/

          100%{

          left:0px;

          top:0px;

          background:red;

          border-radius: 50%;

          }

          }

          這是一個(gè)比較復(fù)雜的動(dòng)畫(huà)效果,可以發(fā)現(xiàn),它通過(guò)百分比的形式將一個(gè)完整的動(dòng)畫(huà)拆分成了5個(gè)部分,每個(gè)部分都有不同的樣式效果,而當(dāng)我們采用該動(dòng)畫(huà)的元素就會(huì)按照設(shè)置的順序和樣式效果進(jìn)行動(dòng)畫(huà)的過(guò)渡和展示。

          2.上面我們只是通過(guò)@keyframes創(chuàng)建了一個(gè)動(dòng)畫(huà),我們還需要通過(guò)特定的語(yǔ)法來(lái)使用這個(gè)動(dòng)畫(huà)。

          就是下面這句代碼了:

          animation: moveAndChange 5s linear 0.5s infinite normal;

          它是一個(gè)復(fù)合屬性,設(shè)置了6個(gè)值,分別對(duì)應(yīng):

          animation-name(設(shè)置動(dòng)畫(huà)的名稱):用來(lái)設(shè)置動(dòng)畫(huà)的名字,我們這里寫(xiě)的是moveAndChange ,也就是說(shuō)我們就是要使用我們剛剛創(chuàng)建的動(dòng)畫(huà)。

          animation-duration(設(shè)置整個(gè)動(dòng)畫(huà)的時(shí)間):以秒作為單位,我們這里寫(xiě)的是5s,表示整個(gè)動(dòng)畫(huà)的時(shí)間為5秒

          animation-timing-function(設(shè)置播放動(dòng)畫(huà)的方式):播放動(dòng)畫(huà)的方式,常用的有l(wèi)inear(勻速),ease(先慢后快),ease-in,ease-out,ease-in-out等,我們使用的是linear勻速播放動(dòng)畫(huà)。

          animation-delay(設(shè)置動(dòng)畫(huà)的延遲):以秒作為單位,我們寫(xiě)的是0.5s,表示延遲0.5秒之后開(kāi)始播放動(dòng)畫(huà)。

          animation-iteration-count(設(shè)置動(dòng)畫(huà)播放的次數(shù)):播放動(dòng)畫(huà)的次數(shù),我們這里寫(xiě)的是infinite ,表示動(dòng)畫(huà)將會(huì)被播放無(wú)限次,如果寫(xiě)數(shù)字,那么就會(huì)播放數(shù)字對(duì)應(yīng)的次數(shù)。

          animation-direction(設(shè)置是否反向播放動(dòng)畫(huà)):我們寫(xiě)的是normal,表示正常播放動(dòng)畫(huà),如果寫(xiě)的是

          alternate則表示要反向播放動(dòng)畫(huà),大家也可以自己試一試這個(gè)效果。

          最終,我們通過(guò)@keyframes創(chuàng)建動(dòng)畫(huà),通過(guò)animation設(shè)置動(dòng)畫(huà),成功完成了這個(gè)復(fù)雜的動(dòng)畫(huà)效果。

          3.轉(zhuǎn)換

          在css3中,我們通過(guò)transform屬性可以設(shè)置元素的轉(zhuǎn)換效果,具體的效果如下:

          A.平移

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>body{background:pink;}div{width: 200px;height: 200px;position: absolute;background: green;left:0px;top:0px;transform: translate(300px,300px);}</style></head><body><div></div></body></html>

          代碼效果如下:

          如上圖所示,本來(lái)div盒子的位置是left:0,top:0;

          但是我們通過(guò)transform: translate(300px,300px);將盒子進(jìn)行了偏移,所以,盒子的位置發(fā)生了改變。

          B.旋轉(zhuǎn)

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>body {background: pink;}div {width: 200px;height: 200px;margin: 200px;position: absolute;background: green;left: 0px;top: 0px;transform: rotate(45deg);}</style></head><body><div></div></body></html>

          代碼效果如下:

          如上圖所示,本來(lái)div盒子應(yīng)該是四四方方的。

          但是,經(jīng)過(guò)我們的代碼transform: rotate(45deg); //deg為單位,表示度數(shù)。

          進(jìn)行了45度的旋轉(zhuǎn)之后,呈現(xiàn)出來(lái)的就是一個(gè)菱形的盒子了,旋轉(zhuǎn)的正方向?yàn)轫槙r(shí)針,負(fù)方向?yàn)槟鏁r(shí)針。

          C.縮放

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>body {background: pink;}div {width: 200px;height: 200px;margin: 200px;position: absolute;background: green;left: 0px;top: 0px;transform: scale(0.5,0.25);}</style></head><body><div></div></body></html>

          代碼效果如下:

          如上圖所示,本來(lái)盒子的寬高為200*200,而我們通過(guò)transform: scale(0.5,0.25);進(jìn)行的縮放

          scale的第一個(gè)參數(shù)為0.5,表示橫向縮小為0.5倍

          scale的第二個(gè)參數(shù)為0.25,表示縱向縮小為0.25倍。

          scale的參數(shù)如果為1,則表示不進(jìn)行任何縮放,小于1就是做縮小,而大于1表示做放大。

          小結(jié):transform轉(zhuǎn)換中其實(shí)還包含了skew(傾斜),matrix(矩陣轉(zhuǎn)換),相對(duì)來(lái)說(shuō)用到的不是特別多,所以在本文中我們便不再做介紹。

          4.flex布局

          Flex布局,可以簡(jiǎn)便、完整、響應(yīng)式地實(shí)現(xiàn)各種頁(yè)面布局。

          Flex是Flexible Box的縮寫(xiě),翻譯成中文就是“彈性盒子”,用來(lái)為盒裝模型提供最大的靈活性。任何一個(gè)容器都可以指定為Flex布局。

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>div{box-sizing: border-box;}.parent {width: 600px;height: 200px;margin: 100px;position: absolute;background: green;left: 0px;top: 0px;display: flex;justify-content: flex-start}.parent div{width: 20%;border:1px solid #ccc;background:pink;}</style></head><body><div><div>1</div><div>2</div><div>3</div><div>4</div></div></body></html>

          代碼效果如下:

          如圖所示,咱們通過(guò)display:flex將.parent元素設(shè)置為了flex盒子,那么子元素將會(huì)按照justify-content設(shè)置的方式進(jìn)行元素的排列,目前看來(lái),和我們沒(méi)有設(shè)置flex盒子的效果是一致的。

          接下來(lái)我們更改一下,將justify-content設(shè)置為flex-end,效果如下圖所示:

          所以我們就應(yīng)該發(fā)現(xiàn),flex-start是讓所有的子元素從父元素的左側(cè)開(kāi)始排列

          而flex-end是讓所有的子元素從元素的右側(cè)開(kāi)始排列。

          我們?cè)賮?lái)更改一下,將justify-content設(shè)置為center,效果如下圖所示:

          更厲害了,子元素在父盒子的中央位置排列顯示了。

          然后,我們?cè)賹ustify-content設(shè)置為space-around,效果如下圖所示:

          它是平均分配的形式為每一個(gè)子元素設(shè)置了間距,但是看起來(lái)有點(diǎn)變扭。

          所以我們推薦將justify-content設(shè)置為space-between,效果如下圖:

          我們還可以通過(guò)flex-wrap來(lái)設(shè)置子元素是否換行顯示,以及flex-direction設(shè)置子元素排列的順序。

          這兩個(gè)屬性可以設(shè)置的值如下:

          flex-wrap: nowrap;//不換行,會(huì)自動(dòng)收縮

          flex-wrap: warp;//換行,會(huì)自動(dòng)收縮

          flex-wrap: warp-reverse;//反轉(zhuǎn),從默認(rèn)的從上到下排列反轉(zhuǎn)為從下到上。

          flex-direction:row; //從左至右一行一行進(jìn)行子元素的排列

          flex-direction:column; //從上到下一列一列進(jìn)行子元素的排列

          flex-direction:row-reverse; //從右至左一行一行進(jìn)行子元素的排列

          flex-direction:column-reverse; //從下到上一列一列進(jìn)行子元素的排列

          案例代碼如下:

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>div{box-sizing: border-box;}.parent {width: 600px;height: 200px;margin: 100px;position: absolute;background: green;left: 0px;top: 0px;display: flex;justify-content: space-between;flex-wrap: nowrap;flex-direction: row-reverse;}.parent div{width: 20%;border:1px solid #ccc;background:pink;}</style></head><body><div><div>1</div><div>2</div><div>3</div><div>4</div><div>5</div><div>6</div></div></body></html>

          我們?cè)O(shè)置了flex-wrap: nowrap;(不換行,壓縮所有的子元素在一行中顯示),以及flex-direction: row-reverse;(反向排列)

          代碼效果如下:

          如果設(shè)置為flex-wrap: warp(換行顯示無(wú)法在一行顯示的子元素),則效果如下:

          如果將flex-direction: column;,則會(huì)縱向排列元素,效果如下圖:

          除了上面的這些給伸縮盒子父元素設(shè)置的樣式之外,我們還可以可以伸縮盒子的子元素設(shè)置flex屬性,用來(lái)設(shè)置平均分配整個(gè)父盒子的空間。

          代碼如下:

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>div{box-sizing: border-box;}.parent {width: 600px;height: 200px;margin: 100px;position: absolute;background: green;left: 0px;top: 0px;display: flex;justify-content: space-between;}.parent div{flex:1;width: 20%;border:1px solid #ccc;background:pink;}</style></head><body><div><div>1</div><div>2</div><div>3</div><div>4</div></div></body></html>

          效果如下:

          如上圖所示,每個(gè)盒子平均分配了父盒子的空間,原本寬度為20%,現(xiàn)在被拉伸了。

          除此之外,咱們還可以使用flex屬性進(jìn)行進(jìn)一步的設(shè)置,代碼如下:

          <!DOCTYPE html><html><head><meta charset="UTF-8"><title>Document</title><style>div{box-sizing: border-box;}.parent {width: 600px;height: 200px;margin: 100px;position: absolute;background: green;left: 0px;top: 0px;display: flex;justify-content: space-between;}.parent div:nth-of-type(1){flex:1;border:1px solid #ccc;background:red;}.parent div:nth-of-type(2){flex:2;border:1px solid #ccc;background:green;}.parent div:nth-of-type(3){flex:2;border:1px solid #ccc;background:blue;}.parent div:nth-of-type(4){flex:1;border:1px solid #ccc;background:pink;}</style></head><body><div><div>1</div><div>2</div><div>3</div><div>4</div></div></body></html>

          效果如下圖:

          我們分別給四個(gè)子盒子設(shè)置了flex:1 , flex:2, flex:2 ,flex:1.

          這是什么意思呢?

          四個(gè)flex加起來(lái)一共是6.那么第一個(gè)盒子就占據(jù)整個(gè)父盒子的1/6寬度。

          同理,另外三個(gè)盒子分別占據(jù)2/6,2/6,1/6的寬度,所以就形成了我們現(xiàn)在看到的效果。

          原文來(lái)源于:黑馬程序員社區(qū)


          學(xué)習(xí)資源:

          想學(xué)習(xí)css,可以關(guān)注:黑馬程序員頭條號(hào),后臺(tái)回復(fù):css


          主站蜘蛛池模板: 亚洲天堂一区二区三区四区| 国产精品av一区二区三区不卡蜜 | 国产伦精品一区二区三区| 亚洲午夜在线一区| 中文字幕一区二区人妻| 精品一区二区三区免费毛片| 91午夜精品亚洲一区二区三区| 国产成人无码一区二区在线观看| 精品国产一区二区二三区在线观看| 3d动漫精品啪啪一区二区中文 | 精品一区二区三区在线观看l| 亚洲日韩精品一区二区三区| 狠狠爱无码一区二区三区| 亚洲AV无码国产精品永久一区| 亚洲欧洲∨国产一区二区三区| 丰满岳妇乱一区二区三区| 免费看无码自慰一区二区| 国产一区二区三区乱码网站| 人妻久久久一区二区三区| 久久国产精品最新一区| 亚洲一区AV无码少妇电影☆| 无人码一区二区三区视频| 国产免费一区二区三区免费视频| 国产福利一区视频| 日韩成人一区ftp在线播放| 国产成人精品一区二三区熟女 | 任你躁国产自任一区二区三区| 杨幂AV污网站在线一区二区| 一区二区三区高清视频在线观看| 国产乱子伦一区二区三区| 国产成人免费一区二区三区| 国产一区在线观看免费| 日韩av片无码一区二区三区不卡 | 国产在线观看精品一区二区三区91| 成人毛片一区二区| 日本一区二区三区在线视频观看免费| 天堂一区二区三区精品| 精品国产精品久久一区免费式| 色一乱一伦一区一直爽| 精品少妇一区二区三区在线| 国产在线精品一区二区中文|