表格的欄位為什麼不對齊
這是一個舊頁面內容,裡面的本來都很正常。但近來有使用者慢慢更新作業系統或瀏覽器後,發現表格原本被隱藏的欄位在點擊後不會正常排版。各位可以點擊標題測試,如果你是舊IE 6~IE 9,以上測試是正常的。但從IE 10開始,上述表格欄位就會不正常。(包含目前主流瀏覽器都不正常)
這是一個舊頁面內容,裡面的本來都很正常。但近來有使用者慢慢更新作業系統或瀏覽器後,發現表格原本被隱藏的欄位在點擊後不會正常排版。各位可以點擊標題測試,如果你是舊IE 6~IE 9,以上測試是正常的。但從IE 10開始,上述表格欄位就會不正常。(包含目前主流瀏覽器都不正常)
文字編輯器在接觸Sublime Text 2之前大多以Notepad++為主,筆記本為輔。不過看過Kevin Tseng的Sublime Text 2系列教學文之後,又花了一段時間來上手,發現Sublime Text 2這個又免費又付費的編輯器,實在是用程式設計師的角度來開發,而不是像一般編輯器是用編輯器的角度來開發,慢慢的喜歡上它,而且它多元化的輔助套件,和Visual Studio的擴充套件一樣,令Sublime Text 2加分不少。
以下整理我由A選到Z的套件,分類為安裝與選用,安裝是我正在安裝使用中的套件,選用是可依個人需求安裝使用。
必啟用,沒有它你就無法安裝擴充套件,快速鍵:Ctrl+Shift+P
啟用請參考:啟用Package Control
讓你在撰寫如HTML程式碼時,能有高亮度提醒功能。請參考以下官方圖片:
當的游標移至文字中如"#FFFFFF","rgb(255,255,255)","white"會自動顯示對應的顏色。當然,用在CSS居多。
Zen Coding本身是個外掛程式,官網上的資料,Zen Coding目前可以使用在36套各類HTML與CSS編輯器中,像是Aptana、TextMate (Mac)、Notepad++、PSPad、Dreamweaver、Sublime Text 2、Visual Studio…等常用的編輯器都有支援Zen Coding。
那Zen-Coding的作用是什麼呢?它的目標很簡單,就是利用已有的技術,高速的架構出HTML、CSS、XML、XSL或HAML。什麼是已有的技術,簡單說,它是CSS Selector(CSS選擇器)的再利用。
極速
就我使用Zen-Coding它的經驗而言,就算只是簡單拿來產出HTML5或CSS3的程式碼,Zen-Coding也可以非常有效率的加速我寫HTML5與CSS3的速度,加多少,這我很難用言語或文字表示,先看一段影片:
哇!哇!哇!哇!哇!哇!
如果看完沒有跟著哇!那再來一次!
哇!哇!哇!哇!哇!哇!
在上一篇【在 VISUAL STUDIO 撰寫 SASS(SCSS) 讓您快樂似神仙】中,我們完成了在 Visual Studio 裡開發 SCSS 的設定,這一篇主要是參考【Sass Reference】網站內容與【Sass & Compass: The future of stylesheets now.】簡報內容裡的程式碼做一些註解,未來查詢時方便自我取用。
就那麼簡單: {} 一層,{{}} 兩層,以此類推。在 SCSS 語法裡巢狀規則也很簡單,你就看包幾層的 {} 符號,那就是幾層。
/* 巢狀規則1 */
/* article 與 border-top 一條規則 */
/* article 與 header 一條規則 */
article {
border-top: 1px dashed #eee;
header { margin-bottom: 1.5em; }
}
/* 巢狀規則2 */
/* article 與 header 一條規則 */
/* article 與 section 一條規則 */
article {
header, section { margin-bottom: 1.5em; }
}
/* 巢狀規則3 */
/* article 與 >, ~, +, * 各一條規則(共 4 條規則) */
article {
> h2 { border-top: 1px dashed #eee; }
~ article { padding-top: 1.5em; }
+ footer { margin-top: 0; }
* { color: #000; }
}
/* 巢狀規則4 */
/* Parent Selector - & 參考父選擇器 */
/* a 一條規則 */
/* &:hover 一條規則 */
a {
color: blue;
&:hover { color: red; }
display: inline-block;
line-height: 1.8em;
}
/* 巢狀規則5 */
/* Parent Selector - & 新增內容至選擇器 */
/* article 與 h1 一條規則 */
/* .blog-index & 參考(&)父選擇器形成
".blog-index article",.blog-index article 與 h1 一條規則
*/
article {
h1 { font-size: 2.4em; }
.blog-index & {
h1 { font-size: 2em; }
}
}
/* 巢狀規則6 */
/* Parent Selector - & 與 Modernizr 一起運作 */
/* button 與 backgroud 一條規則 */
/* .no-cssgradients & 參考(&)父選擇器形成
".no-cssgradients button" 一條規則
*/
button {
background: linear-gradient(#444, #222);
.no-cssgradients & { background: #333; }
}
@charset "UTF-8";
/* 巢狀規則1 */
article {
border-top: 1px dashed #eee; }
article header {
margin-bottom: 1.5em; }
/* 巢狀規則2 */
article header, article section {
margin-bottom: 1.5em; }
/* 巢狀規則3 */
article > h2 {
border-top: 1px dashed #eee; }
article ~ article {
padding-top: 1.5em; }
article + footer {
margin-top: 0; }
article * {
color: #000; }
/* 巢狀規則4 */
a {
color: blue;
display: inline-block;
line-height: 1.8em; }
a:hover {
color: red; }
/* 巢狀規則5 */
article h1 {
font-size: 2.4em; }
.blog-index article h1 {
font-size: 2em; }
/* 巢狀規則6 */
button {
background: linear-gradient(#444444, #222222); }
.no-cssgradients button {
background: #333; }
父選擇器碰到子選擇器,就形成一條規則。碰到 &(參考) 就形成一條規則。例如以下 SCSS,
a {
color: red;
b {
color: greed;
c {
color:blue;
}
}
}
產生的 CSS,
a {
color: red; }
a b {
color: greed; }
a b c {
color: blue; }
a、ab、abc 一共三條,這樣清楚了嗎。
前陣子,透過 demo.tc 認識了正妹 compass.app 這套很棒的軟體。透過 compass.app 的介紹又認識了 Sass (這是辣媽,不信你連進去看),Sass 為 CSS 提供程式語言等級的功能。CSS 嚴格來說不算程式語言,它本身只是一堆樣式的設定,前後樣式一串一串起來成為串接樣式表,內容更是了無新意【選擇器 { 樣式: 樣式設定};】就這樣,CSS2 到 CSS3 只就增加更多的選擇器、樣式、樣式設定。不過,就像樂高積木一樣,雖然只是積木,但可以千變萬化,這才是它利害的地方。
單純就 *.css 檔案而言,就組織與維護方面實在很弱。不過有了 Sass 之後情況就不同了。Sass 是延伸 CSS3 語法的語法,而且讓我們可以像寫程式語言一樣去撰寫 CSS,Sass 提供了像:
還有其他更多功能,這些內容你看起來有沒有很熟悉。目前 Sass 分為二個語法版本,舊的是 Sass 語法,新的是 SCSS 語法。Sass 語法與 SCSS 語法差異很小,不過 SCSS 語法合乎 CSS 語法的使用習慣,所以比較建議學習使用 SCSS 語法。
compass.app 是一套 monitor 軟體,它會監控指定目錄(或稱專案)下的 *.scss 檔案,在目錄下有 *.scss 檔案新增或異動時,compass.app 會自動產生及更新對應的 *.css 檔案,透過 compass.app 的幫忙,會自己轉換 SCSS 語法為 CSS 語法,非常方便,方便之中帶點小不便。
在撰寫 SCSS 過程裡,總不能開 Notepad / Notepad++ 來寫 SCSS,這就好像回到十多年前,用 Notepad 寫 HTML 的時代,在已經習慣自動完成這種功能,要使用沒自動完成功能的撰寫任務,我只能說:我回不去了!
| 圖片來源:網路 |
所以我們要為史上最強 IDE Visual Studio 裡加上 SCSS 的開發功能。讓 Visual Studio 強上加強!
直到最近,我才知道,原來 XHTML 騙了我好多年,我們寫出來的程式,從來就沒有成為 XHTML 的一天,但一直以為只要我把那非常長的 DOCTYPE 加入,然後使用良好格式(well-formated)來撰寫,並且只要通過 w3 的驗證器認證,就可以大聲說,我很厲害,而且還可以把 w3 官方 XHTML Logo 放在網頁上,以示眾人。
我只是一個平凡人,如果我能,你也能。by KKBruce首先,我一定要感謝我最愛的家人們,不管什麼時候、什麼事,你們都永遠支持我。再來感謝所有幫助過我的人,因為有你們的表率,讓我有學習的對象,讓我有機會成為一位Microsoft MVP。
| 圖一:Microsoft MVP獎項 |
| 圖二:2012 Microsoft MVP獎盃 |
- 減少發出HTTP請求 (Minimize HTTP Requests)
- 使用內容分散式網路 (Use a Content Delivery Network (CDN))
- 避免空白的 src 或 href (Avoid empty src or href)
- 增加過期或Cache-Control標頭(add an Expires or a Cache-Control Header)
- 使用Gzip 組件(Gzip Components)
- 樣式表(CSS檔案)放在最頂端(Put StyleSheets at the Top)
- 腳本(JavaScript檔案)放在最底端(Put Scripts at the Bottom)
- 避免 CSS 表達式(Avoid CSS Expressions)
- 將 JavaScript 與 CSS 放在外部檔案(Make JavaScript and CSS External)
- 減少 DNS 查詢(Reduce DNS Lookups)
- 壓縮 JavaScript 與 CSS(Minify JavaScript and CSS)
- 避免重導向(Avoid Redirects)
- 刪除重複的腳本(JavaScript檔案)(Remove Duplicate Scripts)
- 設置 ETags(Configure ETags)
- 讓AJAX能快取(Make AJAX Cacheable)
- 在AJAX請求中使用 GET 方法(Use GET for AJAX Requests)
- 減少DOM元素數量(Reduce the Number of DOM Elements)
- 不要有HTTP 404錯誤(No 404s)
- 減少 Cookie 大小(Reduce Cookie Size)
- 為組件使用 Cookie-free 網域(Use Cookie-free Domains for Components)
- 避免過濾器(Avoid Filters)
- 不要在HTML裡使用縮放圖片(Do Not Scale Images in HTML)
- 讓favicon.ico圖小且能快取(Make favicon.ico Small and Cacheable)
h1 {
font-size: 24px;
}
h2 {
font-size: 20px;
}
h3 {
font-size: 16px;
}
p {
font-size: 14px;
}
body {
/* 一般都會選擇 small 或 medium為主大小;
small約 12px; medium 約 14px;
*/
font-size: small;
}
h1 {
/* 12px * 200% 約 24px */
font-size: 200%;
}
h2 {
/* 12px * 160% 約 19px */
font-size: 160%;
}
h3 {
/* 12px * 120% 約 14px */
font-size: 120%;
}
p {
/* 12 * 1.5 = 18px */
font-size: 1.5em;
}
$(function(){
// 加上flag是為了讓文字有切換的效果
var flag = false;
// 在一個input上(id=click)註冊onclick事件
$('#click').bind('click',function(){
if (flag){
$('body').css('font-size','medium');
flag = false;
}
else {
$('body').css('font-size','large');
flag = true;
}
});
});
/* for China */
font-family : "宋体", simsun, nsimsun, "黑体", simhei, "楷体", simkai, "仿宋", simfang, Arial, Verdana, "Trebuchet MS", sans-serif;
/* for Taiwan */
font-family : "新細明體", PMingLiu , "標楷體", DFKai-sb , "細明體", MingLiu , "微軟正黑體", "Microsoft JhengHei" , Arial, Verdana, "Trebuchet MS", sans-serif;
<div id="nav">
<ul>
<li><a href="#">Home</a></li>
<li><a href="#">News</a></li>
<li><a href="#">Sports</a></li>
</ul>
</div>
body { background-color : #ffdee0;}
#nav { width:200px; font-family : Arial ;} /*寬度與字型*/
#nav ul { list-style-type : none; margin : 0px; padding : 0px;} /*取消樣式*/
#nav li { border-bottom : solid 1px #ed9f9f;} /*li底線顏色*/
#nav li a { display:block ; /*a區塊顯示*/
padding : 5px 5px 5px 0.5em; /* 左邊留0.5em空白*/
text-decoration : none; /*取消底線*/
border-left : 12px solid #711515; /* 左邊產生12px粗bar*/
border-right : 1px solid #711515;} /* 右邊產生1px細bar*/
#nav li a:link, #nav li a:visited { background-color : #c11136; color :#ffffff;} /*設定:link與:visited的背景與文字顏色*/
#nav li a:hover { background-color : #990020; color : #ffff00;}/*設定:hover背景與文字顏色*/
ps. 有些不錯的翻譯書會附上原文全文電子檔。 不過就我逛過、看過、買過的書中,很少就是了。
margin : 0; /*一個值:代表上、下、左、右。margin : 0 0 0 0;的簡寫。*/ margin : 5 10; /*二個值:值1:上下、值2:左右。margin : 5 10 5 10;的簡寫。*/ margin : 5 10 15; /*三個值:值1:上、值2:左右、值3:下。margin : 5 10 15 10;的簡寫。*/ margin: 1 10 5 15; /*四個值:值1:上、值2:右、值3:下、值4:左。*/
/*方法一*/ margin-left : auto; margin-right: auto; /*方法二*/ margin : auto; /*方法三*/ margin : 上下 auto; margin : 0 auto; /*方法四*/ margin : 上 auto 下; margin : 0 auto 0;
<!--巡覽列-->
<div id="navigation">
<div id="container">
<ul id="firstul">
<li id="home" class="active"><a href="#" title="Home">首頁</a></li>
<li id="news"><a href="#" title="讀書心得" id="mynews">讀書心得</a></li>
<li id="about"><a href="#" title="有關我" id="about_us">有關我</a></li>
</ul>
<div id="mypage" style="display: none" align="center">
</div>
</div>
</div>
<!-- 文章:預設只顯示標題 -->
<div id="content">
<span id="title01">數位式競爭--讀書心得</span><br>
<div id="title01_content" style="display: none;">
這本書為民國89年出版,已經在我書架上很多了年,是我讀大學時的教科書,老師花了一個學期就只上這本書,當時讀起來沒什麼感覺,頂多只是為了交報告而讀,但很奇怪,它就是一直在我的書架上,雖然十多年來,書架上的書已經換了好幾回,尤其是資訊類的書,換的速度之快連我都怕,不過一本好書一定有存在的價值,不會因為時間的變動而有任何改變。我每天可以說都在與技術文件為「舞」,只是不知是我看它跳還是它看我跳。就這樣有一天,不知為何,好像「它」在跟我招手,然後說,來看看我吧,離上次你讀我已經是九年多前的事了,我能給你一些「明牌」!古人說:「不經一事,不長一知。」你沒有經歷過的事,說再多感受就是有限。但九年後的今天重讀本書,真是感受良多,這本書應該是十年前版的「由A到A+」。我一直很佩服國外的研究學者,能花那麼多時間、精神來研究出原本為「隱性」的知識,讓想要更上一層樓的人可以有方法可循。看完這本書後,讓我心有戚戚,十多年前的故事,現在每天還是在不斷重覆發生,不管是成功的故事,還是失敗的故事。我想這可能是知識的傳遞、了解到最後的落實還有很大一段差距。如果你從事軟體相關產業,而還沒有看過這本書,我非常建議你買來看看(我不知道還買不買的到)。
</div>
<span id="title02">The Last Lecture -- 讀書心得</span><br>
<div id="title02_content" style="display: none;">
「最後的演講」,是一位父親留給孩子的遺言。沒錯,是遺言。聽起來是個不好的消息,但也因為是遺言,所以他必須認真思考要留下什麼給他的孩子們,他晚婚,他小孩都還小,他有成就,他患癌。最後的演講分為兩個部分,一是演講影片,二是書本。我是先看書再看影片,影片的部份,你可以搜尋「朱學恆」在他的部落格裡有影片檔和中文字幕,影片是免費的。這場演講為什麼會是全世界轟動?我想,除了是作者蘭迪.鮑許(Randy
Pausch)本身在面對癌症時還能散發不可思義的"樂觀"魅力,還有一種「人之將死,其言也善。」的人生智慧在裡面。人生有方向,是多麼重要及快樂的一件事,首先,是完成自我的夢想,然後是啟發他人的夢想,還可以進一步幫助他人完成夢想。這是Randy教授最後想跟我們說的話。反之,也就是人生一定要有「目標」、要有「方向」,要知道你自己的「路」在那裡。這或許是我喜歡讀些哲學類的書籍關係,思考一件的事的角度之多,或許不是你能想像的,提高看事的高度,提高做事的層度,努力的成就自己,但也不要忘了幫助別人,造成一個良性循環的社會。
</div>
<span id="title03">Word of Mouth Marketing--讀書心得</span><br>
<div id="title03_content" style="display: none;">
我的信箱中有許多的電子報,每天上班第一件事就開打開信箱,確認一下有沒有重要人士的信件,看看Log信件,看看電子報,其實訂了那怎多的電子報,絕大部份都在1-10秒內被我的食指結束生命,快快的按下那Delete鍵,然後Next。而某天的一封電子報裡刊載的標題讓我有興趣「掃」一下,看完後(很少有認真看完全部),內容簡潔但又不失內容,後來又收到幾期的內容,一樣,都是很直接也實用的內容,文筆也不會看了想睡覺。這些電子報其實也是行銷手腕的一種,精選幾段精彩的內容,吸引你的注意,如果你也確實被吸引,但因為你只是看到部份的片面,這時就要看這些精彩的內容是否有足夠的吸引內,讓你採取行動,拿出新台幣去換一本有完整內容的書本。而我,被打動了。雖然我不是行銷人員,但我對行銷、管理方面的知識算很有興趣,一樣是動腦的工作,但行銷、管理和程式就是不同。而作者除了提供大量免費實用的做法外,也提供簡單的5個步驟打造好的「口碑」。
</div>
</div>
/*ul元素設定*/
#navigation ul
{
list-style-type : none ;
margin : 0 auto; /*置中*/
padding : 0;
width : 850px;
}
/*讓li"浮"起來,變成"橫向列"*/
#navigation li
{
float : left ;
}
/*Menu中a元素設定*/
#navigation a
{
float : left ;
display : block ; /*以「區塊」元素方式顯示*/
color : rgb(197,197,197);
padding : 5px 8px;
margin-top : 10px;
border-bottom-width : 0;
}
/*li中類別為active的a元素設定*/
#navigation li.active a
{
color : rgb(255,204,0);
background-color : rgb(153,153,153);
}
/*Menu中a元素:hover及:active設定 */
#navigation a:hover, #navigation a:active
{
color : rgb(204,204,255);
background-color : rgb(100,90,125);
}
/*文章區塊,<div id="content">設定 */
#content
{
clear : both ;
width : 850px;
margin : 0 auto; /*置中*/
padding : 0;
background-color : rgb(193,189,204);
}
/* 文章標題,讓jQuery動態加入 */
.newstitle
{
color :Black ;
border-bottom : 1px dotted gray;
}
/* 文章內容,由jQuery動態控制 */
.newscontent
{
width : 50%;
color : Black ;
background-color : rgb(255,153,51);
border : 1px dotted gray;
padding : 7px 30px 10px 25px;
}
$(function() {
$("#firstul li:eq(0)").removeClass("active"); //先將"首頁"的類別移除
$("#firstul li:eq(1)").addClass("active"); // 將"讀書心得"設定.active類別
$("span[id]").addClass("newstitle"); // 文章標題設定
$("#title01").click(function() { //點擊標題時,
//文章內容加入.newscontent類別設定
$("#title01_content").addClass("newscontent").toggle("slow");
//其他非title01的內容,全部hide()
$("div[id^=title]:not(#title01_content)").hide("slow");
});
$("#title02").click(function() {
$("#title02_content").addClass("newscontent").toggle("slow");
$("div[id^=title]:not(#title02_content)").hide("slow");
});
$("#title03").click(function() {
$("#title03_content").addClass("newscontent").toggle("slow");
$("div[id^=title]:not(#title03_content)").hide("slow");
});
});
<a href="kkbruce.blogspot.com" title="KingKong Bruce">Bruce</a> | <a href="KingKong.pdf" title="KingKong PDF file">KingKong PDF</a>
.pdf {
background-color: green;
border: 1px solid #ABABAB;
color: white;
}
$(function(){
$('a[href$=".pdf"]).addClass('pdf');
//a[]:屬性過濾
//$=:結尾是…
//addClass:加入Class
//整句話:將a屬性href結尾是.pdf加入Class屬性為pdf
});
$(function(){
$('a[href$=".com"]').css({"background-color": "green",
"border":"1px solid #ABABAB",
"color":"white",
"font-family":'"Verdana", "Courier New"',
"font-size": ".93em"});
//css:加入css設定
//特性:值
//整句話:將a屬性href結尾是.com加入css設定(即style屬性)
});
a[href$=".pdf"] {
background-color: green;
border: 1px solid #ABABAB;
color: white;
}