真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

CSS怎么實(shí)現(xiàn)側(cè)滑顯示留言面板的網(wǎng)頁(yè)組件功能

這篇文章給大家分享的是有關(guān)CSS怎么實(shí)現(xiàn)側(cè)滑顯示留言面板的網(wǎng)頁(yè)組件功能的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、微信小程序開(kāi)發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了三明免費(fèi)建站歡迎大家使用!

效果如下圖所示:

CSS怎么實(shí)現(xiàn)側(cè)滑顯示留言面板的網(wǎng)頁(yè)組件功能

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

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

這里用到了一個(gè) CSS 特性值得大家關(guān)注下:

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

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

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


FEEDBACK

  
    Full Name        
  
    Email        
  
    Comment        
  
    Send   

完成后的效果圖如下:

CSS怎么實(shí)現(xiàn)側(cè)滑顯示留言面板的網(wǎng)頁(yè)組件功能

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

現(xiàn)在我們開(kāi)始添加一些基礎(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);
}

h2 {
  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è)元素在案例中無(wú)需顯示,我們只是用其的偽類特性結(jié)合 label 控制留言面板的顯示與隱藏,因此我們需要將其移出可視區(qū)域,記住這里不能用隱藏屬性(display:none)。示例代碼如下:

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

2、接下來(lái),我們需要添加這些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%) 將其移出頁(yè)面顯示區(qū)域

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

/*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 語(yǔ)法需要關(guān)注下:hue-rotate,色調(diào)旋轉(zhuǎn)濾鏡,方便我們改變當(dāng)前的顏色。

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

我們通過(guò)點(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ī)則我們需要聊一下:

  • translate(50%, calc((var(--form-width) + 100%) * -1)); 這個(gè)樣式是不是有些復(fù)雜,其實(shí)也不難,就是多加了一個(gè)表單面板的寬度,由于旋轉(zhuǎn)后,y軸變成了水平軸,向左移動(dòng)相當(dāng)Y軸往上移動(dòng),因此是負(fù)值,需要乘-1。

  • 第二個(gè)選擇器,我們之所以加個(gè)選中后的 outline 輪廓屬性,主要是為了方便那些習(xí)慣鍵盤(pán)操作的用戶,當(dāng)其使用 Tab 鍵選擇 feedback label元素時(shí),然后再使用 Space 空格鍵就能很方便的打開(kāi)留言面板進(jìn)行切換。

  • 第三個(gè)選擇器,我們使用 transform: translate(0, -50%); 將 X 軸更改成0,恢復(fù)成最開(kāi)始的位置,這樣我們的留言面板內(nèi)容就能顯示出來(lái)。

五、處理響應(yīng)式問(wèn)題

最后,特別重點(diǎn)提示下我們做頁(yè)面要考慮頁(yè)面響應(yīng)式適配的問(wèn)題,這里我們需要針對(duì)手機(jī)設(shè)備做一些樣式的調(diào)整,比如更改表單面板的寬度由原來(lái)的 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));
  }
}

感謝各位的閱讀!關(guān)于“CSS怎么實(shí)現(xiàn)側(cè)滑顯示留言面板的網(wǎng)頁(yè)組件功能”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!


分享名稱:CSS怎么實(shí)現(xiàn)側(cè)滑顯示留言面板的網(wǎng)頁(yè)組件功能
本文地址:http://weahome.cn/article/isgjoi.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部