1. 程式人生 > >當margin用百分號(%)時,數值是以誰為基準?

當margin用百分號(%)時,數值是以誰為基準?

 今天做了一個demo,自己用原生的js寫了一個輪播圖,那麼問題來了,當你用百分號表示margin-left的時候,他取得百分號的數值是以誰做為基準而取得值呢?子元素和父元素的width都是百分號表示,

比如一個很簡單的額例子了,當一個div裡面有一個div時,下面我就通過2個簡單的demo來解釋這個問題

1、如果父元素div大於裡面的子元素div,圖程式碼如下:box為父元素 ,bos為子
結果如下
可見結果百分號(%)的值是以它的父元素的寬為基準; 2.如果外面的父元素div小與裡面的div box為父元素 ,bos為子
先看結果
大家思考一下,為什麼我要把margin-left的值設為-60%?
其實這是有原因的,子元素佔了父元素的160%;就說明子元素在他父親的基礎上還比他父親大60%;那麼,如果margin-left的取值是以父親寬為基準,那麼上面的結果應該是右邊對齊了。結果正是如此,看來我們的結論是正確的, 這句話也可以這麼理解:子元素以父親為基準比他大60%,那麼他再以他父親為基準向左移動60%,那麼他們的右邊是不是就對齊了 特別注意:margin-top如果用百分號表示,他也是以父元素的為基準的,有興趣的同學可以親自測試一下。

相關推薦

margin百分號%數值基準

 今天做了一個demo,自己用原生的js寫了一個輪播圖,那麼問題來了,當你用百分號表示margin-left的時候,他取得百分號的數值是以誰做為基準而取得值呢?子元素和父元素的width都是百分號表示

在c++裡strcpy出錯怎麼解決

C語::#include <string.h> C++語言:#include <cstring> 如果是在VS中,這個函式是不安全,可能造成緩衝區溢位,所以現在建議用strcpy_s來代替 如果仍想用可以選擇以下任何一種方法: 1、新建專案時不要勾選安全開發生命週期檢

連續兩個scanf可能出現的錯誤

#include int main() { char ch1,ch2; printf("Input for ch1:\n"); scanf("%c",&ch1); printf("ch1=%c\n",ch1); printf("Input for ch2:\n"); scanf

TP5:二維陣列遍歷save方法 報主鍵ID重複解決方法

$mUser = model('User'); foreach ($arrData as $k => $v) { $arrData[$k]['addtime'] = time(); $res = $mUser->isUpdate(false)->data($arr

Java復制文件可以直接調renameTO方法不要數據流啦

ati 清空 puts 文件復制 新建 name ioe release strong 我想達到的效果是,一個文件復制到另一個地方,然後重命名 //判斷是否存在 File file = new File("D:/tomcat9.0.12/apache-tomc

java入門練習題:讀入一組整數不超過20個戶輸入0表示輸入結束;然後程式將從這組整數中把第二大的整數找出來並把它打印出來。

 程式意義:讀入一組整數(不超過20個),當用戶輸入0時,表示輸入結束;然後程式將從這組整數中,把第二大的整數找出來,並把它打印出來。  說明:(1)0表示輸入結束,它本身並不計入這組整數中。            (2)在這組整數中,既有整數又有負數;          

你有雙網絡內部網+互聯網如何透明NAT給其他電腦上網。虛擬機+愛快

無法連接 無線網 win10 代理 外網 虛擬 電腦上網 互聯網 簡介 一:簡介 具體環境是這樣的:單位沒有提供互聯網連接,都是內部網,linux服務器,無法連接源更新,docker無法pull鏡像,python無法在線pip安裝包。 真是郁悶到想死啊。 好在我的筆記

Qt 學習之路 219:事件的接受與忽略(當重寫事件回撥函式時,時刻注意是否需要通過呼叫父類的同名函式來確保原有實現仍能進行!有好幾個例子。為什麼要這麼做?而不是自己去手動呼叫這兩個函式呢?因為我們無法確認父類中的這個處理函式有沒有額外的操作

版本: 2012-09-29 2013-04-23 更新有關accept()和ignore()函式的相關內容。 2013-12-02 增加有關accept()和ignore()函式的示例。 上一章我們介紹了有關事件的相關內容。我們曾經提到,事件可以依情況接受和忽略。現在,我們就

c++11 條款22:使用Pimpl指向實現的指標在實現檔案裡定義特定的成員函式

條款22:當使用Pimpl(指向實現的指標)時,在實現檔案裡定義特定的成員函式         假如你曾經和過多的編譯構建時間抗爭過,你應該熟悉Pimpl(指向實現的指標)這個術語。這項技術是你可以把類的資料成員替換成一個指向實現類(結構)的指標,把原來在主類中的資料成員

html實現鈍角效果;html實現限制一行字數的顯示超出的部分省略號....來代替

button posit uitext 鄙視 gulp 最新 完全 經典 ava     前端實現div框邊角的鈍化雖然簡單,但是有時候突然想不到,特此寫下幾句實現方法,以便記憶。     實現div框四個角都鈍角的操作:設置 div : border-radius=10p

SAP成都研究院非典型程序猿菜園子小哥:UI5診斷工具些什麽

javascript ui5 fiori sap sapui5 身邊有些年輕同事曾經向我表達過這種困擾:盡管完成日常工作沒有任何問題,但是還想更進一步,把代碼寫得更好些,做到精益求精。現在寫的代碼能實現功能,但是不知道可以怎樣寫得更好。 除了閱讀優秀的開源庫開源框架,一點一滴積累之外,Je

在js中if條件null/undefined/0/NaN/""表達式統統被解釋false,此外均true哦。。。官方原文如下:

In if條件 對象 strong 表達 clas tro 數字 此外 Boolean 表達式 一個值為 true 或者 false 的表達式。如果需要,非 Boolean 表達式也可以被轉換為 Boolean 值,但是要遵循下列規則: 所有的對象都被當作 true。 當

IntelliJ IDEA 中 右鍵新建new選項沒有scala(java) class的解決方法和具體解釋

首先註明:本文不是原創,我也是在網上找了好久,找到這篇博文(連結),解決了我的問題,順便在這裡總結一下,給有需要的人。 專案是用Maven 建立的,具體的建立過程就不做解釋了。出現的問題如下:  具體問題的圖,如下: 開啟設定介面的路徑如下: 主介面File——&

選購騰訊雲主機CVM務必謹慎選擇硬碟型別小心有坑

在購買騰訊雲主機(CVM)的“選擇儲存與網路”環節時,CVM提供“雲硬碟”和“本地硬碟”兩種型別,其中預設是“本地硬碟”: 騰訊雲主機(CVM)購買選配硬碟介面 這塊和阿里雲的雲主機(ECS)是有差別的,阿里雲只有雲硬碟一種型別,所以如果之前是用阿里雲的產品,在使用騰訊雲產品時就要特別留意了。 阿里

一個介面有多個實現類呼叫介面中的方法如何判定的是哪個實現類

一、簡單例子: 1. 直接new一個例項,這樣肯定知道用的哪個例項2. 定義介面型別的變數,用某個例項去初始化。。。這樣也是肯定知道用的哪個例項一般我們用第二種方式有一個好處,如果以後要改動,那麼只需要修改其引用的例項,改動較少!舉個例子:A介面,A1,A2,A3實現A

idea建立新的類檔案自動新增作者建立時間檔案註釋等資訊的設定方法

一、文件註釋(設定後建立新檔案自動生成如下 二、設定方式(如下圖)調出設定選項快捷鍵 Mac下快捷方式Command + , 寫法 釋義 ${PACKAGE_NAME} n

java執行Linux命令支援萬字元*

java執行linux或者windows命令,這個需求比較常見。 但是若使用  Runtime.getRuntime().exec(cmd); 會發現,若cmd中含有萬用字元,則無法執行,如cp  /dira/*.txt /dirb 可用如下方式執行: String[]

正則表示式有無g引數全域性搜尋test()結果的差異

有g引數的正則表示式: var kk=//w/w/g;var kk=new RegExp("//w//w","g"); 如果正則表示式有指定g引數全域性匹配 , 則每次test()是依次獲得下一個匹配。舉例說明: var s="AABBCC";var kk=/(/w/w)