整合營銷服務商

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

          免費咨詢熱線:

          設置div高度等于動態寬度

          目中有時候會遇到這個問題:一行有3個div,希望這3個div平分屏幕寬度,并且高度等于寬度。

          第一個問題:平分屏幕寬度

          可以對div設置百分比寬度,而不是直接用px寬度,這里用到了響應式設計的思想,可以參考這篇文章:自適應網頁設計(Responsive Web Design)

          第二個問題:動態設置高度和寬度一致

          有兩種方法,一種是用js動態設置,一種是直接用CSS設置

          先看下html代碼

          <ul>

          <li class="container">

          <div class="dummy">

          </div>

          <div class="element">

          some text

          </div>

          </li>

          <li class="container">

          <div class="dummy">

          </div>

          <div class="element">

          some text

          </div>

          </li>

          <li class="container">

          <div class="dummy">

          </div>

          <div class="element">

          some text

          </div>

          </li>

          </ul>

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23

          公用的CSS

          ul,li{

          list-style: none;

          }

          * {

          margin: 0;

          padding: 0;

          outline: 0

          }

          body {

          margin: 0;

          padding: 0;

          -webkit-appearance: none;

          font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;

          font-size: 16px;

          }

          ul{

          margin:10px;

          }

          .container {

          display: inline-block;

          position: relative;

          width: 32%;

          text-align: center;

          }

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23
          • 24

          用js動態設置

          var cw = $('.dummy').width();

          $('.dummy').css({'height':cw+'px'});

          $(window).resize(function() {

          var cw = $('.dummy').width();

          $('.dummy').css({'height':cw+'px'});

          });

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6

          用CSS設置

          .dummy {

          padding-top: 100%; /* 1:1 aspect ratio */

          width: 100%;

          background: #333333;

          }

          • 1
          • 2
          • 3
          • 4
          • 5

          CSS設置padding-top的原理:Use CSS to Specify the Aspect Ratio of a Fluid Element

          /———————————————————

          然后嘗試對圖片設置高度等于動態寬度

          js方法很簡單,跟上面的方法基本相同

          <ul>

          <li class="container">

          <img src="images/test_1.jpg"/>

          <div class="element">

          some text

          </div>

          </li>

          <li class="container">

          <img src="images/test_2.jpg"/>

          <div class="element">

          some text

          </div>

          </li>

          <li class="container">

          <img src="images/test_3.jpg"/>

          <div class="element">

          some text

          </div>

          </li>

          </ul>

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20

          .container {

          display: inline-block;

          position: relative;

          width: 32%;

          text-align: center;

          }

          .container img{

          width: 100%;

          height:100%;

          }

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10

          var cw = $('.dummy').width();

          $('.dummy').css({'height':cw+'px'});

          $(window).resize(function() {

          var cw = $('.dummy').width();

          $('.dummy').css({'height':cw+'px'});

          });

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6

          CSS方法

          <ul>

          <li class="container">

          <div class="dummy">

          </div>

          <div class="element">

          some text

          </div>

          </li>

          <li class="container">

          <div class="dummy">

          </div>

          <div class="element">

          some text

          </div>

          </li>

          <li class="container">

          <div class="dummy">

          </div>

          <div class="element">

          some text

          </div>

          </li>

          </ul>

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13
          • 14
          • 15
          • 16
          • 17
          • 18
          • 19
          • 20
          • 21
          • 22
          • 23

          .container {

          display: inline-block;

          position: relative;

          width: 32%;

          text-align: center;

          }

          .dummy{

          padding-top: 100%; /* 1:1 aspect ratio */

          width: 100%;

          background:url(images/test_3.jpg) no-repeat;

          -webkit-background-size: 100%;

          background-size: 100%;

          }

          • 1
          • 2
          • 3
          • 4
          • 5
          • 6
          • 7
          • 8
          • 9
          • 10
          • 11
          • 12
          • 13

          通過設置background可以實現。

          div包含img的方法沒有試驗成功,以后繼續嘗試

          /————————————-

          還有一個問題,怎么設置div和img之間的padding,又能保證div寬度是屏幕寬度的三分之一?

          下是一個使用HTML和CSS實現綻放的煙花的示例代碼:

          ```html

          <!DOCTYPE html>

          <html>

          <head>

          <title>綻放的煙花</title>

          <style>

          .firework {

          position: relative;

          width: 100px;

          height: 100px;

          background-color: #ff0000;

          border-radius: 50%;

          animation: explode 1s ease-in-out infinite;

          }

          @keyframes explode {

          0% {

          transform: scale(1);

          opacity: 1;

          }

          50% {

          transform: scale(1.5);

          opacity: 0.5;

          }

          100% {

          transform: scale(1);

          opacity: 1;

          }

          }

          </style>

          </head>

          <body>

          <div class="firework"></div>

          </body>

          </html>

          ```

          這段代碼創建了一個`div`元素,并將其樣式設置為一個圓形的紅色煙花。使用CSS的動畫效果,通過`@keyframes`定義了一個名為`explode`的動畫,使煙花在1秒鐘內以縮放的方式產生綻放效果。動畫會無限循環播放,直到頁面關閉。

          你可以將上述代碼保存為一個HTML文件,并在瀏覽器中打開,就能看到綻放的煙花效果了。希望你喜歡!

          錐漸變類似于徑向漸變。兩者都是圓形的,并且使用元素的中心作為顏色的源點。徑向漸變的顏色從圓的中心中心輻射而圓錐漸變是圍繞一個中心點旋轉。

          它們被稱為“圓錐形”,因為它們從上面看起來像的圓錐形。比如可以使用圓錐漸變制作餅圖或色輪。

          語法如下:

          background-image: conic-gradient([from angle] [at position,] color degree, color degree, ...);

          參數說明:

          描述

          from angle

          可選。起始角度。默認值為 0deg

          at position

          可選。中心位置。默認居中。

          color degree, ..., color degree

          角漸變斷點。該值包含一個顏色值,后跟一個可選的停止位置( 0 到 360 之間的度數或 0% 到 100% 之間的百分比)。

          最基礎的圓錐漸變

          這是一個沒有設置任何屬性的,只聲明了2中顏色的漸變,如下示例:

          .gradient {
            background-image: conic-gradient(blue, red);
          } 

          設置漸變角度

          默認漸變的角度是0,正值時,會沿著順時針方向,負值相反方向,如下示例:

          .gradient {
            /* 一個旋轉 45 度的錐形漸變,從藍色漸變到紅色 */
            background-image: conic-gradient(from 45deg, blue, red);
          } 

          45度漸變

          如下圖是-45deg時,漸變按逆時針方向。

          -45度漸變

          設置漸變的中心點

          使用 at 語法,比如 at left ,at top left ,at 0 0(左上角)等設置中心點的位置,如下示例:

          /* 一個藍紫色框:從藍色漸變到紅色,但只有右下象限可見,因為錐形漸變的中心位于左上角 */
          conic-gradient(from 90deg at 0 0, blue, red);

          at 0px 0px

          此時,是否還是不太明白,我們可以繼續改變中心點的位置,比如設置中心點距離左邊50px 距離上邊50px,如下示例:

          .gradient {
            /* 錐形漸變的中心位于距離左上角各50px */
          background:conic-gradient(from 90deg at 50px 50px, blue, red);
          } 

          at 50px 50px

          我們繼續,當中心點設置為 at left 什么效果?

          background:conic-gradient(from 90deg at left, blue, red);

          at left

          是不是很有意思,你可以嘗試設置其它的值,看看中心點的位置是什么樣的。

          設置顏色的結束位置

          和徑向漸變一樣,你可以設置顏色的結束位置,不同的地方是圓錐漸變的只能使用角度 deg、梯度 grad、弧度 rad和圈 turn這幾個單位。

          如下示例:

          /*使用角度*/
          .gradient {
          background:conic-gradient(red 0deg, orange 90deg, yellow 180deg, green 270deg, blue 360deg);
          } 

          /*使用梯度grad*/
          .gradient {
          background:conic-gradient(red 40grad, 80grad, blue 360grad);
          } 

          /*使用弧度 rad*/
          .gradient {
          background:conic-gradient(red .8rad, yellow .6rad, blue 1.3rad);
          } 

          /*使用圈 turn*/
          .gradient {
          background:conic-gradient(#fff 0.09turn, #bbb 0.25turn, #666 0.6turn);
          } 

          關于各種單位的具體介紹可以參考這里:https://developer.mozilla.org/zh-CN/docs/Web/CSS/gradient/conic-gradient

          制作一個色輪

          使用圓錐漸變可以制作一個色輪,如下示例:

          html:

          <div class="gradient"></div>

          css:

          div{
            width:200px;
            height:200px;
            border-radius:200px;
          }
          .gradient {
             /* 色輪 */
            background: conic-gradient(
                hsl(360, 100%, 50%),
                hsl(315, 100%, 50%),
                hsl(270, 100%, 50%),
                hsl(225, 100%, 50%),
                hsl(180, 100%, 50%),
                hsl(135, 100%, 50%),
                hsl(90, 100%, 50%),
                hsl(45, 100%, 50%),
                hsl(0, 100%, 50%)
            );
          } 

          效果:

          色輪

          制作一個餅圖

          通過上面的色輪示例,在結合之前學習線性或徑向漸變時改變顏色結束位置的知識,是否對如何制作一個餅圖有了思路。如下示例:

          html:

          <div class="gradient"></div>

          css:

          div{
            width:200px;
            height:200px;
            border-radius:200px;
          }
          .gradient {
          background:conic-gradient(
            #ff00ff,
            #ffff00 0deg 60deg,
            #00ffff 60deg 120deg,
            #66ff66 120deg 180deg,
            #000066 180deg 240deg, 
            #ff0033 240deg 300deg, 
            #850244 300deg);
          } 

          效果:

          餅圖

          最后

          到此已經介紹了圓錐漸變的使用方法,使用圓錐漸變可以制作很多特效,比如餅圖,非常實用,本篇作為入門介紹,難免有誤,不夠詳細,所以關于其詳細的內容原理可以參考下面的參考資料:

          https://developer.mozilla.org/zh-CN/docs/Web/CSS/CSS_Images/Using_CSS_gradients

          https://css-tricks.com/a-complete-guide-to-css-gradients/

          下面將會繼續介紹其它漸變的使用方法,你可以關注我,繼續學習其它漸變知識。

          其它相關文章:

          • css 線性漸變
          • css 徑向漸變
          • css 圓錐漸變
          • css 重復漸變

          主站蜘蛛池模板: 亚洲熟妇av一区二区三区漫画| 精品国产亚洲一区二区三区在线观看 | 精彩视频一区二区| 女女同性一区二区三区四区| 无码人妻一区二区三区免费| 波多野结衣中文一区| 精品久久国产一区二区三区香蕉 | 精品国产区一区二区三区在线观看 | 国模无码视频一区二区三区| 日本免费一区二区三区最新| 区三区激情福利综合中文字幕在线一区亚洲视频1 | 国模大尺度视频一区二区| 天堂资源中文最新版在线一区 | 文中字幕一区二区三区视频播放| 日韩一区二区在线播放| 国产成人综合亚洲一区| 中文字幕在线视频一区| 亚洲美女视频一区二区三区| 国产AV天堂无码一区二区三区 | 国产免费一区二区三区| 深夜福利一区二区| 亚洲国产国产综合一区首页| 日韩aⅴ人妻无码一区二区| 国产成人精品一区二区三区| 国产精品日本一区二区不卡视频| 中文乱码字幕高清一区二区| 高清一区高清二区视频| 无码人妻品一区二区三区精99 | 视频一区二区精品的福利| 日韩精品区一区二区三VR| 国产一区二区视频免费| 久久久久人妻一区二区三区vr| 欧美av色香蕉一区二区蜜桃小说| 激情综合丝袜美女一区二区| 久久精品无码一区二区无码| 亚洲午夜精品第一区二区8050| 亚洲乱码一区av春药高潮| 合区精品久久久中文字幕一区 | 亚洲一区二区三区丝袜| 日韩一区二区在线观看| 久久亚洲日韩精品一区二区三区 |