整合營銷服務商

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

          免費咨詢熱線:

          javascript取整與取模運算(/%)

          在 C# 中,取整運算很簡單,直接用斜杠/就能取到兩數相除的整數。而在 javascript 中,用斜杠/取整卻得到小數,也就是說javascript 并沒有像 C# 一樣把斜杠作為專門的取整運算符,那么在 javascript 中應該如何取整?

          在 C# 中,取模用百分號%,即 a%b 表示取a除b所得的余數,如果a除b能整除,則 a%b 結果為0。在 javascript 中,取模方法與C# 相同,也是用百分號%,上面 a%b 在 javascript 中同樣成立。

          一、javascript取整運算

          在 javascript 中,直接用斜杠/取整會得到小數,所以用斜杠運算之后還要轉為整型才能達到目的;取整運算舉例如下:

          結果:2

          如果不用 parseInt() 轉為整型,結果為 2.66666……,所以取整一定不要忘了加上 parseInt(),否則取不到整數。

          二、javascript取模運算

          javascript 取模運算跟 C 家族編程語言一樣都用百分號符%,不像取整還需要轉為整數才能獲取正確的結果,javascript取模運算舉例如下:

          結果:2

          這個結果是正確的,跟取整的結果一樣,8除3取整與取模結果都2。取整與取模主要在數學運算的時候用到,在網頁前端設計過程中用得不是很多,但偶爾會遇到,比如動態顯示上傳圖片就會用到。

          ello,暖寶又來了,最近在忙學習與列年度計劃,不知道大家有沒有列今年的年度計劃呢?今天給大家聊一下js里的%

          % 顧明思義就是取余數的意思

          例如:5%3=2,可以把“%”看成是咱們數學運算中的除號

          當然這個也用到平時的js編程中

          for in

          json中的for in數據遍歷

          舉例:

          <script type="text/javascript">

          var json_obj_data =

          {

          "40":{"title":"all" , "name" :"all promotions" ,"id" :"all"},

          "20":{"title":"best_room_rate" , "name" : "best room rate" , "id" : "best_room_rate"},

          "10":{"title":"summer rate" , "name" : "summer rate" , "id" : "30"}

          }

          for(var data in json_obj_data){

          alert(data);

          }

          </script>

          記得關注右上角的暖夕H2

          家有沒有對 CSS 中的百分比是如何工作的感興趣?有沒有想過,為什么它有時會亂七八糟,沒啥頭緒?反正我是有,所以今天分享這篇文章,對自己來說是加深理解,同時也希望對大家有所幫助。

          什么百分比?

          作為百分比,顯然應該有一個目標作為參考源,這個參考一般是父元素。這是正確的,但并不涵蓋所有情況。最正確的答案應該是包含塊(containing block),即包含我們元素的塊且它不必是直接的父元素。

          看看下面的例子:

          代碼:

          <div class="grandparent">
            <div class="parent">
              <div class="child"></div>
            </div>
          </div>
          
          .grandparent {
            position: relative;
            width: 200px;
            height: 200px;
            background: #eaeaea;
          }
          
          .parent {
            width: 100px;
            height: 100px;
            background: #aaa;
          }
          
          .child {
            position: absolute;
            width: 50%;
            height: 50%;
            top: 25%;
            left: 25%;
            background: red;
          }
          
          

          在上面的例子中,我創建了 3 個嵌套 div,它們是具有以下特征的3個正方形

          • 最外面的組元 div 是一個淺灰色,大小為 4x4
          • 父元素 div的顏色為深灰色,大小為 2x2
          • 以及分配 50% 大小的紅色子 div

          如果百分比單位以父級為來源,則子級的大小應該是它的 1/2,但上面的不是,子級的大小實際上等于父級,也就是祖父級的 1/2。原因是祖父級 div 是子級 div 的真正包含塊,因為子級具有 position: absolute ,對應于在祖父級中設置的 position:relative

          因此,為了確定哪個是元素的實際包含塊,它完全基于元素本身的 position 屬性。

          但是,對于某些屬性,百分比單元的引用源既不是父塊也不是包含塊,而是它本身—— 自身元素

          百分比的屬性

          width/height

          如上面的例子中看到的,當一個元素為其寬度分配一個百分比值時, width 是基于包含塊的width, height 是基于包含塊的 height

          padding

          對于 padding,垂直(padding-top/padding-bottom)或水平(padding-left/padding-right)都是基于包含塊的 wdith 來計算。

          來個例子:

          <div class="parent">
           <div class="child"></div>
          </div>
          
          .parent {
            background: #eaeaea;
            width: 300px;
            height: 200px;
          }
          
          .child {
            display: inline-block;
            background: red;
            padding-top: 50%;
            padding-left: 50%;
          }
          
          .parent {
            position: relative;
          }
          

          線上地址:https://codepen.io/khangnd/pen/powbjEL

          在這個例子中:

          • div 的大小為 6x4
          • div的大小為 0,但 padding-toppadding-left 分別為 50%

          最后的結果是,子元素的大小相當于父級元素 1/2寬度,也就是一個 3x3 的正方形。

          margin

          paddingmargin 的百分比(垂直和水平)也是相對于包含塊的寬度來計算。

          來個事例:

          <div class="parent">
            <div class="child"></div>
          </div>
          
          .parent {
            background: #eaeaea;
            width: 300px;
            height: 200px;
          }
          
          .child {
            display: inline-block;
            background: red;
            width: 50px;
            height: 50px;
            margin-top: 50%;
            margin-left: 50%;
          }
          
          

          在這個例子中:

          • 父級 div 的大小為 6x4
          • margin-topmargin-left 分別為 50%

          其結果是,子元素被定位在離父級元素的上邊距和左邊距3個單位的地方(父級寬度的1/2)。

          top/bottom/left/right

          topbottom基于包含塊的height來計算,leftright 基于包含塊的width來計算。

          來個例子:

          <div class="parent">
            <div class="child"></div>
          </div>
          
          .parent {
            position: relative;
            background: #eaeaea;
            width: 300px;
            height: 200px;
          }
          
          .child {
            position: absolute;
            background: red;
            width: 16.67%;
            height: 25%;
            top: 50%;
            left: 50%;
          }
          
          

          在這個事例中:

          • 父級 div 的大小為 6x4
          • 子元素有 position: absolutetopleft 分別為 50%

          最終結果,子 div 被定位在離父 div 的頂部邊緣 2個單位的位置(父 div 高度的 1/2),并被定位在離父 div 的左側邊緣 3 個單位的位置(父 div 寬度的 1/2)。

          transform: translate()

          一個用于動畫/過渡的不可思議的屬性,它也支持百分比值。然而,這個屬性并不指其包含的塊,而是指其自身。

          來個例子:

          <div class="parent">
            <div class="child"></div>
          </div>
          
          .parent {
            background: #eaeaea;
            width: 300px;
            height: 200px;
          }
          
          .child {
            background: red;
            width: 100px;
            height: 50px;
            transform: translate(50%, 50%);
          }
          
          

          在這個事例中:

          • 父級 div 的大小為 6x4
          • div 的大小為 2x1,使用 transform: translate(50%, 50%)

          最后結果,子 div 被定位在離父 div 的頂部邊緣 0.5 個單位的位置(自身高度的 1/2),并被定位在離父 div 的左側邊緣 1 個單位的位置(自身寬度的 1/2)。

          background-size

          background-size 屬性將百分比單元的復雜性提升到一個新的水平

          此屬性的百分比值指的是背景定位區域,類似于包含塊,但添加了以下 3 個因素:

          • 只有內容的塊(content-box)
          • 帶有內容和 padding 的塊 (padding-box
          • 帶有內容、paddingborder 的塊(border-box)

          這三個值是由 background-origin 給出,具體看 MDN :https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-origin

          來個例子:

          <div class="parent">
            <div class="child"></div>
          </div>
          
          .parent {
            background: #eaeaea;
            width: 300px;
            height: 200px;
          }
          
          .child {
            background-image: url(https://d2fltix0v2e0sb.cloudfront.net/dev-rainbow.png);
            background-size: 50% 50%;
            background-repeat: no-repeat;
            background-color: red;
            width: 50%;
            height: 50%;
          }
          

          在這個例子中:

          • div 的大小為 6x4
          • div 的大小為 3x2,沒有 padding,沒有 border
          • 這里使用了一個DEV logo(比例為 1:1 )作為子 div 的背景圖像,背景大小屬性設置為 50% 50%

          其結果是,背景圖像被拉伸為 1.5 x 1 的大小。

          background-position

          background-size 類似,background-position 屬性的百分比也依賴于背景定位區域。

          在這個例子中:

          <div class="parent">
            <div class="child"></div>
          </div>
          

          css

          .parent {
            background: #eaeaea;
            width: 300px;
            height: 200px;
          }
          
          .child {
            background-image: url(https://d2fltix0v2e0sb.cloudfront.net/dev-rainbow.png);
            background-size: 50% 50%;
            background-position: 50% 50%;
            background-repeat: no-repeat;
            background-color: red;
            width: 50%;
            height: 50%;
          }
          
          
          

          在本例中,使用了與前面相同的圖像和布局。當我們改變background-position的值時,可以看到一些變化:

          • 如果沒有任何值(默認值為0 0),背景圖像將位于左上角。
          • 使用 background-position: 0 50%,背景圖片被定位在左邊中間。
          • 使用 background-position: 50% 50%,背景圖片被定位在中心。
          • 使用 background-position: 100% 100%,背景圖片被定位在右下方。

          注意:background-position: 0 50% 是下面的縮寫

          • background-position-x: 0
          • background-position-y: 50%

          顯然,這個屬性的百分比背后有一些計算,而不僅僅是圖像的頂部和左側邊緣與孩子的距離。通過一些研究和測試,似乎 background-position 屬性在產生一個實際值之前依賴于以下計算。

          offset X = (容器的寬度-圖像的寬度) * background-position-x offset Y = (容器的高度-圖像的高度) * background-position-y

          在這種情況下:

          • 容器作為子 div
          • 圖像的寬度/高度是 background-size 的結果。

          font-size

          對于 font-size ,百分比值僅指向它的直接父塊。

          來個例子:

          <div class="grandparent">
            font-size: 13px
            <div class="parent">
              font-size: 26px
              <div class="child">font-size: 50%
            </div>
          </div>
          

          在這個例子中,我使用與第一個例子相同的布局,字體大小分配如下。

          • grandparent 13px
          • parent 26px
          • child 50%

          我們可以清楚地看到,child 的字體大小現在與 grandparent 一樣,是 parent1/2

          線上地址:https://codepen.io/khangnd/pen/MWoeXMO

          ~~ 完,最近一個禮拜都在趕項目,基本都要2點后才能睡,這篇文章是間斷整理好的,現在時間 是 9/20 深夜3點,睡了,感謝大家的觀看。

          作者:Khang 譯者:前端小智 來源:dev 原文:https://dev.to/khgnd/understanding-css-percentage-44gd


          主站蜘蛛池模板: 国产精品被窝福利一区 | 一区二区3区免费视频| 久久一本一区二区三区| 无码精品视频一区二区三区| 色久综合网精品一区二区| 中文字幕乱码人妻一区二区三区 | 成人精品一区二区户外勾搭野战| 波多野结衣一区视频在线| 人妻少妇精品视频一区二区三区| 无码精品久久一区二区三区| 亚洲熟妇av一区| 无码精品国产一区二区三区免费| 一区二区三区高清视频在线观看| 乱码人妻一区二区三区| 亚洲一区二区三区亚瑟| 精品日产一区二区三区手机| 一区二区三区免费在线视频| 日本精品一区二区在线播放| 午夜影院一区二区| 天堂Aⅴ无码一区二区三区| 日韩精品电影一区亚洲| 国产精品va一区二区三区| 麻豆AV天堂一区二区香蕉| 国产av一区最新精品| 无码中文字幕一区二区三区| 亚洲一区二区三区高清不卡 | 99偷拍视频精品一区二区 | 精品乱子伦一区二区三区| 亚洲av综合av一区二区三区| 国产情侣一区二区三区| 在线|一区二区三区| 亚洲AV无码一区二区二三区入口| 日韩伦理一区二区| 亚洲av乱码一区二区三区| 中文国产成人精品久久一区| 女人18毛片a级毛片一区二区| 久久精品无码一区二区三区| 乱中年女人伦av一区二区| 亚洲熟妇无码一区二区三区| 熟女性饥渴一区二区三区| 日韩欧美一区二区三区免费观看|