在上節課我們rails中使用coffeescript雖然有問題,但是這個跟系統是windows估計有關,不過我們可以先用每個頁面去寫普通的script標籤就行了。下面講解css樣式在網頁開發中的作用,因為我們前面只是簡單的html頁面**所以頁面就很簡陋,而為了提高使用者體驗美化頁面就用到了css樣式,下面我們講解一般的css使用:
我們以sessions控制器的new也就是登陸頁面為例:
我們插入css**使得表單能夠在螢幕居中顯示,也就是把class為col-md-6的div大標籤居中就行,跟普通的script一樣也是在末尾新增標籤寫入內容:
可以看到登陸的表單那行在頁面居中了:
與使用coffeescript一樣,rails框架當然還有對css更高階的封裝,用法原理類似,都是自動生成對應控制器的scss樣式檔案我們在該樣式檔案寫入**那麼對於控制器檢視就有效果(也就是把檢視頁的樣式**分離出來寫在scss檔案,並且乙個控制器可以有多個有檢視對應的action,那麼多視**件的樣式**只要寫在同乙個scss檔案中就行),而scaffolds.scss是對應腳手架的樣式檔案。
檔案字尾不是css而是scss,講scss之前我們先來講sass:
sass就是sass就是css的一種更高階封裝,它在css基礎上增加了很多css原來不具備的特性(比如巢狀、變數、混合、選擇器繼承等等,比如傳統的css就不能定義變數),使用它能大幅提高效率, 伺服器執行時會將sass**生成css語句,也就是說最終執行的還是css**,而scss就是sass的新語法。
選擇器繼承就能大幅提高效率,比如選擇器.col-md-6就是定位到檢視中的標籤節點,那麼我們給它的下一級節點新增樣式(裡面的form_for就是它的下一級子節點)書寫**如下(需要每次將它的父節點.col-md-6寫出來,多個子節點就要寫多次,很麻煩),然後在裡面新增css**:
那麼怎麼辦呢?我們開啟sessions的scss檔案如下:
刪除頁面新增的css**,我們在scss檔案裡面寫上css**,
ide左邊紅色是智慧型地提示顏色,不是錯誤提示。
結果如下,表單居中,且子節點form(form_for是rails對form標籤的更高階封裝,本質上就是form標籤)的字型顏色變成紅色:
可以看到可以把樣式**新增到scss檔案中,不需要<style type="text/css"
>style>這樣的標籤去包圍起來,但是我們剛才說了,新增子節點樣式的時候還寫出父節點
.col-md-6還是很麻煩,所以rails中有更簡潔的寫法如下(既然是子節點那麼直接巢狀父節點裡面更快):
這樣**就簡潔多了,而且從巢狀關係也能很明白地看出父子節點關係。這樣scss基本的使用就是這麼簡單,比coffeescript更簡單點。 在Nuxt中使用scss語法
npm i d node sass sass loadersass基礎語法說明 注意 一定要寫上lang scss 才可以使用scss語法 在assets目錄下新增檔案 my global.scss base color red my btncss 以下兩種引入方式都可以 assets my glo...
Rails中使用flash總結
九 30th,2011 trackback 這個flash與adobe macromedia flash沒有任何關係。用於在兩個actions間傳遞臨時資料,flash中存放的所有資料會在緊接著的下乙個action呼叫後清除。一般用於傳遞提示和錯誤訊息。使用示例 controller class p...
Rails中使用flash總結
九 30th,2011 trackback 這個flash與adobe macromedia flash沒有任何關係。用於在兩個actions間傳遞臨時資料,flash中存放的所有資料會在緊接著的下乙個action呼叫後清除。一般用於傳遞提示和錯誤訊息。使用示例 controller class p...