ข้ามไปที่เนื้อหาหลัก

Sass หรือ Scss มันใช้ยังไง

Sass หรือ Scss มันใช้ยังไง
 ( Version scss watch)

         เรามี stylesheet อย่างเจ้า CSS มานานนแล้วครับ จนกระทั้งปัจจุบันมียัน CSS3 กันเลยทีเดียว แต่แค่นั้นยังไม่พอ ยังจะมีคนทำให้เราจัดแต่งหน้าตาเว็บ ให้ง่ายกว่าเดิมเข้าไปอีก ( ง่ายขึ้นจริงมั้ย เนี้ย = = ) นั่นคือเหล่า Less (เป็นยังไงไปหาอ่านเอาเองนะ ผมเคยอ่านผ่าน ๆ ไม่เคยใช้จริง) แล้วก็มาถึงเจ้า Sass หรือ Scss ( ต่างกันยังไงก็ไปหาอ่านเอาเองอีกเช่นกัน ) เอาละคราวนี้ ผมจะมาสอนว่า มันใช้ยังไง
ผมขอข้ามขั้นตอนการ installation ออกไปนะครับ ใครยังไม่ติดตั้ง ทำตามLink นี้เลย http://sass-lang.com/
ผมจะบอกก่อนว่า ผมจะใช้ Command Line เอานะ เนื่องจาก จำครั้งเดียวใช้ได้ทุก OS ส่วนใครสนใจการใช้ Software ช่วย compile ก็ตามที่ ทาง http://sass-lang.com/ แนะนำเลยครับ
Tools ที่ Sass-lang แนะนำครับ
คราวนี้มาดู โครงสร้าง project นะครับ
ไฟล์ index ผมเป็นแบบนี้
<!DOCTYPE html>
<html>
 <head>
   <meta charset=”utf-8">
   <title></title>
 </head>
 <body>
   <div class=”one”>
     <div class=”a”></div>
     <div class=”b”></div>
     <div class=”one-z”></div>
   </div>
   <div class=”two”>
     <div class=”a”></div>
     <div class=”b”></div>
   </div>
  <div class=”three”>
    <div class=”a”></div>
    <div class=”b”></div>
  </div>
 </body>
</html>
แล้วไฟล์ scss ของผมก็โล่งๆ เลยครับ
จากนั้นเราต้องทำการ run ตัว compile scss กัน โดย run command ดังนี้ครับ
$ scss -- watch scss_dir:css_dir/
อธิบายก็คือ ให้ทำการ compile scss ทุกครั้งที่มีการแก้ไข file ใน directory scss_dir ไปยัง css_dir เสมอ
เราสามารถระบุไฟล์ ด้วยได้ครับ เช่น
$ scss -- watch scss_dir/style.scss:css_dir/style.css
** ซึ่งในกรณีของผม ผมจะ compile ทั้ง directory scss ไปยัง directory css เลย **
เมื่อ run command scss แล้วจะได้ผลประมาณนี้ครับ (ให้สังเกต บรรทัดสีเขียว นะครับ)
จะเห็นว่า scss มีการสร้างไฟล์ style.css ใน directory css_dir ให้ผมทันที เรามาดูผลจากการ compile กัน
อย่างที่เห็นครับว่า จะเป็น css แบบโล่งๆ และมีชื่อเดียวกันกับ file scss เราเลย [style.scss] และจะมี comment บอกเราว่าเป็นไฟล์ที่เกิดจากการ mapping นั่นเอง
จากนั่นผมก็มาแก้ไขไฟล์ index.html ให้ไป เรียกใช้ css จาก style.css นะครับก็เพิ่ม code ดังนี้ครับ
<head>
...
<link rel=”stylesheet” href=”/css/style.css”>
...
</head>
คราวนี้ เรามาลองเขียน scss กันเลย ผมจะเขียนแบบ ใช้คุณสมบัติบางอย่างของ scss นะครับ (อยากให้ไปลองใช้ที่เหลือกันเอง)
ผมใช้คุณสมบัติ Operation ของ Scss ในการกำหนด ความกว้างและความสูงของ div.one นะครับ โดยคุณสมบัตินึงของ Variables ใน scss คือการใช้สมการครับ จึงเห็นได้ว่า ผมกำหนด ความกว้างไว้ที่ 400px แต่ความสูงผมใช้ ความกว้างที่มีอยู่ มาหักลบ 100px
แล้วผลการ compile ละ ?
แล้วใน terminal ของเราจะ compile เป็นอย่างไร
                                      ผมแก้ไข รัวๆ ก็เลยเป็นอย่างทราเห็นครับ
ครับคราวนี้ถ้าผมมี file scss อีกไฟล์นึงละ ?
จะสังเกตเห็นว่า scss ได้ compile ไฟล์ basestyle.scss เป็น basestyle.css ใน css_dir ให้ผมด้วย เท่ากับว่าเราจะมี file css ตามจำนวน scss
ละเมื่อผมทำการ import basestyle เข้าไปให้แก่ style.scss
ผลการ compile จึงเป็น
แต่หาก ต้องการให้ file scss นั้น ๆ เป็นเพียงแค่ตัวไฟล์สำหรับ import เท่านั้นไม่ต้องการให้สร้างไฟล์ ใหม่ใน css ให้เราทำการใส่ underscoll นำหน้าชื่อครับ
ก็จะได้แบบนี้
ผมใส่ underscoll นำหน้าชื่อไฟล์ไว้ ทำให้ ใน directory css_dir ไม่มี file _hidestyle.css
จากนั่นผมก็ ทำการ import เข้าไปใน style.scss
ผลที่ได้ก็จะเป็นแบบนี้ครับ
ถ้าถามว่า แล้วมันมีประโยชน์อะไร กับการระบุ underscoll ผมคิดว่าน่าจะเป็นพวกชุด css ไว้สำหรับเก็บ parameter อย่างเดียวไม่จำเป็นต้อง compile ออกมาเป็น .css อะไรพวกนี้
ยังไงก็ลองไปใช้กันดูนะครับ
ขอขอบคุณเนื้อหาดีๆๆจากGo to the profile of Chaloemphon Thipkasorn

ความคิดเห็น

โพสต์ยอดนิยมจากบล็อกนี้

วิธีใช้ Google Form ส่งข้อความเข้า LINE Notify

วิธีใช้ Google Form ส่งข้อความเข้า LINE Notify           ขั้นตอนต่อไปนี้จะข้ามส่วนของรายละเอียดบางอย่างไป ซึ่งก่อนจะทำตรงนี้ควรจะรู้แล้วว่า LINE Notify ใช้ทำอะไร และ Access Token จะเอามาจากไหน แต่จะพยายามอธิบายให้ครอบคลุมที่สุดก็แล้วกัน Update: 2019/06/10 ในท้ายบทความได้เพิ่มคำอธิบายเรื่องการส่งข้อมูลหลายกล่องข้อมูล (คอลั่ม) พร้อมกับ code ที่วนลูปข้อมูลทุกกล่อง เพื่อความสะดวกในการส่งข้อมูลในรูปแบบเดิม สร้าง Google Form วิธีสร้างก็ง่ายแสนง่าย เข้าไปที่  https://docs.google.com/forms  จากนั้น คลิกตรงเครื่องหมาย + ตามภาพ จะได้ form หน้าตาแบบนี้มา แก้ไขตามสะดวกเลย ตัวอย่างเอาแบบนี้แล้วกัน จะลองส่งข้อความคลิกที่รูป “ตา” พิมพ์ข้อความอะไรก็ได้ แล้ว กด Submit โลด กลับไปหน้า Form ของเราใน tab แรก มันก็จะมี RESPONSES เข้ามา เมื่อคลิกดูก็จะพบข้อความที่เราเพิ่งพิมพ์ไปเมื่อตะกี้ ใส่ code ใน Script Editor คลิกที่ จุด 3 จุด ด้านขวาบน แล้วเลือก  <> Script Editor จะพบหน้าเปล่าๆ ที่ไม่คุ้นเคย ตรงนี้แหละที่เราจะมาใส่ code ใ...

ทำความเข้าใจ LM, NTLM, NTLMv2

ทำความเข้าใจ LM, NTLM, NTLMv2  วันนี้เราจะมาทำความเข้าใจเกี่ยวกับรูปแบบการเก็บ password ของ Windows โดยแต่ก่อนจนถึงปัจจุบันก็มีพัฒนาการมาเรื่อยๆครับ ซึ่งจะเริ่มจาก LM (Lan Manager) hash โดย LM นั้นเป็นรูปแบบดั้งเดิมในการเก็บ password ของ Windows ตั้งแต่ยุค 1980 ซึ่งในช่วงนั้นยังมีจำนวน charset ที่ยังจำกัดอยู่(16-bits characters) ซึ่งทำให้การ crack password นั้นทำได้ง่ายมากโดยดึงจาก SAM database บน Windows หรือว่า NTDS บน Domain Controller (Active Directory) ได้เลย โดยขั้นตอนการเปลี่ยน password อยู่ในรูปแบบ LM hash คือ เปลี่ยนอักษรทั้งหมดเป็นตัวใหญ่ หากตัวอักษรไม่ครบ 14 ตัวอักษรก็จะเติมตัวอักษรทั้งหมดให้เต็มด้วย NULL characters แบ่งเป็น 2 กลุ่ม กลุ่มละ 7 ตัวอักษร สร้าง DES key จาก character 7 ตัวทั้ง 2 กลุ่ม ก็จะได้ DES key 2 ชุด (ชุดละ 64 bit) นำ DES key ไปเข้ารหัส static string “KGS!@#$%” ด้วย DES (ECB) นำ encrypted strings ทั้ง 2 อันมาต่อกัน ก็จะได้เป็น LM Hash เช่น สมมติ password เป็น password password => password000000 PASSWORD000000 PASSWOR...

The Spiral Model

The  Spiral  Model                                                 Spiral  Model  คือ   Software  Development  Process  ที่ถูกพัฒนาขึ้นโดยเอาจุดแข็งของ   Development  Model  อื่นที่ดีอยู่แล้วมาประยุกต์  ( waterfall  model )  และเพิ่มเติมส่วนของการวิเคราะห์  และตีค่าความเสี่ยงที่เกิดเพื่อจะได้ทราบว่าจุดใดมีความเสี่ยงมากน้อยขนาดไหน  จะได้หาวิธีลดความเสี่ยง  ซึ่งความเสี่ยงเป็นสาเหตุ  ที่ทำให้การพัฒนาไม่ประสบความสำเร็จ  การวิเคราะห์หรือต้นเหตุของความเสี่ยง  ก็เพื่อที่จะหาวิธีการที่จะทำให้เกิดความเสี่ยงน้อยที่สุด  รวมถึงวิธีการแก้ไขเมื่อเกิดเหตุการที่ไม่คาดคิดเกิดขึ้น  ถ้าความเสี่ยงน้อยลง  ก็ทำให้   Cost  หรือ ต้นทุนที่ใช้ก็จะลดลงต...