面試總結-百度一面總結(一)

總結

在我們設計網頁的過程中,經常需要一些dom元素在其父元素或者相對于網頁是水平垂直居中的,例如:登錄頁面讓登錄窗口居中顯示,以下是我總結的幾種常用方法。

本題考察:css的靈活運用

第一種方法:使用絕對定位實現

css如上圖所示,先將inner的父元素相對定位(position:relative;),再將inner水平居中(margin: auto;),然后對inner進行在父元素wraper中絕對定位(position: absolute;),并將其top、right、bottom、left屬性設置成0,從而實現inner在wraper中的水平垂直居中。


第二種方法:使用display:flex實現

這種方法面試當時也是沒有想到,面試的hr也提醒了我使用flex,但是確實沒有實際操作過這個屬性,實現的css代碼如下:

該方法先將inner的父元素display屬性設置成flex,再將inner的margin屬性設置成auto,這里相當于(margin:auto auto;),可以將其簡寫成(margin:auto;),但是前提是其父元素display屬性為flex。


第三種方法:使用負margin法實現(推薦:兼容性最好)

css代碼如上圖所示,先將inner父元素進行相對定位(position:relative;),再將inner進行絕對定位(position: absolute;),然后使用(top:50%;left:50%;)將inner這個div的左上頂點定位在wraper的正中央,之后通過負margin法將inner向左上方移動實現inner的水平垂直居中。

ps:此方法前提知道尺寸

第四種方法:使用css3中transform屬性實現

此方法與負margin法有著異曲同工之妙,css代碼如下:


該方法與負margin法極其相似,先將兩個div定位,也是將inner這個div左上頂點定位在wraper的中心點,然后使用transform下的translate屬性將inner向左上方移動,從而實現效果。


作者:孫以哲

未完,待續

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 問答題47 /72 常見瀏覽器兼容性問題與解決方案? 參考答案 (1)瀏覽器兼容問題一:不同瀏覽器的標簽默認的外補...
    _Yfling閱讀 13,786評論 1 92
  • H5移動端知識點總結 閱讀目錄 移動開發基本知識點 calc基本用法 box-sizing的理解及使用 理解dis...
    Mx勇閱讀 4,604評論 0 26
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    wzhiq896閱讀 1,788評論 0 2
  • 選擇qi:是表達式 標簽選擇器 類選擇器 屬性選擇器 繼承屬性: color,font,text-align,li...
    love2013閱讀 2,327評論 0 11
  • 做項目帶團隊,有的人跟著你是為了利益,有的人是為了情誼,但絕大多數人是為了利益,所以賺到錢要分給你的兄弟們。這樣他...
    全家福氣閱讀 226評論 0 0