Jun瘋自學

首頁

什麼是SCSS

SCSS是個能用更有效率的方法來編寫CSS的程式語言
語法跟CSS大同小異,但是比CSS來得好寫且更容易閱讀

巢狀(Nesting)

愛上SCSS的主要功能之一,這個功能可以大幅減少編寫重複的開頭
透過巢狀式的結構也可以清楚的知道元素上下層的關聯性。

.box{
  width: 100%;
  margin: 0 auto;
  .title{
    padding: 10px;
    p{
      color: rgba(255, 0, 0, 1);;
    }
  }
}

編譯成CSS就會變成

.box{
  width: 100%;
  margin: 0 auto;
}
.box .title{
  padding: 10px;
}
.box .title p{
  color: rgba(255, 0, 0, 1);;
}

這個功能也可以使用在相同的屬性上面

p{
  font:{
    family: arial, sans-serif;
    size: 10px;
    decoration: none;
  }
}

編譯後
=====>

p{
  font-family: arial, sans-serif;
  font-size: 10px;
  font-decoration: none;
}

還有一個方便的功能是使用 & 符號來代替父層

.box{
  color: rgba(0, 0, 0, 1);
  &:hover{
      color: red;
  }
}

編譯後
=====>

.box{
  color: rgba(0, 0, 0, 1);
}
.box:hover{
  color: rgba(255, 0, 0, 1);
}

變數(Variables)

$ 來表示變數
變數可以用來儲存值,方便重複利用

$box-shadow: 10px 10px 5px rgba(0, 0, 0, 1);

.box{
  box-shadow: $box-shadow;
}

編譯後
=====>

.box{
  box-shadow: 10px 10px 5px rgba(0, 0, 0, 1);
}

變數也能拿來做運算

$num:5px;

.container{
margin:$num*2 $num;
}

編譯後
=====>

.container{
  margin: 10px 5px;
}

混入(Mixins)

函式可以使用在重複多行的樣式上面,像是CSS的一些新屬性就可能需要加上瀏覽器前綴,這個部分就可以透過函式來完成
要特別注意的是@mixin需要配合@include來使用
@mixin來設定要使用的樣式、@include則是套用樣式

@mixin css3-border-radius() { 
  -ms-border-radius: 5px;
  -moz-border-radius: 5px; 
  -webkit-border-radius: 5px; 
  -o-border-radius: 5px; 
  border-radius: 5px; 
}
.box {
@include css3-border-radius();
}

編譯後
=====>

.box {
  -ms-border-radius: 5px;
  -moz-border-radius: 5px;
  -webkit-border-radius: 5px;
  -o-border-radius: 5px;
  border-radius: 5px;
}

函式也可以搭配參數使用讓使用上更加靈活。

@mixin css3-border-radius($i) { 
  -ms-border-radius: $i;
  -moz-border-radius: $i; 
  -webkit-border-radius: $i; 
  -o-border-radius: $i; 
  border-radius: $i; 
}
.box {
@include css3-border-radius(3px);
}

編譯後
=====>

.box {
  -ms-border-radius: 3px;
  -moz-border-radius: 3px;
  -webkit-border-radius: 3px;
  -o-border-radius: 3px;
  border-radius: 3px;
}

引入、匯入(Import)

在檔案中加入其他SCSS或CSS檔案,最後編譯時會一併編譯。
假如我想在某個SCSS檔案裡面匯入head、main、footer等scss的檔案就可以使用下面這段程式碼

@import "head.scss";
@import "main.scss";
@import "footer.scss"

繼承(Extend)

@extend主要是用在合併相同程式碼,假如有很多段相同的程式碼
就可以使用@extend進行合併
只要加上站位符號 % 就能讓被繼承的CSS類消失

%box {
  border: 1px solid rgba(0, 0, 0, 1);
  padding: 10px;
  color: rgba(0, 0, 0, 1);
}

.success {
  @extend %box;
  border-color: rbga(0, 128, 0, 1);
}

.danger {
  @extend %box;
  border-color: rgba(255, 0, 0, 1);
}

編譯後
=====>

.success, .danger{
  border: 1px solid black;
  padding: 10px;
  color: black;
}

.success{
  border-color: rgba(0, 128, 0, 1);
}

.danger{
  border-color: rgba(255, 0, 0, 1);
}

函式(Functions)

SCSS中也有@function可以使用,像是@if、@for
不過我還不太熟這些…
有興趣的朋友可以查看內建函式的清單

註解(Comment)

只要在程式碼開頭加上兩條斜線//就可以加入註解。

//我是註解

Visual Studio Code(VSCode) 推薦安裝的套件

Visual Studio Code(VSCode) 身為一款世界上最多人用的編輯器來講,它本身也有非常多好用的套件,但是礙於套件真的實在太多了!

Icon

Material Icon Theme

Material Icon Theme

Live Sass Compiler

Live Sass Compiler 是一款可以幫助我們編譯 Sass/SCSS 的套件,如果你不想要為了編譯 Sass/SCSS 而準備開發環境的話,那麼這個套件就是你的最佳選擇。

Live Sass Compiler

這邊也額外提一下編譯 Sass 按鈕的位置,它是在 VSCode 的狀態列上,點擊它就可以編譯 Sass/SCSS

Live Sass Compiler

Live Server

本地端開啟可以預覽的網站,這是一款可以幫助我們快速建立一個模擬伺服器的套件,如果你想要快速建立一個模擬伺服器的話,那麼這個套件也是你的最佳選擇。

兩大必備Auto模組:
Auto Rename Tag
編輯HTML標籤時,結尾標籤可以自動替換
Auto Close Tag
編輯HTML標籤時,完成起始標籤,自動補齊結尾標籤

其他:
HTML Boilerplate
寫HTML時,可以預測你接下來要打的標籤
HTML CSS Support
寫HTML時,可以自動讀取到CSS已經定義好的class、id名稱
Code Spell Checker
檢查你的英文單字有沒有打錯
CSS Peek
從HTML上的Class可以快速找到該CSS的Code
ESLint
檢查Code的排版,讓你跟上主流的編碼風格
Material Icon Theme
如果你是前端工程師一定需要這款能讓VScode的UI變得美美的模組
Path Intellisense
寫路徑的時候,不用再去開檔案總管去看了,直接在Code裡面用看的方式填入路徑

PHP 相關推薦

PHP 7 強勢再起,不要再鄙視他了 QQ

Python 專區

簡單好用又強大的語言。

  • Python
    就是 Python 的集大成擴充功能,已經由微軟官方親自維護

CSS如何置中Center文字、圖片、Div、Div裡頭的文字呢?

1、文字置中
2、Div裡頭的文字置中
3、Div裡頭的小div 置中以及小div的文字置中
4、圖片置中
5、Div 裡頭的圖片置中

<!doctype html>
<html lang="zh-Hant-TW">

<head>
   <meta charset="utf-8">
   <meta name="viewport" content="width=device-width, initial-scale=1.0">
   <title>玩置中</title>
   <style>
     h1 {
         /* 方法一 */(暴力方式)
         position: absolute;
         top: 50%;
         left: 50%;
         transform: rtanslate(-50%, -50%);
         /* 方法二 */
         text-align: center;
         line-height: 800px; /* 與上方的距離 */
         /* 方法三 */(不推薦此方式)
         display: flex;
         justify-content: center;
         align-items: center;
         line-height: 800px;
     }

     .container {
         width: 500px;
         height: 500px;
         background-color: lightgreen;
         /* 區塊div 置中 方法1 */(暴力方式)
         position: absolute;
         top: 50%;
         left: 50%;
         transform: rtanslate(-50%, -50%);
         /* 區塊div 置中 方法2 */
         display: block;
         margin-left: auto;
         margin-right: auto;
         margin-top: 100px; /* 根據前一個物件位置往下置中 */

         /* 區塊div裡頭的文字置中 方法1 */
         text-align: center;
         line-height: 500px;
         /* 區塊div裡頭的文字置中 方法2 */ /* 當div裡頭有東西時,可以用flexbox */
         display: flex;
         justify-content: center;
         align-items: center;
    }

    .container2 {
         width: 400px;
         height: 400px;
         background-color: rgb(249, 183, 1);
         opacity: 0.5; (增加透明度)
         /* 區塊置中 */ (單純區塊可使用)
         position: absolute;
         top: 50%;
         left: 50%;
         transform: rtanslate(-50%, -50%);
         /* 在區塊裡頭的東西要置中,使用flex */ (區塊、文字、圖片都可以使用)
         display: flex;
         justify-content: center;
         align-items: center;
         gap: 10px; (增加間距)
     }

     .box {
         width: 100px;
         height: 100px;
         background-color: rgb(61, 155, 255);
         /* 小box裡頭文字置中 */
         display: flex;
         justify-content: center;
         align-items: center;
     }

     .img1 {
         width: 200px;
         height: 140px;
         /* 方法一 */ (暴力方式)
         position: absolute;
         top: 50%;
         left: 50%;
         transform: rtanslate(-50%, -50%);
         /* 方法二 */ (此方法只適合水平的置中)
         display: block;
         margin-left: auto;
         margin-right: auto;
         margin-top: 0px;
     }

     .container3 {
         width: 300px;
         height: 300px;
         background-color: rgb(249, 1, 208);
         opacity: 0.5; (增加透明度)
         /* 區塊置中 */ (單純區塊可使用)
         position: absolute;
         top: 50%;
         left: 50%;
         transform: rtanslate(-50%, -50%);
         /* 在區塊裡頭的東西要置中,使用flex */ (區塊、文字、圖片都可以使用)
         display: flex;
         justify-content: center;
         align-items: center;
     }

     .img2 {
         width: 200px;
         height: 140px;
     }
   </style>
</head>

<body>
   <!-- 置中文字 -->
   <h1>置中文字</h1>

   <!-- 置中DIV 裡頭的文字 -->
   <div class="container">
      <h2>在div裡頭的文字</h2>
   </div>

   <!-- 置中DIV 裡頭的區塊 -->
   <div class="container2">
      <div class="box">
         abc
      </div>
      <div class="box">
         abc
      </div>
      <div class="box">
         abc
      </div>
   </div>

   <img class="img1" src="xxx.jpg">

   <!-- 圖片在div裡頭的置中 -->
   <div class="container3">
      <img class="img2" src="xxx.jpg">
   </div>
</body>

</html>

總結:

1.區塊、物件:position
2.區塊裡的文字、圖片、物件,可以用:flex

HTML5的lang繁體中文不是zh-TW

在 HTML5 的 <html> 中可增加 lang= 來標註網頁的語系,讓瀏覽器能更正確的解析與編碼,但從 XHTML 1.0 以來 lang=??? 就不斷演進中。

目前最主要的規範是依照 IETF(Internet Engineering Task Force 國際網路工程研究團隊)的 RFC 4646 的 Tags for Identifying Languages 所定義。

它的要求為 language-script-region-variant-extension-privateuse 就是 語言 – 字體 – 地區 – 方言 – 特殊附加資訊。

使用範例:

<!DOCTYPE html> 
<html  lang="en">
  <head>
    <title>page title</title>
  </head> 
  <body>
  </body>
</html>


<!DOCTYPE html> 
<html  lang="zh-Hant-TW">
  <head>
    <title>page title</title>
  </head> 
  <body>
  </body>
</html>

速查表 zh-Hans

繁體中文:

zh-Hant繁體中文
zh-Hant-TW臺灣使用的繁體中文
zh-Hant-CN大陸地區使用的繁體中文
zh-Hant-HK香港地區使用的繁體中文
zh-Hant-MO澳門使用的繁體中文
zh-Hant-SG新加坡使用的繁體中文

簡體中文 zh-Hans:

zh-Hans簡體中文
zh-Hans-CN大陸地區使用的簡體中文
zh-Hans-HK香港地區使用的簡體中文
zh-Hans-MO澳門使用的簡體中文
zh-Hans-SG新加坡使用的簡體中文
zh-Hans-TW臺灣使用的簡體中文

免費的微軟工具 電子白板工具《ZoomIt》,螢幕畫筆+螢幕放大!

演講、遠距教學或錄製螢幕畫面時,常需要將畫面放大讓觀看者更清楚,或是在螢幕上劃線來標註重點,這時候如果沒有一套輔助的電子白板工具,教學的效果常會大打折扣。

今天要推薦一套微軟推出的老牌免費、免安裝電子白板工具—「ZoomIt」,它的容量不到1MB,提供了多色的螢幕畫筆、螢幕縮放、倒數計時及黑白板功能,搭配線上會議、遠距教學、螢幕錄影…都非常方便實用!需要簡報或遠距教學的一定要趕快下載來用!

最近全國各級學校都在進行的遠距教學,大多使用Google Meet,它本身不像Zoom一樣有提供螢幕畫筆的工具,所以還是需要此軟體。

微軟推出的老牌免費、免安裝電子白板工具—「ZoomIt」,它的容量不到1MB,可以放在桌面上方便你隨時執行,提供了多色的螢幕畫筆、螢幕縮放、倒數計時及黑白板功能,搭配線上會議、遠距教學、螢幕錄影…都非常好用,是一套必備的實用工具。

ZoomIt
官方網站:https://docs.microsoft.com/zh-tw/sysinternals/downloads/zoomit
軟體性質:免費軟體
支援作業系統:Windows

軟體下載及執行

1.可用瀏覽器搜尋「ZoomIt」,或到微軟官網,來下載這個不到1MB的軟體。

2.下載下來是一個zip壓縮檔,用一般解壓縮軟體即可打開,如果是64位元的作業系統可解壓縮Zoomit64.exe這個檔案到桌面,32位元則解壓縮Zoomit.exe。

3.解壓縮後執行該exe檔,第一次執行會出現同意授權的畫面,按下〔Agree〕即可,以後就不會出現該視窗。

4.Zoomit的主畫面如下圖,如果要讓該程式在開機時自動執行,可勾選最下方的「Run ZoomIt when Windows starts」。

當你按下〔OK〕或視窗右上角的X時,ZoomIt會縮小到Windows右下角的系統列中,如果需要更改ZoomIt的設定(例如畫面縮放的比例),只要找到該圖示並在上面按下滑鼠右鍵即可。

ZoomIt的使用方式

ZoomIt主要有4大功能,可在視窗中間的5個頁籤中來切換,阿正老師介紹如下:

1.靜態縮放功能(Zoom)

預設熱鍵: 〔CTRL〕 + 1

只要按下熱鍵(如下圖紅色箭頭處,可點擊一下自行設定)之後,電腦的畫面會凍結並放大,放大的預設比例可以調整(下圖藍色箭頭處),放大之後可以利用滑鼠來移動畫面縮放的區域,還可用滑鼠的滾輪來隨時調整縮放的比率。放大狀態下,按下滑鼠左鍵可以啟動螢幕畫筆。

要離開放大模式,只要按下鍵盤的〔Esc〕鍵 (或再按一次熱鍵)/滑鼠右鍵 即可。

2.即時縮放功能(LiveZoom)

預設熱鍵: 〔CTRL〕+ 4

只要按下熱鍵(如下圖紅色箭頭處,可點擊一下自行設定)之後,電腦的畫面會放大而且可以繼續操作(不會凍結),放大的預設比例跟Zoom(靜態縮放)一樣,放大之後只要將滑鼠的游標移到畫面邊緣,即可移動縮放的區域。 可按下 鍵盤的〔Ctrl〕+ 上下鍵 來隨時調整縮放的比率。

要離開放大模式,只要再按一次熱鍵才能離開。

※請注意:LiveZoom功能僅支援Windows Vista以上系統。

3.螢幕畫筆功能(Draw)

預設熱鍵: 〔CTRL〕 + 2

螢幕畫筆是ZoomIt的一項超實用功能,雖然功能有點陽春,但是相當實用,也可搭配縮放功能(先按下Ctrl+1或Ctrl+4)來使用。只要按下熱鍵(如下圖紅色箭頭處,可點擊一下自行設定)即可使用。啟用畫筆之後,畫面會凍結,再透過熱鍵來切換畫筆顏色功能。

要注意的是,如果無法切換畫筆顏色時,可能因為你目前的輸入法是中文,此時按一下鍵盤的〔SHIFT〕鍵來切換成英文即可。

畫筆的熱鍵有以下這些:

  • 按住滑鼠左鍵:  開始畫圖
  • R / G / B / Y / O / P:切換顏色(紅/綠/藍/黃/橘/紫)
  • E :清除畫面
  • T : 打字
  • 空白鍵:游標回到螢幕正中央
  • Ctrl + 滑鼠滾輪上/下:畫筆粗細調整
  • 按住 [Shift] / [Ctrl] / [Tab]:畫 直線 / 矩形 / 橢圓
  • 按住 [Shift]+ [Ctrl] :畫箭頭
  • W / K: 切換成白板/黑板
  • Ctrl + C:複製圖片 (將目前的畫面複製到剪貼簿)
  • Ctrl + S:儲存圖片 (將目前的畫面儲存為圖檔)
  • Ctrl + Z :復原(每按一次就可清除前一次繪圖)

要離開畫筆模式,只要按下鍵盤的〔Esc〕鍵 (或再按一次熱鍵)/滑鼠右鍵 即可。

至於打字的字體大小,可以在「Type」分頁中按下〔Set Font〕來設定。

4.倒數計時功能

預設熱鍵: 〔CTRL〕+ 3

只要按下熱鍵(如下圖紅色箭頭處,可點擊一下自行設定)之後,電腦的畫面會進入倒數計時狀態大,可以用在下課休息、自由操作、限時作答……等時機。倒數的時間可以在「Timer」處設定(如下圖藍色箭頭處)。

開始倒數後,還可以用滑鼠滾輪(或鍵盤的[Ctrl] + 上下鍵)來調整倒數時間,如果要取消倒數,只要按下鍵盤的〔Esc〕鍵或滑鼠右鍵即可。

如果希望倒數計時的畫面更有趣,還可按下〔Advanced〕按鈕來做進階的設定,包括「Play Sound on Expiration」可以設定倒數結束後的音效,中間的9宮格可以設定計時器的位置,「Show background bitmap」打勾後,可以用刷淡的螢幕畫面、或特定圖片當背景。

螢幕錄影/線上會議搭配ZoomIt的注意事項

如果你想在螢幕錄影或線上會議時搭配使用ZoomIt時,請記得要錄製或分享「整個螢幕」,否則如果只有分享某個視窗或分頁時,ZoomIt的畫筆功能是無效的!

※如果出現無法更新系統時間的訊息,請在該檔案上面按滑鼠右鍵,以「系統管理員」身份執行即可。

CSS架構命名參考規範

最近在思考要怎樣規劃一個好的CSS架構與命名,找了一些資料統整一下方便查找

一個好的 CSS 架構可以方便網站如需外包或其他人加工編寫等,容易查找與修改,而我之前做的都是~~~連我自己都會找不到哈哈!!

所以每一個細節都要好好規劃才對。細心的規劃能提供下列的好處:

更少的樣式
更少的樣式衝突
更長的維護週期
更快的提升新團隊成員
團隊成員之間更容易交流
更平穩的專案交接

CSS 規則的型別:大多數是基於 SMACSS 推薦的做法,確保每一個風格都適合這些類別之一。

基本樣式 (Base Styles)
物件 (Objects) o-
元件 (Components) c-
狀態 (State) .is- 或者 .has-
主題 (Themes) .t-
工具集 (Utilities) .u-
JavaScript (JavaScript hooks) .js-
理解這些分類和目的,將有助於你寫出更高抽象層次的樣式。

使用匯入,你能將你的樣式分解到多個檔案中。

@import “variables”;
@import “mixins”;
@import “normalize”;
@import “typography”;
@import “headings”;
@import “headings”;
@import “layout”;
@import “carousel”;

link跟@import有文章說不要同時用,全部都用@import還可以,要同時用效能會比較差。

CSS樣式表文件命名:

  • 主要的 master.css
  • 模塊 module.css
  • 基本共用 base.css
  • 佈局、版面 layout.css
  • 主題 themes.css
  • 專欄 columns.css
  • 文字 font.css
  • 表單 forms.css
  • 補丁 mend.css
  • 打印 print.css

頁面結構

  • 容器: container
  • 頁面外圍整體布局寬度:wrapper
  • 頁頭:header
  • 內容:content/container
  • 頁面主體:main
  • 節:section
  • 頁尾:footer
  • 側欄:sidebar
  • 欄目:column
  • 子頁面:subpage

導航

  • 導航:nav
  • 主導航:mainbav
  • 子導航:subnav
  • 頂導航:topnav
  • 邊導航:sidebar
  • 左導航:leftsidebar
  • 右導航:rightsidebar
  • 菜單:menu
  • 子菜單:submenu
  • 摘要: summary

功能

  • 標誌:logo
  • 廣告:banner
  • 登陸:login
  • 登錄條:loginbar
  • 註冊:regsiter
  • 搜索:search
  • 購物:shop
  • 標題:title
  • 加入:joinus
  • 狀態:status
  • 按鈕:btn
  • 滾動:scroll
  • 標簽頁:tab
  • 文章列表:list
  • 提示信息:msg
  • 當前的: current
  • 小技巧:tips
  • 圖標: icon
  • 註釋:note
  • 指南:guild
  • 服務:service
  • 熱點:hot
  • 新聞:news
  • 下載:download
  • 投票:vote
  • 合作夥伴:partner
  • 友情鏈接:friendlink 或 link
  • 版權:copyright
  • 關於我們:aboutus
  • 網站地圖:sitemap
  • 統計:count
  • 指南:guild
  • 特別的:spec
  • 資源:source
  • 箭頭:arrow
  • 表單:menu
  • 子表單:submenu
  • 下拉:drop
  • 下拉表單:dropmenu

PHP跳轉頁面的三種方式

•PHP頁面跳轉一、header()函式
header()函式是PHP中進行頁面跳轉的一種十分簡單的方法。header()函式的主要功能是將HTTP協議標頭(header)輸出到瀏覽器。
header()函式的定義如下:
void header (string string [,bool replace [,int http_response_code]])
可選引數replace指明是替換前一條類似標頭還是新增一條相同型別的標頭,預設為替換。
第二個可選引數http_response_code強制將HTTP相應程式碼設為指定值。 header函式中Location型別的標頭是一種特殊的header呼叫,常用來實現頁面跳轉。
注意:
1.location和“:”號間不能有空格,否則不會跳轉。
2.在用header前不能有任何的輸出。
3.header後的PHP程式碼還會被執行。例如,將瀏覽器重定向到lamp兄弟連官方論壇
複製程式碼 程式碼如下:
<  ?php 
//重定向瀏覽器 
header(“Location: http://bbs. lampbrother.net”); 
//確保重定向後,後續程式碼不會被執行 
exit;
?>

•PHP頁面跳轉二、Meta標籤
Meta標籤是HTML中負責提供文件元資訊的標籤,在PHP程式中使用該標籤,也可以實現頁面跳轉。 若定義http-equiv為refresh,則開啟該頁面時將根據content規定的值在一定時間內跳轉到相應頁面。
若設定content=”秒數;url=網址”,則定義了經過多長時間後頁面跳轉到指定的網址。例如,使用meta標籤實現疫苗後頁面自動跳轉到LAMP兄弟連官方論壇。
複製程式碼 程式碼如下:
<   meta   http-equiv = “refresh”  
content = “1;url=http:// bbs.lampbrother.net” >

例如,以下程式meta.php實現在該頁面中停留一秒後頁面自動跳轉到bbs.lampbrother.net。  
複製程式碼 程式碼如下:
<  ?php   
$ url  =  “http://bbs.lampbrother.net” ;  ?>  
<   html >    
<   head >    
<   meta   http-equiv = “refresh”   content =”1;  
url = <  ?php echo $url;  ?> ” >    
<  /head >    
<   body >    
頁面只停留一秒……   
<  /body >  
<  /html >

PHP頁面跳轉三、JavaScript
例如,此程式碼可以放在程式中的任何合法位置。
複製程式碼 程式碼如下:
<  ?php  
$ url  =  “http://bbs.lampbrother.net” ;  
echo ” <   script   language = ‘javascript’  
type = ‘text/javascript’ > “;  
echo ” window.location.href = ‘$url’ “;  
echo ” <  /script > “;  
?>

以上就是我們向大家介紹的三種PHP頁面跳轉實現方法。

人在一起不叫團隊 心在一起才是團隊

一日,鎖對鑰匙埋怨道:“我每天辛辛苦苦為主人看守家門,而主人喜歡的卻是你,總是每天把你帶在身邊。” 而鑰匙也不滿地說:“你每天待在家裡,舒舒服服的,多安逸啊!我每天跟著主人,日曬雨淋的,多辛苦啊!”

  一次,鑰匙也想過一過鎖那種安逸的生活,於是把自己偷偷藏了起來。主人出門後回家,不見了開鎖的鑰匙,氣急之下,把鎖給砸了,並把鎖扔進了垃圾堆裡。

Read more