1. 程式人生 > >[email protected],c小總結

[email protected],c小總結

問題0:元素內聯元素,行內元素,行內塊元素.
        內聯: 寬高M,P都有效
        行內元素:無寬高,內容撐開,M,P左右有效
        行內塊元素:可設寬高,內容撐開,M,P都有效         文件流中:marging上下塌陷取最大,左右疊加
        float中:marging上下左右疊加         浮動後的元素  可以設定寬高
        absolute fixed定位後的元素  可以設定寬高 懸浮:從無到有的--採用脫離文件流方式
問題1:行內元素,行內塊元素元素有個硬傷-- 有預設的間隙
        分析:行內元素換行寫導致的
        解決:同行寫/把父級font-size設定為0
        <span>你好啊!</span><span>你好啊!</span> 問題2:文件流,脫離文件流,半脫離文件流
        文件流:堅守著它原來佔據的空間
        定位: 脫離 不脫離
        absolute相對 定位父元素 都沒有預設為初始視窗(預設html.body都沒定位)         文件流中子集marging帶動父級問題:
        解決辦法:
        外部處理
        父級或子元素使用浮動或者絕對定位absolute         內部處理
        父級overflow:hidden;
        父級設定padding(破壞非空白的摺疊條件)
        父級設定border 問題3:負marging外邊距

        本質:移動 只能用未重疊部分 例如 文字(優先順序一樣)內容過多會文字重疊   其他按優先順序遮擋顯示
        注意:只能設定負外邊距,不能設定負內邊距,瀏覽器會忽略負內邊距
        流方向:____________________------------------------------
            文件流:將負邊距設定為相對bottom/right時,它並不會把元素向下或右拉,相反,它會把後面的元素往裡面拉,從而覆蓋自己。
            float:left->marging-right/bottom 會把後面的盒子往裡拉
                    right->marging-left/bottom 會把後面的盒子往裡拉 問題4:
水平居中:
1. inline元素,父元素 text-align : center
2. 塊級元素有定寬,margin:0 auto;
3. 塊級元素絕對定位,transform : translate(-50%,0);
4. 塊級元素絕對定位,並且知道寬度, margin-left: - 寬度的一半
5. 塊級元素絕對定位,left:0;  right:0; margin:0 auto 垂直居中
1. 若元素是單行文字, 則可設定 line-height 等於父元素高度,原理見上面;
2. 若元素是行內塊級元素, 基本思想是父使用display: table-cell;vertical-align: middle;
3. 使用flex, 在父元素上面新增.parent { display: flex; align-items: center;
4. 絕對定位的塊用 transform: translate(0, -50%)
5. 絕對定位,並且有定高, margin-top : -高度的一半          注意不要用 margin-bottom,  不會生效的
6. 設定父元素相對定位(position:relative), 子元素如下css樣式:.son{ position:absolute; height:固定; top:0; bottom:0; margin:auto 0; }