Skip navigation.

The Corner of My Soul

Chào mừng các bạn đến WallPearl's Blog. Hiện WPB có một số link download đã hết bandwidth. Xin hãy để lại e-mail nếu bạn không thể download e-books tại đây.

Posts tagged with "Tutor"

Nhận Diện Ngôn Ngữ Bằng CSS

, , , ...

Một số website đa quốc gia như Google hay Yahoo có sẵn một cơ chế rất hay là nhận diện IP của người truy cập để hiển thị các trang có ngôn ngữ và giao diện phù hợp. Điều này có lẽ không mới mẻ hay đặc biệt gì. Tuy nhiên nó tạo cho người dùng cảm giác thân thiện và dễ sử dụng hơn. Là một kinh nghiệm tốt mà các website lớn nên học tập. Nói tới đây thì ý Pearl là WPB cũng là blog bự nên Pearl cần học tập Google 1 chút. Vậy phải làm sao đây?

Trong HTML có một thuộc tính gọi là lang. Thuộc tính này đóng vai trò chú thích về ngôn ngữ của một trang hay một phần trang web. Nó không ảnh hưởng đến nội dung trang web mà chỉ đóng vai trò hỗ trợ cho các search engine và trình duyệt trong việc phân loại ngôn ngữ tìm kiếm và hiển thị trang web chính xác hơn. Mặc dù không ảnh hưởng đến nội dung trang web. Tuy nhiên người viết CSS lại nảy sinh một nhu cầu là tạo style riêng cho những (phần) trang web được đánh dấu là viết ở một ngôn ngữ nào đó. Đó là lý do mà CSS có thêm 1 pseudo-class gọi là :lang. (Nói nhiêu đó đủ hiểu rồi ha. Lâu rồi Pearl không viết tuts nên thấy không hấp dẫn lắm mặc dù trong đầu ý kiến tràn trề).

Cho một ví dụ chơi nhá. Giả sử bạn có 2 paragraph như thế này

<p lang="vn">WallPearl rất rất là đẹp dzai</p> (ví dụ thôi nhá)

<p lang="en">WallPearl 's very handsome</p> (example only)


Bạn muốn câu tiếng Việt nó đỏ, câu tiếng Anh nó xanh + thêm cái khung cũng màu chữ thì bạn sẽ viết CSS như vầy.

p:lang(vn){color:red;border:1px solid red} 

p:lang(en){color:blue;border:1px solid blue}


Ây có vẻ đơn giản và nói nhỏ nhiều bạn sẽ khoái xài id hơn vì nó ít hơn 2 ký tự ấy nhỉ. Nhưng bù lại lang có giá trị ghi chú ngôn ngữ hơn.

Ở trên là ví dụ đại trà. Bi h Pearl quay lại vụ cái blog. Lâu rồi không làm skin mới (dù vẫn còn rất ham hố nhưng hơi lười + bận). Từ khi MYO đưa ra mấy cái giao diện ngôn ngữ thì bạn đã tính chuyện quậy rồi nhưng mãi bi h mới làm. Cái ý tưởng là bạn sẽ cho thay background blog và 1 số thành phần + thêm câu chào tương ứng với từng giao diện ngôn ngữ. Khi người Nhật ghé sẽ thấy cái background có phong cách Nhật + câu chào bằng tiếng Nhật thì chắc sẽ có cảm tình hơn với chủ nhà mặc dù chủ nhà mù Nihongo. Ấy ý tưởng là thế, bắt tay cái nào. Trước tiên ta sẽ xem cái code language của MYO. MYO có tổng cộng 18 cái giao diện ngôn ngữ với các ký hiệu tương ứng là bg cho BúnGàRi, cs cho Séc, da cho Đan Mạch, en cho cái mà ai cũng biết, es cho Tây Bán Nhà, fi cho Phần Lan, fy cho Hà Lan, hu cho Hungari, it cho Ý, ja cho Nhật, no cho Na Uy, pl cho Ba Lan, ru cho Nga, tr cho Thổ, uk cho Ukraina, vn cho Việt Nam, xx-lol cho con mèo, zh-cn cho Trung Quốc.

Bi h bạn muốn đổi cái background thành hình núi Phú Sĩ khi người dùng bật qua giao diện tiếng Nhật nhá

body:lang(ja){background:url(Fuji.jpg) no-repeat}


Bạn cũng muốn viết cái câu chào bằng tiếng Nhật nữa. Viết ở đâu bi h bạn viết đại ở dưới avatar luôn còn ai thích viết đâu tùy.

#myphoto:lang(ja):after{content:"ブログ WallPearl にようこそ!"} 

(câu CSS này có nghĩa là đăt câu ... phía sau thành phần myphoto khi ngôn ngữ trang web là tiếng Nhật đó)

Tương tự, rãnh quá bạn viết nốt lời cảm ơn người ta comment luôn

#newcomment h3:lang(ja):after{content:"ありがとうございました!"}


Đó chỉ có nhiêu đó thôi là cái blog sẽ có phong cách tắc kè hoa liền. Vì bi h đang là mùa thu nên bạn làm luôn style mùa thu cho tất cả. Vì lý do kỹ thuật nên bạn vẫn chưa tìm được hết các hình ảnh đặc trưng cho mỗi ngôn ngữ nên tạm thời làm đại làm lẹ để đem khoe thôi. Trong đó có sử dụng hình ảnh của skin Y!360, Hi!Baidu, Deviantart và search từ Google quên rồi. Nhân đây xin cảm ơn mấy chỗ đó luôn. Có gì mai mốt Pearl mượn tiếp.

Bây giờ, mọi người thử vào blog Pearl rồi chọn giao diện ngôn ngữ khác và quan sát background, cái phần dưới photo trên sitebar với chỗ comment xem có gì khác hông nhá. À quên cái anh IE vẫn chưa được bác Steve Ballmer cho học xóa mù nên nó hem hiểu mô tê gì vụ này hết nên ai xài IE để vi vu blog Pearl thì sẽ được thấy cái màu xanh u như kỉ.


--------------------------------------------------------
Viết xong ý chính rồi tranh thủ bán tiếp than. Tình hình là 9/8 bạn phấn khởi comeback xong hôm sau bạn đã có thể ăn cơm nhưng cái máy tính nó phân bì nên bạn cho nó đi ăn cháo bù. Công nhận tháng xui, năm hạn có khác. Ủ qua tháng 9 mới chữa cho nó luôn. Tính 9/9 comeback tiếp vào ngày đẹp nhưng comeback hoài thấy dễ ăn dép quá nên thôi 5/9 bon chen khai blog lại luôn. Hi vọng đợt này làm ăn ngon lành tí. Sẵn cảm ơn mọi người đã quan tâm, ủng hộ, spam WPB trong những ngày qua. Xin chân thành cảm ơn!

Opera Unite Sẽ "Sáng Tạo Lại Web"?

, , , ...

Năm ngày trước Opera đã tuyên bố: "Vào ngày 16/6 - 9:00AM, chúng tôi sẽ sáng tạo lại web". Năm ngày sau. Đúng ngày 16/6 Opera đã công bố Opera Unite - một công nghệ của tương lai. Opera Unite là gì và có điểm gì đặc biệt mà Opera lại dám tuyên bố như vậy?



Thật ra Opera Unite chính là một máy chủ web dựa trên trình duyệt Opera. Điểm đặc biệt của Opera Unite so với các dịch vụ và ứng dụng online hiện nay chính là không cần thông qua các máy chủ đúng nghĩa. Tức là bạn có thể chia sẽ những dữ liệu, ý tưởng, làm việc nhóm trên môi trường web với người thân, bạn bè tương tự như tất cả đang ở trong một mạng nội bộ. Mặc dù mỗi cá thể đang ở những nơi khác nhau, sử dụng hệ thống, thiết bị khác nhau, thậm chí không sử dụng trình duyệt Opera (tất nhiên để quản lý thì phải sử dụng trình duyệt Opera tích hợp Unite). Nói thì hơi dong dài, phức tạp một chút. Tốt nhất là chúng ta cứ trực tiếp trải nghiệm Opera Unite sẽ dễ nắm bắt hơn.



Để sử dụng Opera Unite trước hết chúng ta phải download trình duyệt Opera 10 beta tích hợp Unite. Sau khi cài đặt xong, bạn vào Tools > Opera Unite Server > Enable Opera Unite (hoặc chọn Enable Opera Unite từ biểu tượng Unite trên thanh trạng thái (thêm 2 cánh nữa là giống cờ HK nhở p:)). Hộp thoại Opera Unite Setup hiện ra bạn bấm next để qua bước tạo Opera account. Nếu bạn đã có một Opera account thì bấm nút "I already..." để đăng nhập. Sau khi đã đăng nhập bạn chuyển qua bước đặt tên cho máy tính (do một Opera account có thể làm việc trên nhiều máy tính khác nhau nên việc định danh sẽ giúp dễ phân biệt hơn). Ngoài một số tên như home, work có sẽ bạn có thể tự đặt tên (không nên có dấu). Sau bước này bạn đã có thể bắt đầu sử dụng các dịch vụ trên Opera Unite.

Hiện tại Opera Unite có 6 service: chia sẽ file (File Sharing), ghi chú (Fridge), mp3 (Media Player), photo (Photo Sharing), chat (The Lounge), máy chủ web (Web Server). Bạn có thể vào Add để thêm các Opera Unite Service, folder (để nhóm các service như các folder trên Start menu) và các vạch ngăn cách. Ngoài các service do Opera cung cấp thì người dùng còn có thể tự tạo các service và up lên cho những người khác cùng sử dụng. Các Opera Unite Server sử dụng tiêu chuẩn web HTML, Javascript, CSS, SVG, AJAX. Nên một người có kiến thức về các công nghệ trên hoàn toàn có thể tự viết một service cho riêng mình. Tuy nhiên đó là chuyện tương lai còn hiện tại chúng ta sẽ tìm hiểu một chút về các service có sẵn.

Bạn vào View > Toolbas > Panels (hay bấm biểu tượng bên trái tab bar) để mở thanh Panel. Bấm biểu tượng Opera Unite sẽ hiện ra các service. Để sử dụng một service bạn chọn service rồi bấm nút Start (hay trực tiếp nhấp đôi lên server). Đối với các service File Sharing, Media Player, Photo Sharing, Web Server thì khi mới khởi động sẽ có một hộp thoại hiện ra cho phép bạn chọn một folder trong máy để add vào làm nguồn cho mỗi service. Như vậy thì bạn nên phải tạo sẵn các folder chuyên dụng chứa file, nhạc, ảnh, web. Khi muốn chia sẽ cái gì thì trực tiếp chép vào các folder đó luôn. Mỗi service chỉ được add một folder nguồn nhưng bạn có thể thay đổi folder nguồn cho mỗi serice bằng các chọn Properties từ menu chuột phải.

Một thao tác quan trọng khác là giới hạn khả năng truy cập. Thao tác này như nhau trong 4 service File Sharing, Media Player, Photo Sharing, Web Server. Có 3 tùy chọn chính là Public (Bất cứ ai cũng truy cập được những thứ chia sẽ), Limited (đặt password bảo vệ truy cập), Private (tự biên, tự diễn luôn). Chọn Save Changes để lưu lại thiết lập. Đối với Louge thì bạn đánh dấu kiểm Enable Password để đặt password giới hạn truy cập. Sau khi đã hoàn thành bước này thì bạn copy liên kết ở ô "Send this URL..." để chia sẽ với mọi người (bỏ phần từ /access_content/... nếu bạn đặt liên kết công khai).

Theo kiểm tra của Pearl thì đã có thể sử dụng các trình duyệt khác truy cập các trang service của Pearl. Có thể xem photo, web, ghi chú, chat. Riêng phần file và media thì không thể tải được (có lẽ tại mạng rởm). Vẫn chưa test trên các hệ điều hành hay thiết bị cầm tay nên chưa biết ra sao. Nói chung không đến mức là một sự sáng tạo lại web nhưng đây là một ý tưởng đáng quan tâm và chắc chắn sẽ là một mũi nhọn của trình duyệt Opera so với các đối thủ.



Tham quan Unite của Pearl nhá p: click

Lưu ý: Đây là dạng chia sẽ client 2 client nên yêu cầu máy chia sẽ phải đang chạy Opera Unite.

Dịch Văn Bản Với Google Translate Client

, , , ...



Ngôn ngữ là một chiếc chìa khóa quan trọng trong giao tiếp và học thuật. Nhưng không phải ai cũng có một năng lực ngôn ngữ tốt. Chính vì vậy mà người ta luôn cố gắng tìm ra những biện pháp tắc để tiếp cận lĩnh vực này. Khoa học máy tính cũng đã tạo ra được những chương trình giúp thông dịch giữa các loại ngôn ngữ thông dụng. Google Translate (GT) chính là một chương trình như vậy. Miễn phí, mạnh mẽ, dễ dùng. Tuy nhiên mỗi lần muốn sử dụng GT chúng ta vẫn cần phải copy nội dung hay url trang web > truy cập vào GT > paste vào khung > chọn ngôn ngữ đầu - đích > translate. Google Translate Client chính là chương trình sẽ giúp bạn lượt bỏ những giai đoạn nhàm chán trên. Sau khi cài đặt chương trình xong, chương trình sẽ yêu cầu bạn chọn ngôn ngữ đích mặc định. Bạn thử mở một trang web hay một ebook nào đó rồi chọn một đoạn văn bản (Google Translate Client vẫn chưa có khả năng dịch trang web). Bạn click vào biểu tượng chữ G để chương trình phiên dịch.

Lưu ý:
+ Pop up thông dịch mặc định của chương trình không hỗ trợ tốt tiếng Việt nên tốt hơn hết bạn nên dùng cửa số thông dịch (Chọn Open từ menu chuột phải biểu tượng chương trình trên system tray).
+ Biểu tượng chữ G trên system tray màu xám hay xanh có nghĩa là chương trình chương kết nối với server Google hay đã bị disable.
+ Có thể thiết lập "hành động dịch", hiển thị pop up dịch, ngôn ngữ đích trong Settings (mở từ menu chuột phải biểu tượng chương trình trên system tray).



Lâu quá không động tay, động chân. Càng ngày càng lười T___T

Đăng Nhập Cùng Lúc Nhiều Tài Khoản Trên Mọi Trang Web

, , , ...

Trong cái thế giới mà việc định danh một người dựa trên các id, username như internet thì việc một người sở hữu một vài account trên một trang web là việc bình thường. Một người hoàn toàn có thể tạo ra vài mailbox, profile hay blog cá nhân trên một trang mạng. Tuy nhiên làm sao để có thể cùng lúc đăng nhập cùng lúc các tài khoản này để có thể cùng lúc check Gmail, cập nhật Twitter, nhảm sự trên blog? Có thể bạn sẽ sử dụng cùng lúc nhiều trình duyệt. Đó cũng là một giải pháp. Nhưng nếu bạn đang sử dụng IE8 hay Google Chrome thì việc này đã "được hỗ trợ". Nguyên lý ở đây là các trang web sử dụng cookie để giữ vết tình trạng đăng nhập của người dùng. Cho nên nếu trình duyệt có chế độ nào đó để lại truy xuất trang web đó với một cookie mới thì ta lại có thể login tiếp.

Đối với IE8

Multi-login với chức năng New Session của IE8

Trên IE8 có 2 tính năng mới đáng chú ý đó là Inprivate Browsing và New Session. Inprivate Browsing là một chế độ lướt web mà các dữ liệu trong quá trình lang thang net bao gồm các file tạm, cookie, history,... sẽ bị xóa khi tắt đi chế độ này (tính năng kiểu này rất thích hợp cho những tín đồ ma giáo đây). Do tính năng đặc dị này nên các thứ dữ liệu kể trên (bao gồm cookie) trong chế độ lướt web này sẽ được lưu trữ tách biệt so với chế độ bình thường. Do đó ta có thể lợi dụng tính năng này để cùng lúc đăng nhập vào một trang web với 2 account (1 ở chế độ lướt web thường và 1 trong chế độ private). Thử tí nhá. Bạn bật IE8 lên rồi đăng nhập vào My Opera (hoặc trên một trang mạng bất kỳ nào đó). Sau đó bấm Ctrl + Shift + P để bật Inprivate Browsing. Trong cửa sổ IE mới hiện ra, bạn thử đăng nhập My Opera với một username khác. Bây giờ thì bạn đã có thể cùng lúc sử dụng 2 account để spam rồi nhá. Một mẹo nhỏ là bạn có thể thêm vào thông số -private ở thuộc tính Target của shortcut IE8 để mở nhanh chế độ Private bằng shortcut.

Biện pháp ở trên chỉ có thể giúp bạn đăng nhập cùng lúc 2 account. Nhưng nếu bạn muốn đăng nhập cùng lúc với nhiều account hơn thì phải sử dụng một chức năng khác của IE8 là New Session. Với chức năng này bạn có thể mở nhiều cửa sổ session (phiên làm việc) để lướt web. Mỗi session riêng biệt này sử dụng cookie riêng của mình (không chia sẽ cookie) cho nên chúng ta có thể lợi dụng điều này để đăng nhập cùng lúc với nhiều account. Để mở một session mới bạn vào File > New Session (bấm phím Alt để mở menu bar ẩn). Hoặc một mẹo khác với shortcut là thêm -nomerge vào thuộc tính Target của shorcut IE8. Mỗi lần muốn mở session mới bạn chỉ cần dùng shorcut là được.

Lưu ý: Các cửa sổ và thẻ thuộc về session nào thì chia sẽ cookie với session đó, và đừng nhầm lẫn một session mới với một cửa sổ mới.

Đối với Google Chrome
Có vẻ như Microsoft và Google "tư tưởng lớn đụng nhau" cho nên với 2 tính năng kể trên của IE8 thì trong Google Chrome cũng có 2 tính năng tương tự nhưng cao cấp hơn. Do đó Pearl sẽ không bàn thêm nhiều nữa mà chỉ nói về những điểm khác biệt.

Đầu tiên là chế độ Incognito của Google với tính năng tương tự Inprivate Browsing. Bạn bấm tổ hợp phím Ctrl + Shift + N để bật chế độ này hay thêm -incognito vào thuộc tính Target của shortcut.

Multi-login với chế độ Incognito của Chrome

Tiếp theo là tính năng tạo Profile lướt web của Google. Đây là một tính năng giúp phân chia các thông tin lướt web theo profile. Giúp cho những thành viên dùng chung máy tính tránh khỏi các vấn đề nhạy cảm mà vẫn không cần dùng tính năng Incognito. Và vì vậy mà các dữ liệu phát sinh khi lướt web của mỗi profile cũng sẽ được lưu trong các folder riêng. Chính đều này nên ta có thể tạo ra nhiều profile để có thể tiến hành multi-login. Bạn vào Control (cái nút icon chìa khóa ấy) > New window in profile > New Profile. Bạn gõ vào tên profile muốn tạo. Có thể check vào Create a desktop shortcut để tạo shortcut khởi động nhanh Google Chrome với profile này > OK. Bây giờ bạn đã có thể đăng nhập vào My Opera (hoặc trang mạng bất kỳ) với nhiều account cho riêng mỗi một profile. Để mở một cửa sổ mới cho profile nào đó bạn vào Control > New window in profile > tên profile. Hay có thể bấm tương ứng tổ hợp phím Ctrl + Shift + profile id.

Hiển Thị Ảnh PNG Trong Suốt Trên IE 5.5+ (Tập 2)

, , , ...

Lần trước Pearl đã có một bài giới thiệu về cách fix lỗi hiển thị ảnh PNG trong suốt cho IE 5.5+. Tuy nhiên, cách thức tương đối dài dòng, khó sử dụng và có một lỗi nho nhỏ mà trong bài viết lần trước Pearl đã chưa kịp giới thiệu (tại chưa thấy phát sinh :D). Trong bài viết lần này Pearl sẽ giới thiệu với mọi người một cách thức đơn giản hơn để có thể làm công việc này đồng thời đền bù thêm cách thức fix cái lỗi nho nhỏ kia luôn thể.

Về phương thức thì bài viết lần này hoàn toàn giống với bài trước tức là sử dụng bộ lọc "AlphaImageLoader" để hỗ trợ IE5.5+ hiển thị được ảnh PNG trong suốt. Tuy nhiên không rắc rối như cách thức trực tiếp đã giới thiệu ở lần trước. Lần này chúng ta sẽ sử dụng một extension của IE là HTML Component (có định dạng *.HTC). HTML Component như tên gọi của nó chính là một thành phần HTML bao gồm stylesheet, script được đóng gói lại để có thể tham chiếu cho nhiều trang web. Giúp thuận tiện hơn trong việc xây dựng các ứng dụng web như sự quảng cáo của Microsoft (mặc dù W3C đã ignore công nghệ này của Microsoft). Và một điều thú vị là chúng ta có thể nhúng HTML Component vào trang web thông qua CSS với thuộc tính behavior.

Nhưng trước tiên chúng ta sẽ phải xây dựng một HTML Component để giúp hiển thị ảnh PNG trong suốt cái đã. Ý tưởng ở đây đó là chúng ta sẽ viết một script để nhận diện hình ảnh định dạng PNG trên trang web rồi sau đó chúng ta sẽ replace những ảnh PNG này bằng một ảnh trắng và đưa ảnh PNG vào bộ lọc AlphaImageLoader.

Ví dụ ban đầu trên trang web của bạn có một ảnh PNG như sau

<img src="WP-Logo.png" width="250" height="250">


Chúng ta sẽ viết một đoạn script để đọc trang web và nếu nó đọc thấy ảnh WP-Logo.png thì sẽ replace img tag như trên thành thế này

<img src="blank.gif" style="width: 250px; height: 250px; filter:progid:DXImageTransform.Microsoft.AlphaImageLoader(src='WP-Logo.png', sizingMethod='scale')" />


Cơ chế là như vậy thôi nhưng nói thật Pearl cũng hem biết viết cũng hem có thời gian ngâm cứu cách viết mấy HTML Component này nên bạn nào có nhu cầu tìm hiểu sâu về vấn đề này thì có thể tham khảo tại đây.

Trong bài viết này Pearl sẽ chỉ giới thiệu về một HTML Component do TwinHelix xây dựng sẵn với các chức năng như sau:
+ Tự động hỗ trợ trong suốt cho tất cả ảnh PNG trên trang web (tất nhiên ảnh chỉ hỗ trợ ảnh PNG trong suốt) bao gồm ảnh định nghĩa trong thẻ img, ảnh nền CSS.
+ Hỗ trợ script chuyển src, class name của thành phần ảnh HTML.
+ Hỗ trợ CSS định vị, repeat cho ảnh (cần phải dùng thêm javascript).

Bây giờ bạn download file IE PNG Fix 1.0 từ TwinHelix về giải nén được file bank.gif và iepngfix.htc. Bạn upload 2 file này lên host của mình. Bây giờ bạn chỉ cần thêm thuộc tính behavior: url(iepngfix.htc) vào một selector nào đó trong CSS để áp dụng hiệu ứng cho selector đó. Ví dụ:

div, img, a, input { behavior: url (iepngfix.htc) }


Lưu ý: Url file htc dựa trên liên hệ của file htc với trang web muốn áp dụng hiệu ứng chứ không phải là với file CSS như trường hợp url của background. Ảnh blank.gif nên đặt cùng vị trí với file htc hoặc thay đổi url cho ảnh blank.gif trong file htc. Nếu trang web của bạn sử dụng quá nhiều ảnh PNG thì sẽ load lâu hơn.

Một lỗi nghiêm trọng khi sử dụng bộ lọc AlphaImageLoader đó là nếu như áp dụng bộ lọc này cho một thành phần A. Đồng thời thành phần A này được đặt CSS position là static, relative hay absolute. Trong thành phần A này lại chứa các thành phần link B. Hệ quả đó là các liên kết B bên trong thành phần A sẽ không thể click. Biện pháp khắc phục:

- Nếu thành phần A có position là static thì chúng ta sẽ thêm vào thành phần B thuộc tính CSS position:relative và z-index:1

- Nếu thành phần A có position là relative hay absolute thì phải thêm một innerwrap C trong thành phần A. Và chuyển hiệu ứng fix PNG từ A sang C. Rồi tiếp tục xử lý như cách trên. Tức là dùng C làm trung gian.

Nếu muốn sử dụng thuộc tính CSS position và repeat cho ảnh PNG trong suốt thì bạn phải sử dụng thêm javascript trong phiên bản IE PNG Fix 2.0 beta

Xem ví dụ minh họa cho IE PNG Fix 1.0 (non JS) và IE PNG Fix 2.0.

Những Thủ Thuật Với URL của Youtube

, , , ...

Bạn thường xem video trên Youtube, bạn biết cách embed Youtube video vào web cá nhân, bạn biết download video từ Youtube,... Youtube hầu như đã trở thành một câu chuyện cổ tích thời @ mà bất cứ một netizen nào cũng biết kể. Nhưng cũng như bao câu chuyện cổ tích chỉ được phổ biến ở những chi tiết quan trọng thì có thể vẫn còn một vài "tiểu tiết" mà bạn vẫn chưa biết về Youtube (hoặc không quan tâm). Và thật ra thì Pearl cũng ứ quan tâm. Nhưng ngày dài chẳng để làm gì và trong khi không có quá nhiều thứ hấp dẫn để post thì ta cứ mà tìm một cái gì đó post cho blog nó đỡ mọc rêu? Nhưng nhìn kỹ thì cũng có một vài tips khá thú vị đấy :wink:

Chiêu 1: Xem video chất lượng cao
Mặc dù Youtube đã có tùy chọn chuyển sang chế độ xem HD (trên một số ít video tương thích có biểu tượng HD trên player). Tuy nhiên, bạn hoàn toàn có thể dùng tips này để xem video chất lượng cao tại Youtube với nhiều lựa chọn hơn so với những video thông thường (FLV, 320 x 240 Res và 64kpbs Mono ABR) bằng cách thêm &fmt=6 (FLV, 480 x 360 Res và 96kbps Mono CBR), &fmt=18 (MP4, 480 x 360 Res và 128kbps Stereo) hay &fmt=22 (MP4, 1280 x 720 Res và 232kbps Stereo) vào url Youtube video. Ví dụ: một đoạn video trong K-drama Boys Over Flowers xem ở chế độ normalHD.

Chiêu 2: Nhúng video chất lượng cao vào web cá nhân
Xem video chất lượng cao thì được rồi nhưng làm sao để nhúng video chất lượng cao vào web/blog cá nhân. Thật ra thì chức năng này đã được Youtube hỗ trợ trong phần customize embed với tùy chọn Play in HD. Tuy nhiên bạn cũng có thể chủ động thêm các thông số &ap=%2526fmt%3D18 hay &ap=%2526fmt%3D22 vào phần url trong đoạn code embed.

Chiêu 3: Xả nhanh tới đoạn mong muốn
Bạn muốn chia sẽ với bạn bè một cảnh hấp dẫn nào đó trong một video nhưng lại không muốn người bạn phải đợi lâu. Trong tình huống đó bạn có thể thêm #t=xxmyys vào url trang xem video để bắt Youtube bắt đầu play từ vị trí xx phút yy giây của đoạn video đó. Ví dụ như cảnh hot đó bắt đầu từ thời điểm 1 phút 50 thì bạn sẽ thêm vào url #t=01m50s.

Chiêu 4: Nhúng một phần video vào web cá nhân
Với mục đích như ở trên nhưng bạn muốn nhúng vào trang web thay vì share link như cách trên. Bạn sẽ phải thêm vào thông số &start=x để play video bắt đầu từ vị trí x giây. Ví dụ như ở trên bạn sẽ phải thêm &start=110 để play video bắt đầu từ vị trí 1 phút 50.



Chiêu 5: Autoplay video nhúng
Hình như hổng ai khoái cái vụ autoplay này vì cái gì cần xem, không cần xem nó cũng play hết => tốn băng thông. Tuy nhiên trong trường hợp muốn autoplay cho các video nhúng trên web của mình bạn chỉ cần thêm vào thông số &autoplay=1 vào url video.

Chiêu 6: Tùy chọn play repeat video
Để play repeat một video thay vì phải nhấn nút replay sau khi play xong bạn còn có thể thêm thông số &loop=1 vào url video. Cái này cũng có thể áp dụng khi nhúng vào web.

Chiêu 7: Ẩn search box trên video embed
Khi bạn xem hết một Youtube video nhúng trên một trang web thì player sẽ hiện ra một thanh search giúp cho bạn có thể tìm thêm nhiều video khác từ Youtube. Nếu bạn cảm thấy không thích thì có thể thêm vào url trong embed code thông số &showsearch=0

Chiêu 8: Ẩn danh sách video liên quan
Như một sự tiện lợi hay một cách thức dụ dỗ khách xem mà sau khi xem xong một video. Youtube sẽ list cho bạn một số video cùng chủ đề với video bạn đang xem. Trong trường hợp bạn không thích tiện ích này của Youtube thì bạn có thể thêm &rel=0 vào url của video.



Chiêu 9: Vượt qua các rào cản địa lý và tuổi tác
Sẽ có một số video trên Youtube chỉ có thể được xem ở một khu vực hay khi bạn đã đủ tuổi. Trong trường hợp này cũng có khá nhiều các giải quyết như bạn có thể fake IP, xem video thông qua một số trang trung gian, download, đăng nhập bằng 1 account có tuổi hợp lệ. Nhưng nhanh nhất đó là bạn chỉ cần chuyển url video từ dạng
http://www.youtube.com/watch?v=<video id>
thành
http://www.youtube.com/v/<video id>


Chiêu 10: Upside down Youtube video
Đây là một chiêu mà Pearl học được hồi 1/4 nhưng chưa lừa ai. Chỉ cần thêm thông số &flip=1 vào video url thì toàn bộ nội dung trên trang xem Youtube sẽ bị lật ngược lại và có thể một số người sẽ nghĩ máy họ bị hỏng.

Chiêu 11: Download Youtube video
Như đã nói ở trên việc download video từ Youtube đã là một đề tài quá quen thuộc và hầu như ai cũng có một vài cách để download, convert Youtube video. Tuy nhiên, nếu bạn muốn làm cho việc download video ở Youtube trở nên thú vị hơn thì có thể sử dụng cách thêm từ kick vào trước youtube trong url.

Làm Skin Ăn Liền Cho Opera

, , , ...



Xử lý xong em Cáo. Hôm nay, Pearl xin giới thiệu với mọi người thêm cách để làm điệu em O luôn. Thật ra thì Pearl thấy làm skin cho Opera tương đối đơn giản hơn. Cụ thể là skin Opera đều được đóng gói thành 1 file .zip. Trong đó sẽ chứa các folder backgrounds, icons, buttons và 1 file cấu hình skin.ini (cũng có cấu trúc tương tự CSS vậy). Cho nên việc làm skin Opera cũng gần với công việc thiết kế một template bằng CSS. Cái quan trọng là bạn cần phải biết về code dùng trong file skin.ini cũng như phải tẩn mẩn thiết kế hàng trăm graphics sẽ dùng cho skin. Tuy nhiên hôm nay Pearl sẽ không bàn tới chuyện làm toàn bộ một skin to tát như vậy. Hôm nay Pearl sẽ chỉ giới thiệu với mọi người 1 cách thức để tự làm 1 skin đơn giản mang phong cách cá nhân nhưng tất nhiên cũng không kém phần đẹp (cái này là tùy vào thẩm mỹ của từng người). Cái ý tưởng là chúng ta sẽ chỉ thay đổi background, text color cho phần đầu và chân của trình duyệt thôi. Nó hoàn toàn tương tự với phương thức của add-on Personas mà Pearl đã giới thiệu.

Theo như ý tưởng ở trên thì việc đầu tiên là chúng ta sẽ phải tìm trong file skin.ini section (có tính năng định danh như selector của CSS vậy) quy định về phần đầu và chân của trình duyệt. Section [Browser Window Skin] quy định style của các vùng bao gồm một số toolbars như Mainbar ([Mainbar Skin]), Personal Bar ([Personalbar Skin]), Tab Bar ([Pagebar Skin]), Status Bar ([Statusbar Skin]) và cả Menu ([Menu Skin]) nên sẽ thích hợp cho công việc này. Hơn nữa trong Opera cũng có một cách thức thể hiện ảnh nền rất hay là BoxTile. Theo đó ảnh nền của một section có thể được định nghĩa lên đến 9 ảnh bao gồm 4 góc, 4 cạnh và trung tâm. Cho nên chỉ với 1 section [Browser Window Skin] chúng ta hoàn toàn có thể tô vẽ thoải mái background cho 2 vị trí đã định. Vấn đề khó khăn còn lại chỉ là section [Browser Window Skin] nằm dưới các section quy định style cho Menu, Toolbars cho nên sẽ bị ảnh nền các thành phần này che mất. Để giải quyết vấn đề này thì hoặc chúng ta sẽ xóa đi phần định nghĩa ảnh nền cho các Menu, Toolbars trên. Hoặc chúng ta sẽ giảm độ mờ đục của chúng xuống. Để đơn giản và giúp skin bóng bẩy hơn Pearl sẽ chọn cách 2 là giảm độ mờ đục các ảnh này xuống.

Khởi đầu chúng ta sẽ vào thư mục skin chuẩn của Opera theo đường dẫn %ProgramFiles%/Opera/Skin (gõ trong Run hay Address Bar của Explorer). Chúng ta sẽ copy file skin chuẩn của Opera là standard_skin.zip. Mở file standard_skin.zip copy bằng WinRar (đáng lý là giải nén rồi làm nhưng hình như Opera không làm việc với các skin đóng gói bằng WinRar và cả Windows Compress nên bài hướng dẫn này Pearl sẽ làm trực tiếp từ WinRar luôn). Trong WinRar chúng ta sẽ chọn file skin.ini và bấm Ctrl + C để copy. Vẫn để nguyên cửa sổ WinRar chúng ta sẽ chuyển qua 1 thư mục nào đó bên Explorer và bấm Ctrl + V để paste file skin.ini. Mở file skin.ini này lên. Chúng ta có thể ghi chú một số thông tin về skin chúng ta đang thực hiện ở section [Info]. Sau đó chúng ta sẽ xóa đi các thuộc tính ở section [Browser Window Skin] và viết lại cho phù hợp với skin đang làm.

Nếu bạn chỉ muốn đặt một background ở phần top và 1 background ở bottom thì bạn sẽ thêm các thuộc tính sau vào section [Browser Window Skin]

[Browser Window Skin]
Type = BoxTile
Tile Top = Top.jpg
Tile Bottom = Bottom.jpg
Color = #d9dde2

Lưu ý: bạn nên chọn ảnh làm background có kích thước phù hợp. Theo Pearl thì ảnh nền ở phần đầu nên có kích thước bằng bề ngang độ phân giải hiện hành trên màn hình máy bạn và 200px cho chiều cao. Tương tự ảnh nền ở phần chân sẽ có chiều cao khoảng 100px. Nếu chiều ngang của ảnh không đủ mặc định ảnh sẽ được repeat theo phương ngang. Riêng về thuộc tính Color = #d9dde2 sẽ quy định màu nền vùng trống nếu ảnh của bạn bị hụt.

Sau khi đã chỉnh sửa các thông số trên cho file skin.ini. Chúng ta sẽ lưu lại và copy nó từ Explorer paste thẳng vô cửa sổ WinRar bằng Ctrl + V (mặc định WinRar sẽ overwrite nó lên file skin.ini cũ). Công việc tiếp theo là bạn sẽ phải copy 2 file ảnh Top.jpg và Bottom.jpg đã chuẩn bị sẵn vào file standard_skin.zip copy luôn (nằm cùng chỗ với file skin.ini). Bây giờ bạn đóng file standard_skin.zip copy lại và rename nó thành một cái tên phù hợp hơn. Chép nó lại vào thư mục skin chuẩn của Opera. Bây giờ chúng ta sẽ khởi động Opera lên và bấm Shift + F12 để mở hộp thoại Appearance lên. Trong thẻ skin chúng ta sẽ có tên skin chúng ta vừa tạo. Chọn nó và ... không thấy có chuyện gì xảy ra. Đó là do ảnh nền của các Toolbars và Menu đã che mất ảnh nền mà chúng ta vừa thực hiện ở trên rồi. Cho nên công việc kế tiếp của chúng ta sẽ làm là tìm những ảnh nền của các Toolbars, Menu này và giảm độ mờ đục của nó xuống. Các ảnh liên quan là mainbar.png, pagebar*.png và statusbar.png trong folder backgrounds. Các ảnh pagebar*.png và toolbar-hover.png trong folder buttons. Chúng ta copy các ảnh này ra ngoài như đã làm với file skin.ini rồi dùng 1 chương trình chỉnh sửa ảnh trên máy bạn có để giảm độ mờ đục xuống khoảng 30%. Chép đè toàn bộ chúng vào lại vị trí cũ. Bây giờ bạn thử khởi động lại Opera và chọn skin mới tạo xem. Bạn đã thành công rồi đó.

Nếu cảm thấy các ảnh nền làm cản trở việc hiển thị text cho các Toolbars và Menu thì bạn edit lại file skin.ini và thêm thuộc tính Text Color = #yourcolor là một mã màu bạn chọn vào trong 2 section [Browser Window Skin] và [Menu Button Skin].

Tất cả công việc chỉ có vậy. Tuy nhiên để đơn giản hơn thì Pearl đã chuẩn bị sẵn cho các bạn một file skin đóng gói đã được giảm độ mờ đục cho các ảnh nền Toolbars, Menu cũng như đã được chỉnh một số thông số cơ bản cho skin.ini. Công việc của bạn giờ đây chỉ là tải file skin mẫu này về và copy 2 file Top.jpg và Bottom.jpg đã chuẩn bị sẵn vào nữa là được.

Download Skin Sample


Ngoài ra Pearl cũng có làm một số skin theo cách này. Mọi người có thể vào đây xem và download về dùng.

Làm Điệu Cho Firefox

, , , ...

N đến nhà P chơi

N: Cái theme Firefox của ông đẹp quá ha
P: Uhm
N: Ông làm sao hay dzậy?
P: Là sao? (giả ngu)
N: Ý tui là làm sao ông đưa cái hình của ông vô đó
P: Èm, cái này là bí mật à. Mà bà hỏi chi vậy?
N: Thì tui cũng đưa hình tui lên rồi đem khoe nhỏ T, tối ngày nó chê tui "gà" i tờ
P: À, ra vậy (Bà mà đem hình lên chắc Firefox nó ngỏm luôn quá T__T)
N: Vậy là ông dạy tui há (hớn hở)
P: Cái này khó lắm đó
N: Thì khó mới nhờ ông dạy nè (nịn nọt)
P: "..."
N: Dạy đi, mai tui mời ông ăn kem
P: Èm, thôi được rồi. Mệt mấy bà quá chừng
N: (Hehe)
P: Mà cái này có nhiều cách lắm đó
N: Thì ông dạy tui cách nào dễ đó
P: Vậy tui dạy bà làm theme bằng add-on Personas hé
N: Uhm

P: Đầu tiên bà vô đây. Nhấn vô nút Add to Firefox > Bấm Install now trên hộp thoại Software installation để cài add-on Personas. Firefox sẽ yêu cầu bà khởi động lại. Bà bấm vô nút Restart Firefox rồi đợi một chút cho chương trình khởi động lại.  Xong rồi, bà thấy cái theme này ngon hông.
N: Ngon. Mà bộ chỉ có vậy thôi hả?
P: Chưa đâu. Còn nhiều cái hay lắm. Personas là một add-on giúp đổi một vài phần trên theme hiện hành của Firefox (dạng như together CSS vậy đó, mà tui tạm gọi nó là Preset (mẫu sẵn) luôn). Nè bà bấm lên icon chương trình hình con Cáo trên gốc trái bên dưới màn hình Firefox xem. Có thấy mấy cái mục menu hông. Đó là các category Preset do người dùng Firefox tạo và upload lên share trên mạng. Bà thử mouse over lên 1 mục xem. Đợi tí Firefox sẽ load cái Preset đó lên. Bà thấy cái nào "hợp rơ" thì click vô chọn luôn. Còn nếu không tìm được cái nào hợp thì bà bấm vô View gallery để ngâm cứu thêm mấy Preset mới được lưu trữ trên server của Personas. Cách thức cũng như trên menu add-on vậy, bà mouse over để xem hiệu ứng và click để sử dụng. Ngoài ra bà còn có thể tạo account rồi upload Preset của bà lên share cho thiên hạ xài chơi.
N: Nhưng mà nãy giờ ông chưa dạy tui cách làm mấy cái Preset này thì lấy đâu mà cứ share với sớt
P: Đừng nôn nóng. Bà có thấy cái mục Custom Persona trên menu add-on không. Bà click vô Edit để mở trang Custom Persona ra. Nếu không thấy mục này thì bà click vô Preferences rồi chọn Show Custom Persona in menu > OK.
P: Trong trang Custom Persona. Bà đặt tên cho cái Preset của bà chỗ Name đi. Ví dụ như N xí xọn vậy
N:  Thôi đừng nhiều chuyện nữa. Header này là sao đây?
P: Header là background phần đầu trên giao diện Firefox nè. Nè cái phần Menubar với Toolbars đó. Giờ bà bấm nút Browse tìm đại cái hình nào trên máy rồi mở ra thử coi.
N: Vậy tui chọn tấm này nghen.
P: Uhm. Được đó. Nhưng mà muốn đẹp thì hông phải cái ảnh nào cũng dùng được đâu. Nếu chuyên nghiệp tí bà có thể tự đì zai. Còn "gà" hơn thì bà cứ lên Google search mấy cái wallpaper bự bự, đẹp đẹp rồi crop lại cũng được. Theo khuyến cáo của Personas thì nên dùng ảnh định dạng PNG hay JPG có kích thước 3000 x 200 pixel và không nên vượt quá 300kb.
N: Vụ này lu bu quá chời , không chừng bữa nào tui đưa hình cho ông làm dùm quá
P: "..."
P: Tuy nhiên cái đó là khuyến cáo chung của Personas. Còn bà làm tự xài thì chỉ cần làm ở kích thước bề ngang bằng với cái độ phân giải ngang của màn hình nhà bà là được.
N: "..."
N: Vậy còn cái Footer chắc là background phần chân Firefox hả
P: Lâu lâu mới thấy bà thông minh . Footer đó là background cho thanh Status với cái Searchbar (Ctrl + F). Bà thử Browse rồi chọn một cái ảnh xem
N: Oki
P: Được rồi. Mà background của Header sẽ có vị trí là top left còn Footer có vị trí là bottom left nên lúc crop ảnh bà cũng canh me để background hiển thị chính xác hơn.
N: "..." (Ngu ngơ) Uhm, còn cái Text color là màu chữ ha
P: Uhm, Text color là màu chữ của mấy lable trên phần Header lẫn Footer của Firefox. Nếu bà chọn cái background cho 2 phần đó mà thấy mù mịt quá thì đổi màu chữ ở đây cho dễ nhìn.
N: Còn Accent color là gì?
P: Ai biết . "Màu nhấn" mà tui hông thấy nó "nhấn" chỗ nào nên cứ kệ. Rồi bà OK luôn đi.
N: Phùuuu. Cuối cùng cũng xong.
P: Uhm. Mai mốt muốn đổi cái khác bà vô mục N xí xọn > Edit sửa lại là được.
N: >_< Đủ rồi nghe. Mà cái này không save được mà cứ có 1 cái edit hoài hả ông. Với lại tui thấy cái ảnh làm background ngắn quá nếu nó repeat lại được thì đỡ quá
P: Chèm. Muốn làm được vậy thì bà phải xài add-on AnyColor mới được.
N: Vậy ông chỉ tui luôn đi.
P: Mệt bà quá. Ăn chầu kem này xong chắc tui bệnh quá T__T
N: ^__^

Cái này làm bằng wallpaper crop

P: Bà vô đây đi. Click vô Add to Firefox để cài như lúc nãy.
N: Tui biết rồi
P: Rồi bà Disable cái Personas luôn đi. Lỡ không nó đụng
........................................
N: Sao cái này nhìn xấu quá ông ơi
P: Uhm, AnyColor hiện không có dịch vụ share như Personas nên mẫu mã tương đối ít và hơi xấu. Bà bấm cái nút Add toolbar button để nó thêm cái nút lên toolbar cho dễ làm việc.
P: Oki. Bà đóng trang Start page luôn đi. Mấy cái khác bà tự ngâm cứu. Tui chỉ chỉ cho bà cách làm 1 Preset với AnyColor thôi.
P: Bà click vô cái icon AnyColor coi rồi chọn Options coi. Mở trang Appearance. Phần Overall là phần quy định màu nền, màu nổi và màu chữ chung cho Firefox.
P: Background color là màu nền cho Menu, hộp thoại trong Firefox. Bà click vô cái ô màu bên phải rồi kéo mấy dãy Hue, Saturation với Light để chọn một màu thích hợp rồi click ra ngoài cùng chọn màu để chọn.
P: Được rồi. Mấy phần khác bà cũng làm tương tự
N: Ê, vậy cái Highlight color là màu mấy cái tiêu đề vùng trong mấy hộp thoại hả ông? :idea:
P: Uhm. Còn cái phần tiếp theo thì cũng tương tự Personas. Cái Header Image URL là đường dẫn file ảnh cho phần đầu. Footer Image URL là đường dẫn file ảnh cho phần chân. Cái AnyColor này cẩn thận hơn Personas nên nó chia Text color ra cho 2 phần Header và Footer luôn.
N: Còn cái Image repeat là cho ảnh ngắn repeat cho đầy mấy chỗ trống hả ông?
P: Đúng rồi. AnyColor hỗ trợ cả Repeat theo 2 phương ngang và dọc (X & Y) nên bà có thể yên tâm không sợ bị hụt nữa rồi.
P: Xong rồi. Bà bấm Preview để xem thử xem. Mà mai mốt bà chọn xong thứ nào bấm Preview luôn để xem mà chỉnh liền chứ làm xong hết mới Preview mà nó xấu òm chỉnh lại mệt nghỉ.
N: Rồi giờ tui bấm OK nghen.
P: Khoan. Bà qua trang Presets đi. Bấm vô New rồi gõ vô cái tên cho Preset vừa làm.
P: OK. Giờ bà chọn cái Preset vừa tạo rồi bấm Save thì mấy cái thiết lập nãy giờ bên kia sẽ được lưu vô cái Preset này.
P: Bà bấm nút Load rồi OK nữa là xong.
N: Xong rồi hả
N: Mà sao cái tui làm nó hông có bóng bẩy như của ông lúc nãy đâu
P: Tham lam vừa thôi. Bà muốn bóng thì lại vô Option, trang Advanced, Theme tweaks. Rồi bà double click vô cái Misc: Gloss (tab mode) với Misc: Gloss (bookmarks mode) coi.
N: Được rồi nè ^__^

Làm theo skin iPearl của blog Pearl

P: Mấy cái còn lại cũng không quan trọng lắm. Bà về nhà rồi từ từ vọc.
N: Cảm ơn ông nghen. Thôi tui về luôn. Lần nào qua đây cũng làm phiền ông.
P: Không có gì. Dù sao ngày mai tui cũng được ăn kem ^__^
N: Xì. Mà lỡ tui quên nữa chừng. Hay có gì tui réo ông qua tiếp
P: Thôi đi bà. Có gì thì lên blog tui mà coi.
P: Lát tui cũng viết entry hướng dẫn. Có quên gì thì vô đó xem lại được rồi.
N: Thôi cũng được. Vậy thôi tui về.
P: Bibi. See you tomorrow ^__^

Lâu lâu viết 1 tuts phong cách xì tin hi vọng dễ nuốt hơn :D

PageZipper - Xem Nhiều Trang Trên Một Trang

, , , ...

Next, next và next. Pearl cá là đây là một công việc mất hứng nhất khi người ta cần xem một trang web hay galery có phân trang. Cứ như đang xem phim mà gặp quảng cáo vậy. Quảng cáo thì không thể cấm được rồi. Nhưng mà để khỏi next, next thì PageZipper chính là một biện pháp. PageZipper là một javascript giúp xác định trang kế tiếp trang bạn đang xem và nối dài phần nội dung đó vào ngay trang hiện hành giúp bạn có thể xem ngay nội dung trang kế mà không cần click next.



Cài đặt
Do là một chương trình javascript nên PageZipper tương thích với hầu hết các trình duyệt hỗ trợ javascript. Mọi người xem cách cài đặt chi tiết cho trình duyệt của mình tại đây. Riêng Opera chúng ta phải kéo link cài đặt vào Personal Bar (View > Toolbars > Personal Bar).

Sử dụng
Để sử dụng PageZipper cho một trang web bạn nhấp vào nút PageZipper đã cài ở trên. Khi bạn kéo xuống gần hết trang web thì PageZipper sẽ tự động nạp trang tiếp theo nối vào trang hiện tại. Riêng đối với galery ảnh thì bạn chỉ cần bấm Ctrl + Down hay Ctrl + Up để đi đến ảnh trước hay sau. Chương trình còn có thể tự động giảm kích cỡ ảnh vừa khít với cửa sổ trình duyệt giúp bạn xem toàn bộ ảnh.

Hạn chế
+ PageZipper chỉ làm việc đối với các trang web tiếng Anh.
+ PageZipper không làm việc đối với các trang navigator bằng javascript.
+ Đối với một số trang dùng navigator quá kín, PageZipper cũng sẽ nhận không ra. Trong trường hợp đó bạn có thể vào đây để cung cấp thêm thông tin về trang web cho chương trình.

Ngoài ra, Người dùng Firefox còn có thể sử dụng add-on PageZipper hay AutoPager cho mục đích này.

Fix Min-/Max- CSS Attribute cho IE

, , , ...

Mặc dù Pearl đã hitle bạn IE rồi. Nhưng một sự thật phủ phàng không chỉ Pearl mà cả thế giới net (đặc biệt là web dev) phải chấp nhận là IE vẫn còn quá phổ biến :frown:. Do vậy mà dù sao đi nữa thì vẫn phải tìm cách bưng bít cho cái blog nó nên hồn 1 tí :o:. Và quả thật thì hầu hết các skin của Pearl đều hoạt động ổn trên IE. Chỉ còn một lỗi be bé mà Pearl phải bận tâm là lúc post các ảnh to hơn chiều rộng entry thì nó bị xén "overflow" đi (IE nó không hiểu mấy vụ min/max lắm). Nhưng mà cũng không bận tâm nhiều lắm vì Pearl có dùng IE lướt web bao h mà cái lỗi nó bé như que tăm ấy nhỉ :whistle:



Nhân dịp lần này làm cái skin “Ai Bơ”, để “sáng tạo” hơn em Vista lần trước Pearl đã lôi cả cái footer lên chung sidebar chơi. Nhưng để duy trì cho cái sự chuyển đổi đó thì Pearl phải tìm hiểu cách fix lỗi min-height cho IE mà đã lỡ fix min-height rồi thì fix luôn max-width cho mấy cái ảnh nhỉ :rolleyes:. Mà cái vụ fix này cũng có khá nhiều cách nhá. Người thì cứ dùng CSS đơn thuần, người dùng filters, nhưng mà xem kỹ thì dùng expression vẫn là giống nhất :left:

Expression là một thuộc tính CSS giúp thực hiện một vài tính toán Javascript đơn giản trong CSS. Và chỉ được hỗ trợ trên IE (hình như 5+) (Microsoft khoái tự đặt quy tắc của mình hơn là làm theo quy tắc của người khác nhỉ :down:). Ví dụ đoạn code sau sẽ định min-width là 500px cho thành phần #wrap

#wrap{width:expression(this.width < 500 ? "500px" : auto)}


Có thể diễn dịch đoạn code trên là nếu chiều rộng thành phần này nhỏ hơn 500px thì đưa nó về 500px, nếu không thì cho tự do.

#wrap{width:expression(this.width > 1000 ? "1000px" : this.width)}


Đoạn code trên sẽ quy định lại chiều rộng thành phần #wrap về 1000px nếu nó vượt quá 1000px, nếu không phải thì cứ dùng chiều rộng hiện có.

Chúng ta cũng có thể viết ngắn gọn như sau

#wrap{width:expression(this.width > 1000 ? "1000px" : this.width < 500 ? "500px" : this.width)}


Một cách tương tự chúng ta cũng có thể quy định min-height và max-height cho #wrap lần lượt là 800px và 2000px

#wrap{height:expression(this.scrollHeight < 800 ? "800px" : this.scrollHeight > 2000 ? "2000px" : this.scrollHeight)}


Do các trình duyệt khác không hiểu expression nên chúng ta có thể dùng chung nó và các thuộc tính CSS chuẩn bình thường. Tuy nhiên, khi duyệt các trang web có sử dụng thuộc tính này IE sẽ hiện một thông báo yêu cầu bạn cho phép chạy ActiveX. Và một phiền phức khác khi Pearl áp dụng expression để giải quyết vấn đề của mình là lần đầu truy cập thường kích thước ảnh trong các entry hiển thị thậm chí rất bé nhưng chỉ cần enter một lần nữa thì nó sẽ làm việc đúng thôi :ko: (một lần nữa cho thấy sự tồi tệ của IE, đề nghị Microsoft sử dụng chuẩn web dùng cái).




Ngoài dùng expression thì còn một cách thường được dùng là

#wrap{
min-width:500px;
width:auto !important;
width:500px
}


=> Các trình duyệt Non-IE sẽ nhận 2 thuộc tính min-width:500px và width:auto !important. Riêng IE sẽ định width:500px và nếu width thực tế của #wrap lớn hơn 500px thì cho auto.

Tuy nhiên như các bạn thấy thì do đặc thù của cách này thì nó chỉ dùng để fix min-width/height thôi. Và lưu ý đừng dùng thêm thuộc tính overflow:hidden cho trường hợp này vì nó sẽ ẩn đi cái phần dôi ra do diện auto đấy :D


Tình hình là có khá nhiều người đang “tra vấn” Pearl về cái phiên bản Advanced của Simple CSS. Nhưng tiếc là do sự cố kỹ thuật + cá nhân mà Pearl vẫn chưa hoàn thành được. Hi vọng sẽ sớm hoàn tất và lúc đó Pearl sẽ có câu trả lời với mọi người. Còn bây h thì lâu lâu Pearl sẽ cố chèn vào một entry CSS để giảm nhiệt :D


Lưu ý: Riêng My Opera không hỗ trợ thuộc tính này nên nếu ai muốn dùng thì phải soạn trên một file CSS ngoại và nhúng vào CSS chính thông qua thuộc tính @import.
Download Opera, the fastest and most secure browser
November 2009
S M T W T F S
October 2009December 2009
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30