css div嵌套層中button的margin-top不起作用解決方法


首先聲明本人資質尚淺,本文只用於個人總結。如有錯誤,歡迎指正、共同提高。

-----------------------------------------------------------------------------------

 

    其實不僅僅是button,所有行內元素都存在這個問題(如span),這個問題的本質區別在於 block,inline和inlinke-block細節;

  1. block元素會獨占一行,默認情況下,block元素寬度自動填滿其父元素寬度;

  2. inline元素不會獨占一行,且設置width,height屬性無效。另外,重點就是 inline元素的margin和padding屬性,水平方向的padding, margin都產生邊距效果,但豎直方向的padding-top, padding-bottom, margin-top, margin-bottom不會產生邊距效果;

  3.  inline-block 簡單來說就是使其既具有block的寬度高度特性又具有inline的同行特性。顧名思義就是在不換行但擁有塊元素其他的性質。

  所以針對如題的問題可以明了的總結為:行內元素設定margin-top是無效的,可以設定成塊之后脫離文檔流來解決,如:

 float、position:absolute、display: inline-block/table-cell(或其他 table 類型)、overflow: hidden/auto、父層div加position: absolute等等。

 

附:

1 塊級元素:div  , p  , form,   ul,  li ,  ol, dl,    form,   address,  fieldset,  hr, menu,  table

   行內元素:span,   strong,   em,   br,  img ,  input,  label,  select,  textarea,  cite,  
                   
內聯元素(inline element)
a - 錨點
b - 粗體(不推薦)
br - 換行
em - 強調
font - 字體設定(不推薦)
i - 斜體
img - 圖片
input - 輸入框
label - 表格標簽
select - 項目選擇
small - 小字體文本
span - 常用內聯容器,定義文本內區塊
strike - 中划線
strong - 粗體強調
sub - 下標
sup - 上標
textarea - 多行文本輸入框
tt - 電傳文本
u - 下划線
 
         
 
         
 
         
內聯元素(行內元素)內聯元素(inline element)
* a - 錨點
* abbr - 縮寫
* acronym - 首字
* b - 粗體(不推薦)
* bdo - bidi override
* big - 大字體
* br - 換行
* cite - 引用
* code - 計算機代碼(在引用源碼的時候需要)
* dfn - 定義字段
* em - 強調
* font - 字體設定(不推薦)
* i - 斜體
* img - 圖片
* input - 輸入框
* kbd - 定義鍵盤文本
* label - 表格標簽
* q - 短引用
* s - 中划線(不推薦)
* samp - 定義范例計算機代碼
* select - 項目選擇
* small - 小字體文本
* span - 常用內聯容器,定義文本內區塊
* strike - 中划線
* strong - 粗體強調
* sub - 下標
* sup - 上標
* textarea - 多行文本輸入框
* tt - 電傳文本
* u - 下划線
* var - 定義變量

塊元素(block element)
* address - 地址
* blockquote - 塊引用
* center - 舉中對齊塊
* dir - 目錄列表
* div - 常用塊級容易,也是css layout的主要標簽
* dl - 定義列表
* fieldset - form控制組
* form - 交互表單
* h1 - 大標題
* h2 - 副標題
* h3 - 3級標題
* h4 - 4級標題
* h5 - 5級標題
* h6 - 6級標題
* hr - 水平分隔線
* isindex - input prompt
* menu - 菜單列表
* noframes - frames可選內容,(對於不支持frame的瀏覽器顯示此區塊內容
* noscript - )可選腳本內容(對於不支持script的瀏覽器顯示此內容)
* ol - 排序表單
* p - 段落
* pre - 格式化文本
* table - 表格
* ul - 非排序列表

可變元素
可變元素為根據上下文語境決定該元素為塊元素或者內聯元素。

* applet - java applet
* button - 按鈕
* del - 刪除文本
* iframe - inline frame
* ins - 插入的文本
* map - 圖片區塊(map)
* object - object對象
* script - 客戶端腳本

如有錯誤,歡迎評論指正、共同提高。[握手]    

歡迎轉載,轉載請注明:轉載自[ http://www.cnblogs.com/juneling ]


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM