整合營銷服務商

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

          免費咨詢熱線:

          css基礎必備-元素背景,前端小白一看就會

          css基礎必備-元素背景,前端小白一看就會

          素背景background

          使用CSS設置各種HTML元素的背景,元素的背景有以下屬性:

          • background-color - 屬性用于設置元素的背景色,值可以是十六進制顏色代碼,RGB值或顏色名稱。
          • background-image - 屬性用于設置元素的背景圖像,使用url()屬性指定圖像的路徑。
          • background-repeat - 屬性用于控制背景圖像是否重復,值有repeat,repeat-x,repeat-y,no-repeat。
          • background-position - 屬性用于控制背景圖像的位置,值有right,left,top,bottom,center或者數值和百分比。
          • background-attachment - 屬性用于控制背景圖像是否可以滾動,值有scroll,fixed。
          • background - 屬性用作其他背景屬性的簡寫。

          設置背景顏色:

          設置背景圖像:

          設置背景圖像沿x軸重復:

          設置圖像不重復,位于右上角:

          設置圖像不重復,不隨內容滾動:

          如果需要指定的圖像屬性太多時,可采用簡寫形式,如:

          使用背景簡寫時,屬性的指定順序如下所示:

          在現代網頁設計中,個人主頁是一個展示個人信息、技能、事件等的重要載體。為了吸引訪客的注意力并提供良好的用戶體驗,設計師通常會運用各種技巧和效果來增加頁面的吸引力。本文將介紹如何使用CSS創建一個驚嘆的個人主頁介紹卡片,展示獨特魅力;

          PREVIEW

          創建HTML結構

          首先,需要定義基本的HTML結構來容納個人主頁介紹卡片;

          這里外層使用一個div包裹,里面使用三個<div>元素作為包裹容器布局,并在其中添加所需的圖像、內容和按鈕等:

          <div class="card">
            <div class="box">
              <div class="img_box">
                <video 
                  src="./assets/video.mp4"
                  muted
                  autoplay
                  loop
                />
              </div>
            </div>
          
            <div class="box">
              <div class="content">
                <h2>
                  Alexa
                  <br>
                  <span>
                    Professional Artist
                  </span>
                </h2>
          
                <ul>
                  <li>
                    Posts
                    <span>22</span>
                  </li>
                  <li>
                    Followers
                    <span>999+</span>
                  </li>
                  <li>
                    Following
                    <span>7</span>
                  </li>
                </ul>
          
                <button>Follow</button>
              </div>
            </div>
          
            <div class="circle">
              <div class="img_box">
                <img src="./assets/user.jpg" alt="">
              </div>
            </div>
          </div>


          外層是card容器,視頻和文本內容區域是上下布局的,分別使用box容器包裹,最后是circle容器包裹頭像在定位在中間左邊超出;

          注:

          video設置屬性:靜音(muted)可實現自動播放(autoplay),接著設置循環播放(loop);

          img>和video>的父容器是一個類名img_box;

          添加元素樣式

          接下來,我們將使用CSS來為個人主頁介紹卡片添加樣式。以下是一些關鍵的樣式屬性和技巧,可以使卡片看起來更加漂亮和吸引人;

          Base CSS

          • 使用通配符選擇器*來為頁面中的所有元素設置相同的樣式,清除默認樣式,使用怪異盒子模型;
          • 選擇文檔的根元素(HTML中的 <html>)定義顏色CSS變量;
          • body使用flex把card容器布局在頁面水平、垂直居中;
          • card使用flex把三個子容器實現垂直排列并兩端對齊;
          * {
            margin: 0;
            padding: 0;
            box-sizing: border-box;
          }
          
          :root {
            --clr: #083d41
          }
          
          body {
            display: flex;
            justify-content: center;
            align-items: center;
            min-height: 100vh;
            background-color: var(--clr);
          }
          
          .card {
            background-color: var(--clr);
            position: relative;
          
            width: 320px;
            height: 430px;
            display: flex;
            flex-direction: column;
            justify-content: space-between;
          }
          
          /* 先把容器基本樣式調整一下 */
          .card .box {
            background-color: tomato;
            position: relative;
            
            width: 110%;
            height: 200px;
            /* 文本內容區域圓角 */
            border-radius: 20px;
          }
          
          /* 頭像容器則使用定位布局 */
          .card .circle {
            width: 180px;
            height: 180px;
            position: absolute;
            left: -70px;
            top: 50%;
            transform: translateY(-50%);
            border-radius: 50%;
            border: 10px solid var(--clr);
          }
          
          /* 調整img和video共有的父容器樣式 */
          .card .box .img_box,
          .card .circle .img_box {
            position: absolute;
            inset: 0;
            overflow: hidden;
            /* img的圓角 */
            border-radius: 50%; 
          }
          .card .box .img_box {
            /* video的圓角 */
            border-radius: 15px;
          }
          
          /* 調整圖片和視頻的樣式 */
          .card .box .img_box video,
          .card .circle .img_box img {
            position: absolute;
            width: 100%;
            height: 100%;
            object-fit: cover;
          }

          視頻區域CSS

          調整card下的第一個box容器樣式,也就是包裹視頻的容器:

          • 包圍圖片的邊框部分,優化成圓角使其看上去不是那么突兀;
          • 使用::before,::after創建兩個偽元素用于需要優化的兩角;
          • 設置偽元素的左下角邊框圓角程度與box保持一致,當然也可以自行調整;
          • 最后給偽元素添加陰影效果覆蓋住box的角,然后陰影顏色設置為與背景色一致,就能實現了: 屬性可設置的值包括陰影的 X 軸偏移量、Y 軸偏移量、模糊半徑、擴散半徑和顏色; 比如本次設置的值對應:X軸偏移-6px Y軸偏移6px 顏色;


          .card .box:nth-child(1)::before {
            content: "";
            width: 20px;
            height: 20px;
            background-color: transparent;
            
            position: absolute;
            z-index: 10;
            top: 106px;
            left: -1px;
            border-bottom-left-radius: 20px;
            box-shadow: -6px 6px var(--clr);
          }
          
          /* 樣式同before類似,注意定位樣式 */
          .card .box:nth-child(1)::after {
            content: "";
            width: 20px;
            height: 20px;
            background-color: transparent;
            
            position: absolute;
            z-index: 10;
            bottom: -1px;
            left: 105px;
            border-bottom-left-radius: 20px;
            box-shadow: -6px 6px var(--clr);
          }

          目前添加樣式效果圖,可以在調試階段更改明顯色彩用于調整距離、位置等;

          文本內容CSS

          調整card下的第二個box容器樣式,也就是包含文字信息的容器:

          • 包圍圖片的邊框部分,優化成圓角樣式同上面類似,部分需要調整的看代碼;
          • 注意這里設置的是偽元素的左上角圓角程度,然后添加陰影顏色實現;
          • 此外,還對卡片內部的標題、段落和列表應用了特定的樣式,以使其在視覺上更加吸引人;


          .card .box:nth-child(2) {
            background-color: #fff;
          
            width: 100%;
            height: 220px;
          }
          
          .card .box:nth-child(2)::before {
            content: "";
            width: 20px;
            height: 20px;
            background-color: transparent;
          
            position: absolute;
            z-index: 10;
            bottom: 106px;
            left: -1px;
            border-top-left-radius: 20px;
            box-shadow: -6px -6px var(--clr);
          }
          .card .box:nth-child(2)::after {
            content: "";
            width: 20px;
            height: 20px;
            background-color: transparent;
          
            position: absolute;
            z-index: 10;
            top: -1px;
            left: 109px;
            border-top-left-radius: 20px;
            box-shadow: -6px -6px var(--clr);
          }
          
          .card .box .content {
            position: absolute;
            inset: 0;
            padding: 30px 10px 20px;
            display: flex;
            flex-direction: column;
            align-items: center;
            gap: 20px;
          }
          
          /* 姓名和Title樣式 */
          .card .box .content h2 {
            width: 100%;
            padding-left: 120px;
            text-transform: uppercase;
            letter-spacing: 0.1em;
            line-height: 1.1em;
            font-size: 1.15em;
            font-weight: 600;
            color: #333;
          }
          .card .box .content h2 span {
            letter-spacing: 0.05em;
            font-size: 0.75em;
            font-weight: 400;
            color: tomato;
            text-transform: initial;
          }
          
          /* 列表樣式 */
          .card .box .content ul {
            position: relative;
            top: 15px;
          
            width: 100%;
            padding: 0 10px;
            display: grid;
            grid-template-columns: repeat(3, 1fr);
          }
          .card .box .content ul li {
            list-style: none;
            display: flex;
            flex-direction: column;
            align-items: center;
            padding: 0 10px;
            font-size: 0.85em;
            font-weight: 500;
            color: #999;
          }
          .card .box .content ul li:not(:last-child)
          {
           border-right: 1px solid #ccc; 
          }
          .card .box .content ul li span{
            font-size: 1.65em;
            color: #333;
          }
          
          /* 按鈕樣式 */
          .card .box .content button {
            position: relative;
            top: 25px;
            padding: 8px 30px;
            border: none;
            outline: none;
            background-color: #03a9f4;
            border-radius: 30px;
            color: #fff;
            font-size: 1em;
            letter-spacing: 0.2em;
            text-transform: uppercase;
            font-weight: 500;
            cursor: pointer;
            border: 5px solid var(--clr);
            box-shadow: 0 0 0 10px #fff;
            transition: .5s;
          }
          .card .box .content button:hover {
            letter-spacing: 0.5em;
            background-color: #ff3d7f;
          }

          進一步優化

          由于按鈕的圓角與文本內容卡片的交界處看上去顯得有些過于突兀了; 所以現在把它們的交界處優化成弧形,樣式類似box的偽元素,這里也給按鈕創建兩個偽元素,用于優化兩邊的交界處:

          .card .box .content button::before {
            content: "";
            width: 20px;
            height: 20px;
            background-color: transparent;
            position: absolute;
            top: 23px;
            left: -29px;
            border-top-right-radius: 20px;
            box-shadow: 5px -7px #fff;
          }
          
          .card .box .content button::after {
            content: "";
            width: 20px;
            height: 20px;
            background-color: transparent;
            position: absolute;
            top: 23px;
            right: -29px;
            border-top-left-radius: 20px;
            box-shadow: -5px -7px #fff;
          }

          最后

          除了基本樣式之外,還進一步優化個人主頁介紹卡片的細節。一些可選的技巧包括:

          • 添加過渡效果:通過為button的容器元素添加過渡效果,使卡片在鼠標懸停時平滑地改變樣式(背景色、字符間距);
          • 使用偽元素添加box-shadow技巧覆蓋比較突兀的地方,使各個元素之間的交界處有過渡感,可以增加視覺上的吸引力;
          • 通過給元素設置與body背景相同的顏色,可以使其在頁面中更加突出和立體;

          通過運用CSS的各種樣式屬性和技巧,我們可以輕松地創建漂亮的個人主頁介紹卡片。這些卡片不僅能夠有效地展示個人信息和技能,還能夠吸引訪客的注意力并提供良好的用戶體驗。記得嘗試不同的樣式和效果來定制你自己獨特的個人主頁卡片!


          CSS創作個人主頁介紹卡片,展示獨特魅力
          原文鏈接:https://juejin.cn/post/7260709771870060603

          們在設計網站的時候,有時候為了體現出別具一格的風格,往往會設計出一些特殊的風格。這里就舉一個比較常見的例子 —— 傾斜的背景顏色。

          在CSS中,沒有某一個屬性能夠直接實現傾斜的背景顏色,而是需要通過一些“手段”來實現。最常想到的方案就是在內容的底部放置一個div,給這個div設定一個背景顏色,然后讓這個div傾斜一個角度,從而實現傾斜的背景顏色。比如像下圖所示的案例:

          那么下面就來用一個基本的實例來解釋并實現傾斜背景的效果:

          首先要說明一下,頁面導航條是固定在頁面頂部的,導航條不會隨著頁面的滾動而移動。這個效果的實現非常簡單,就是利用了 position 這個屬性的 fixed 值來實現的。

          我下面的代碼實例中,HTML用來給頁面上添加元素,而在 CSS 部分需要精細化的設定屬性的參數值,而且需要若干個HTML標簽的CSS來配合,從而實現傾斜背景的效果。所以我在CSS代碼部分用了比較多的注釋來描述這些屬性的效果和目的,大家在閱讀的時候可以將 CSS 結合著 HTML 一起來理解。或者可以直接拿我的這個實例作為一個模板來使用。

          HTML

          <!DOCTYPE html>
          <html lang="en">
          
          <head>
              <meta charset="UTF-8">
              <meta http-equiv="X-UA-Compatible" content="IE=edge">
              <meta name="viewport" content="width=device-width, initial-scale=1.0">
              <title>Document</title>
              <link rel="stylesheet" href="index.css">
          </head>
          
          <body>
          
              <div class="navbar-bg">
                  <ul class="navbar">
                      <li class="item">
                          <a href="https://www.baidu.com">Home</a>
                      </li>
                      <li class="item">
                          <a href="https://www.baidu.com">Home</a>
                      </li>
                      <li class="item">
                          <a href="https://www.baidu.com">Home</a>
                      </li>
                      <li class="item">
                          <a href="https://www.baidu.com">Home</a>
                      </li>
                      <li class="item sign">
                          <a href="https://www.baidu.com">Sign</a>
                      </li>
                  </ul>
              </div>
          
              <div class="box-bg">
                  <div class="box">
                      <div class="item">
                          <h1>Title</h1>
                          <p>This is the description for title.</p>
                          <button>click me</button>
                      </div>
                      <div class="item">
                          <h1>Title</h1>
                          <p>This is the description for title.</p>
                          <button>click me</button>
                      </div>
                      <div class="item">
                          <h1>Title</h1>
                          <p>This is the description for title.</p>
                          <button>click me</button>
                      </div>
                  </div>
              </div>
          
              <div class="content">
                  <h1>This is content</h1>
              </div>
          
              <div class="footer">
                  <div class="footer-bg">
                      <ul class="list">
                          <li>
                              <a href="https://greatfrank.cn">Link</a>
                          </li>
                          <li>
                              <a href="https://greatfrank.cn">Link</a>
                          </li>
                          <li>
                              <a href="https://greatfrank.cn">Link</a>
                          </li>
                          <li>
                              <a href="https://greatfrank.cn">Link</a>
                          </li>
                          <li>
                              <a href="https://greatfrank.cn">Link</a>
                          </li>
                          <li>
                              <a href="https://greatfrank.cn">Link</a>
                          </li>
                      </ul>
                  </div>
              </div>
          
          </body>
          
          </html>

          為了讓導航條和其他元素都能夠與頁面的兩邊留出距離,我在實際內容標簽的外圍又包裹了一層div,主要在這個包裹的div里設定左右內間距,從而實現兩邊留白的效果。這些外圍包裹的 div 的 class 名稱一般都會有一個后綴 "-bg"

          在實際內容的排列時,我采用了更加方便靈活的彈性布局,這樣會相對的減少HTML和CSS的代碼量。

          另外,如果想要實現傾斜的背景顏色,那么這些帶有 bg 后綴的 div 就是需要傾斜的標簽。傾斜這些 div 其實很簡單,只需要設定一個 transform: skew(0deg, -9deg) 這樣的CSS代碼即可,但是我們可以想象一下,原本是長方形的 div 按照 Y 軸逆時針旋轉了一個弧度(-9deg)后,它會變成一個平行四邊形,這個平行四邊形是左邊低右邊高。這樣就會露出它后面的白色的 body 的部分。所以這種玩法麻煩的地方就是如何通過多個 CSS 屬性的配合來遮住露出的白色的body部分。下面就來看一下這個HTML對應的 CSS 代碼部分。

          在大家閱讀 CSS 的代碼之前,我給出一個原理圖來解釋一下其中的原理:

          當外圍的 div 傾斜了之后,就需要把內容部分的div的上部的內間距增大,以此來遮住平行四邊形的左側露出的白色區域。這是頁面上部區域的原理。

          那么頁面底部也同樣需要實現這樣傾斜背景顏色的設計,這樣才能將風格一致,產生美感。原理還是這個原理圖所示的邏輯,不同的地方在于,底部最外圍的 div 不傾斜,而是需要兩個屬性,height 和 overflow-y,并且這個 div 不能帶有背景顏色。它們的作用是當它里面的內容超出這個 div 的區域時就不顯示,這樣就會讓上圖中藍色的平行西變形的左下角區域被紅色的框線裁剪掉,從而讓這個div 乖乖的呆在頁面的底部。而這個 div 里面一層的 div 需要讓它傾斜,而且還帶有一個背景顏色。這樣組合出來的效果就是一個看似是左右兩邊是豎線,下部是橫線,只有上部是斜線的帶有背景顏色的四邊形,這個四邊形里面是實際的頁面內容。

          最終的樣子在這篇 CSS 代碼的最后展示出來了。

          CSS


          主站蜘蛛池模板: 精品乱码一区二区三区四区| 久久无码一区二区三区少妇| 99精品国产一区二区三区不卡| 国产成人久久精品麻豆一区| 国产精品无码亚洲一区二区三区 | 亚洲性色精品一区二区在线 | 无码欧精品亚洲日韩一区夜夜嗨 | 伦精品一区二区三区视频| 亚洲一区综合在线播放| 日韩电影一区二区三区| 国产丝袜无码一区二区视频| 中文字幕av日韩精品一区二区| 精品一区二区三区中文字幕 | 亚洲字幕AV一区二区三区四区| 狠狠色成人一区二区三区| 国产三级一区二区三区| 亚洲欧美日韩中文字幕一区二区三区| 中文字幕日本一区| 精品综合一区二区三区| 国产成人午夜精品一区二区三区| 无码人妻精品一区二区三区久久| 精品国产AⅤ一区二区三区4区 | 久久99精品一区二区三区| aⅴ一区二区三区无卡无码| 国产成人精品一区二区三在线观看 | 亚洲字幕AV一区二区三区四区| 一区二区三区视频观看| 精品国产免费观看一区| 日韩人妻无码一区二区三区| 日本一区中文字幕日本一二三区视频| 丝袜人妻一区二区三区| 午夜视频一区二区| 亚洲一区免费在线观看| 国产成人无码AV一区二区| 天堂成人一区二区三区| 欧洲无码一区二区三区在线观看| 国产AⅤ精品一区二区三区久久 | 欧美亚洲精品一区二区| 国产成人一区二区三区视频免费 | 一区二区精品久久| 海角国精产品一区一区三区糖心 |