国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發 > CSS > 正文

利用CSS的Sass預處理器(框架)來制作居中效果

2024-07-11 08:25:36
字體:
來源:轉載
供稿:網友

雖然使用 CSS 創建居中效果需要耍一些花招,特別是垂直居中效果,但我認為由此生出的詆毀,對于 CSS 則是不公平的。實際上我們有太多的方式使用 CSS 創建居中效果了,而且作為一名前端開發者,你真的有必要對其中的原理了解一二。

寫這篇文章的目的不是為了向各位解釋這些方法的工作原理,而是介紹將這些方法編寫為 Sass mixin 的方式,繼而將它們復用到各類項目中。

總體概述

本文將會專注于解決子元素居中于父類容器的問題,就實踐經驗來說,這也是最常使用到的居中效果。當你請教別人 CSS 中和居中效果相關的問題時,他們往往會反問你:你知道元素具體的寬高嗎?之所以會有這樣的反問,是因為如果知道元素的寬高,那么最好的解決方案就是使用 CSS transform 屬性。雖然該屬性在瀏覽器中的支持度稍低,但卻有著高度靈活的特性;如果因為瀏覽器兼容性令你不能使用 CSS transform 屬性,或者也不知道元素的寬高,那么實現居中效果的最簡單方法就是使用負向 margin。

我們今天要創建的 Sass mixin 就是基于上述的方法:將元素的左上角絕對定位到容器的中心位置,然后為 mixin 添加兩個可選參數,分別代表元素的寬高,如果傳遞了參數,那么就使用負向 margin 的方法實現居中;如果沒有傳遞參數,就使用 CSS transform 的方法。

當我們的 Sass mixin 創建成功后,基本的使用方式如下所示:

CSS Code復制內容到剪貼板
  1. /**    * 為子元素設定定位上下文  
  2.  */   .parent {   
  3.     position: relative;    }   
  4.    /**  
  5.  * 讓子元素絕對居中于父容器    * 沒有向 Sass mixin 傳遞參數,使用 CSS transform 屬性實現居中效果  
  6.  */   .child-with-unknown-dimensions {   
  7.     @include center;    }   
  8.    /**  
  9.  * 讓子元素絕對居中于父容器    * 向 Sass mixin 傳遞了寬度,所以就使用負向 margin 處理水平位置,  
  10.  * 使用 CSS transform 處理垂直位置     */  
  11. .child-with-known-width {        @include center(400px);   
  12. }      
  13. /**    * 讓子元素絕對居中于父容器  
  14.  * 向 Sass mixin 傳遞了高度,所以就使用負向 margin 處理垂直位置,    * 使用 CSS transform 處理水平位置   
  15.  */   .child-with-known-height {   
  16.     @include center($height: 400px);    }   
  17.    /**  
  18.  * 讓子元素絕對居中于父容器    * 向 Sass mixin 傳遞了高度和寬度,所以就使用負向 margin 處理水平和垂直位置  
  19.  */   .child-with-known-dimensions {   
  20.     @include center(400px, 400px);    }  
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 昌宁县| 台北县| 华坪县| 中方县| 青川县| 龙岩市| 望奎县| 平度市| 吐鲁番市| 老河口市| 丹凤县| 鄯善县| 遂溪县| 监利县| 扬中市| 佳木斯市| 彭水| 都江堰市| 名山县| 鸡东县| 安塞县| 连州市| 惠水县| 辽阳县| 辽宁省| 枝江市| 屏南县| 浮梁县| 寿阳县| 达拉特旗| 河北省| 额敏县| 郁南县| 珲春市| 平山县| 宝坻区| 嵊州市| 浦东新区| 丁青县| 克拉玛依市| 克什克腾旗|