Category: HTML & CSS

How to disable phone number linking in Mobile Safari?

Posted by – November 4, 2015

同事問了這個問題,如何將 iOS webview 裡出現的電話連結移除,因為畫面中出現了不是電話的數字,卻被系統自動加上了電話連結。

有一個非常簡單的方法,在 HTML 檔案的 <head> 區段加一行宣告即可。

<meta name = "format-detection" content = "telephone=no">

這行宣告會停用所有的電話連結。若是反過想要在停用的情況下,加上例外,則可以自行宣告電話連結,語法如下:

<a href="tel:0932123456">0932123456</a>

主要就是用 tel: 關鍵字來達成。

Smooth Touch Scrolling in iOS with -webkit-overflow-scrolling

Posted by – April 17, 2015

在開發一個兼容 iPad 的網站專案時,發現 <div style="overflow: scroll;"> 在 iOS 下捲動很不順暢,手感很糟糕。好奇地搜尋了一下,找到一個 webkit 特有的語法:-webkit-overflow-scrolling: touch。加上這個屬性後,在 iOS Safari 上連回彈的效果都出來,手感與原生程式無異。

可惜 Android 上的 Chrome 似乎沒有作用,有點希望這屬性能成為正式語法。

範例先丟在 Codepen,不過看來要註冊才能 embed,先醬。
http://codepen.io/anon/pen/oXvjvJ

Bookmark: PNotify, JavaScript notifications

Posted by – November 4, 2014

對 programmer 來說,Bootstrap 真的是一套非常便利前端框架,使用簡便、功能完整。但是一直覺得 Bootstrap 缺少了關於 notification 的解決方案。雖然有內建 alert 的效果,但這個 alert 是會佔據畫面空間的,我之前是透過擴充 CSS 的方式來實現 alert 浮空的效果。

最近用 Laravel + Bootstrap 的組合來修改個人網站,就順便找找有沒有現成的 notification 套件,結果不費吹灰之力就找到這個看起來功能超完整的 solution.... PNotify

PNotify website語法與設定都相當簡單,支援的效果和情境也夠豐富,就決定用它了。

Pure CSS One Div Weather Animated Icons

Posted by – July 17, 2014

用純 CSS 做出來的天氣動畫圖示,真厲害

See the Pen Pure CSS One Div Weather Animated Icons by Fabrizio Bianchi (@fbrz) on CodePen.

Bookmark: CSS Text Filling With Water

Posted by – November 13, 2013

用 CSS 與 Javascript 模擬出液體填充的效果,附上實際的效果。

See the Pen CSS Text filling with water by Lucas Bebber (@lbebber) on CodePen

CSS Text filling with water - CodePen

Bookmark: CSS Number Scroll

Posted by – November 13, 2013

用 CSS 和 Javascript 製作數字轉動的效果,還沒用過,先留個書籤。

css_number_scroll

CSS Number Scroll

The correct meta viewport syntax

Posted by – October 19, 2012

根據 Apple Web Content Guide 的說明,在撰寫手機版或給特定裝置的網站時,可以在 <head> 中用 <meta> 標籤來設定 viewport 相關的設定。

不過通常這段設定都是 copy / paste,然後再根據需求調整參數。在開新專案的時候也貼了前人的 code,但是卻注意到 Chrome 裡會有錯誤訊息,無法識別這段設定。

Viewport argument value "device-width;" for key "width" not recognized. Content ignored.
Viewport argument value "1.0;" for key "initial-scale" was truncated to its numeric prefix.
Viewport argument value "1.0;" for key "maximum-scale" was truncated to its numeric prefix.
Viewport argument value "0;" for key "user-scalable" was truncated to its numeric prefix.

找了幾段網路上的設定檔,一比對才發現原來很多人把分隔的逗號打成分號,造成錯誤。

錯誤的寫法

<meta name="viewport" content="width=device-width; initial-scale=1.0; maximum-scale=1.0; user-scalable=no;" />

正確的寫法

<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=no" />

Creating Retina Images for Website

Posted by – October 15, 2012

最近在撰寫一個給 iOS UIWebView 用的迷你網站,在等待設計師繪製網站圖片的時候,好奇地看起來了一些關於視網膜螢幕 (retina display) 的資料。順便找了些用 CSS 顯示 retina image 的資料。

感謝行動平台上的瀏覽器對 CSS3 的普遍支援性,透過 CSS3 的 media queries 來分辨平台就可以切換內容了。

.navbar {
	background-image: url('../img/button01.png');
	background-size: 320px 49px;
}

/* -- for Retina Display -- */
@media only screen and (-webkit-min-device-pixel-ratio: 2),
       only screen and    (-moz-min-device-pixel-ratio: 2),
       only screen and      (-o-min-device-pixel-ratio: 2),
       only screen and         (min-device-pixel-ratio: 2) {
	.navbar {
		background-image: url('../img/button01@2x.png');
		background-size: 320px 49px;
	}
}

檔案命名依慣例在高解析度圖的檔名後面附加 @2x 文字做為辨識,小圖是 320px x 49px,大圖是 640px x 98px,後者指定為顯示一半大小。這樣的寫法會先累到設計師,各種圖示、影像,凡是要支援高解析度的素材都要準備兩套。要注意的是以上的寫法因為一般圖 (Line 1 ~ 4) 並沒有用 @media 包起來,所以要寫在 @media 前面,不然會因為 CSS 先後順序的關係造成只讀一般圖片。

Bookmark: Google HTML/CSS Style Guide

Posted by – May 29, 2012

這是 Google 的 HTML / CSS 編寫指南,用以解決大型專案或多人開發情境下程式碼風格混亂的現象。內容淺顯易懂,部份寫法是針對 HTML5 最佳化。
 
updated on 2017/02/03 :

Google HTML/CSS Style Guide

 

CSS: How To Use @font-face

Posted by – December 17, 2011

過去在開發網站時,字體的選擇一直都很保守,因為每個瀏覽器與作業系統對字型的支援很有限,幾乎就那幾種安全字型可以用。不過自從 CSS 多了 @font-face 這個指令後,事情開始有了些微的變化。@font-face 允許設計師在 CSS 指定特殊別的字型,瀏覽器會根據設定去下載這個字型來顯示,就像 background-image: url('link/to/image'); 一樣,瀏覽器會下載背景圖來顯示。 More