rails裝修技術(shù):navbar flash footer 兼容實作

目標:

在設(shè)計網(wǎng)站的初步階段,我們會想要讓navbar flash footer三者兼容,本文期待的效果是:

  1. navbar在最上方,不遮擋主體內(nèi)容
  2. flash緊靠navbar(在其下方),但是沒有flash時隱藏;并且與主題內(nèi)容之間無留白
  3. footer在最下方,不遮擋主體內(nèi)容。

問題:

但是試來試去,出現(xiàn)各種折磨人的問題:

  1. navbar沒有全屏,全屏后遮住了網(wǎng)站的主體部分;
  2. flash被navbar遮住了,與主體部分之間有空白;
  3. footer跑到了頁面中部,footer遮住了主體部分!

這些問題是大多數(shù)人在初步實現(xiàn)網(wǎng)站的時候會遇到的,問題雖然小,但是極容易把新手卡死,導致失去信心無法開始下一步。
在網(wǎng)上搜索答案的時候卻試了一個又一個,最終沒有一個有用,最終導致心理崩潰,可能放棄編程。

以上就是我的經(jīng)歷,現(xiàn)在這個問題被我解決了,所以寫下這篇技術(shù)&心理貼,共勉:

解決原理與心理輔導:

問題1:明白做css是要做什么?
回答1:css就是裝修,就是用html程序碼首先把頁面切分成一塊一塊的區(qū)域,然后在css文檔中用css程序碼規(guī)定每一個區(qū)域的位置,顏色,大小,形狀···

也就是說:
我們上面遇到的問題,其實就是一個簡單的擺位置的問題。
又因為每個人首先對自己頁面用html程序碼所做的切割各不相同,所以當你去網(wǎng)上搜索解決方案的時候,你就會發(fā)現(xiàn)更種各樣五花八門的辦法,而可能每一個都不適合你(而你在上一篇帖子中copy的程序碼往往只會解決一部分問題,所以你得繼續(xù)搜索,找到新的后你又不舍得刪去原來的程序碼,因為其真的解決了部分問題,導致原來的代碼又成為了問題得不到解決的原因之一····死循環(huán))。 - 典型的驢唇不對馬嘴而不自知(說我自己呢)。

解決方案:

  1. 我是這樣切割頁面的。(注意:怎樣切割頁面決定了后邊css怎么調(diào)整頁面 - 所以要復制就是整篇復制,不復制需要認真分析拆解得出自己的方法后再操作)
<!DOCTYPE html>
<html>
  <head>
    <title>網(wǎng)站名稱</title>
    <%= csrf_meta_tags %>
    <%= stylesheet_link_tag    'application', media: 'all', 'data-turbolinks-track': 'reload' %>
    <%= javascript_include_tag 'application', 'data-turbolinks-track': 'reload' %>
  </head>
  <body>
      <div class="content">
        <%= render "common/navbar" %>
      </div>
      <div class="customed-flash">
        <%= render "common/flashes" %>
      </div>
      <div>
        <%= yield %>
      </div>
        <%= render "common/footer" %>
  </body>
</html>
  1. 我的css是這樣寫的,app/assets/stylesheets/application.scss
.html {height: 100%;} //父級元素高度撐滿整個屏幕

.body {
  position: relative;
  margin-bottom: 50px; /* 一定要和footer的高度一致 */
  min-height: 100%;
} //父級元素高度撐滿整個屏幕

.content {
  min-height: 100%; //讓整個容器最低也要占滿一屏幕
  padding-bottom: 50px; //這個高度要和頁腳高度一致
  margin-bottom: -50px; //大小也要和頁腳高度一致
}

/*******************
        flash
********************/
.customed-flash {
  margin: 50px 0px -20px 0px; // 會將 flash 訊息往上移。
  border-radius: 0;//圓角為0
}

/*******************
        Footer
********************/
.footer {
  position: auto;
  bottom: 0;
  width: 100%;
  z-index: 1000; /* 確保頁面滑動的時候,字體不會從上面滑下去 */
  height: 50px; //頁腳高度,可隨意設(shè)置
  background-color: #263238;
  color: #E0E0E0;
}

歡迎大家提出更高效的方法,隨時更新本帖

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容