Modify Form comment : Bài 2 - Tạo style cho bộ đếm số bài comment

Người đăng: buonkhongem on Thứ Hai, 27 tháng 4, 2009

Make a nice style for comment counter
[FD's BlOg] - Ở bài 1 mình có hướng dẫn cách tạo form riêng biệt cho tác giả. Bài 2 này mình sẽ hướng dẫn 1 thủ thuật đơn giản với CSS để tạo nên phong cách mới cho bộ đêm số bài comment.

Cơ bản của thủ thuật này là bạn tạo một background cho bộ đếm số bài comment. Và bạn có thể tùy chỉnh theo nhiều cách khác nhau để tạo nên phong cách riêng cho bạn. và cách tùy chỉnh mình sẽ hướng dẫn ngay bên dưới.

Đây là hình minh họa :

Bây giờ ta bắt đầu:
1. Đăng nhập blog
2. Vào Bố cục (layout)
3. Vào chỉnh sửa code HTML (chọn mở rộng tiện ích) (save template của bạn lại trước khi thực hiện)
4. Tìm đọan code sau (hoặc tương tự)

<b:includable id='comments' var='post'>
<div class='comments' id='comments'>
<a name='comments'/>
<b:if cond='data:post.allowComments'>
<h4>
<b:if cond='data:post.numComments == 1'>
1 <data:commentLabel/>:
<b:else/>
<data:post.numComments/> <data:commentLabelPlural/>
</b:if>
</h4>


5. Sau đó thêm đọan code màu đỏ vào:

<b:includable id='comments' var='post'>
<div class='comments' id='comments'>
<a name='comments'/>
<b:if cond='data:post.allowComments'>
<h4>
<b:if cond='data:post.numComments == 1'>
1 <data:commentLabel/>:
<b:else/>
Tổng cộng : <div style='padding : 35px 0 0 0; clear : both; list-style-type : none; background : url(link ảnh) no-repeat left; width : 73px; height : 65px; font-family:Verdana, Arial, Helvetica, sans-serif; font-size: 24px; text-align: center;'>
<data:post.numComments/>
</div>
<data:commentLabelPlural/>
</b:if>
</h4>


6. Sau đây là hướng dẫn hiệu chỉnh:
- padding : 35px 0 0 0; : căn lề cho text. căn lề này được tùy chỉnh tùy theo khuôn mẫu của hình mà bạn muốn hiển thị. với các thứ tự lần lượt là : căn trên (top), căn phải(right), căn dưới(bottom), căn trái (left). Nên canh chỉnh nhiều lần để chữ được hiển thị tốt nhất.
- background : url(link ảnh) no-repeat left; : ảnh nền để tạo style cho bộ đếm, và lệnh left dùng để xác đinh vị trí hiển thị của ảnh.
- width : 73px; height : 65px; : đây chính là độ rộng của khung ảnh.
- font-family:Verdana, Arial, Helvetica, sans-serif; : font chứ sẽ hiển thị
- font-size: 24px; : kích thức font chữ. Nên điều chỉnh font cho hợp lý, tránh tình trạng khi số bài comment lên tới hàng 3 số, thì số comment sẽ bị lệch ra khỏi khung ảnh, khi đó nhìn rất không thẩm mỹ.
- text-align: center; : căn giữa cho phong chữ - cái này rất cần thiết, vì khi số bài comment tăng lên, chữ sẽ bị lệch khỏi khung ảnh (nếu ta dùng style chữ chồng lên ảnh), khi có căn giữa chữ tự động căn trong khung ảnh.

7. Sau khi đã hiệu chỉnh xong hết, ta lưu template lại.
8. Dưới đây là các hình mẫu , các bạn có thể tham khảo.
Style 1:


Style 2:


Style 3:


Style 4:


Style 5:


9. Lưu ý:
- khi sử dụng style 1, bạn nên xóa chữ Nhận xét (comment) đi thì nó trông đẹp hơn(do trong hình nền đã có chữ comment rồi). Muốn xóa nó rất đơn giản, chỉ cần xóa dòng code màu xanh đi là xong:

<b:includable id='comments' var='post'>
<div class='comments' id='comments'>
<a name='comments'/>
<b:if cond='data:post.allowComments'>
<h4>
<b:if cond='data:post.numComments == 1'>
1 <data:commentLabel/>:
<b:else/>
<data:post.numComments/> <data:commentLabelPlural/>
</b:if>
</h4>


- Thứ 2 : các style mình giới thiệu đa phần là style chữ đè lên hình nền, nếu bạn muốn chữ hiển thị sang phải của hình nền thì chỉ cần sữa lệnh là padding : Apx 0 0 0; với A là chiều rộng của khung ảnh. Và hiệu chỉnh 1 số thuộc tính cho hợp lý là xong.
- Khi muốn cho ảnh nằm bên phải thì set thuộc tính background : url(link ảnh) no-repeat right; , lệnh padding : 0 0 0 Apx; , lệnh text-align: left;

Như vậy mình đã giới thiệu xong bài 2 của lọat bài Modify Form Comment. Hẹn gặp lại ở bài 3.

Chúc các bạn thành công.

More about

Tạo nút ""Mở rộng/Thu gọn" bài viết (Bonus : kèm theo hướng dẫn tạo tiện ích "Read More...")

Người đăng: buonkhongem on Chủ Nhật, 26 tháng 4, 2009

Add Expand/Collapse hack Link below each Post
[FD's BlOg] - Các bạn đã khá quen với tiện "Read More..." ở mỗi bài viết, nó tạo cho blog 1 bố cục gọn gàng. Tương tự như thế, hôm nay mình xin giới thiệu cho các bạn 1 phương pháp khác, cũng tương tự như tiện ích "Read more..." đó là tiện ích "Mở rộng/thu gọn" bài viết.

Với tiện ích này, bạn muốn xem xài viết chỉ cần nhấp vào là có thể xem, không cần phải load lại trang, và nếu muốn thu gọn lại thì bạn cũng nhấp vào là ta có thể thu gọn lại bài viết.

Và tiện thể đây mình cũng xin giới thiệu luôn tiện ích "Read More..."

A. Tạo tiện ích "Read More..."
1. Đăng nhập blog
2. Vào Bố cục (Layout)
3. Vào chỉnh sửa code HTML (Chọn mở rộng tiện ích)
4. Chèn đọan javascript bên dưới vào trước thẻ </head>

<!-- JavaScript Posts Summaries -->
<script language='javascript' src='http://www.sigmirror.com/files/16723_kc9lz/jquery-1.2.3.pack.js' type='text/javascript'/>
<script language='javascript' src='http://www.sigmirror.com/files/16722_nbdvm/jquery.extractor.js' type='text/javascript'/>

<script type='text/javascript'>
$(document).ready(function() {

$(&#39;.excerpt&#39;).expander({
slicePoint: 450, // default is 100
expandEffect: &#39;fadeIn&#39;,
expandText: &#39;[...]&#39;, // default is &#39;read more...&#39;
userCollapseText: &#39;[^]&#39; // default is &#39;[collapse expanded text]&#39;
});

});
</script>
<!-- End JavaScript Posts Summaries -->


5. Tìm đọan code bên dưới hoặc tương tự:

<div class='post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>


6. Sửa lại thành:

<b:if cond='data:blog.pageType != "item"'>
<div class='excerpt post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<a expr:href="data:post.url">Read More..</a>
<b:else/>
<div class='post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
</b:if>

7. Save lại, và nó sẽ trông như hình bên dưới:


B. Tạo tiện ích "Mở rộng/thu gọn" bài viết.
- Đối với ai không thích sử dụng tiện ích Read More... thì có thể tham khảo cách này.

1. Tương tự như cách làm ở trên, ta chỉ chỉnh sửa 1 chút ở đọan javascript, và sửa nó lại như hình bên dưới:

<!-- JavaScript Posts Summaries -->
<script language='javascript' src='http://www.sigmirror.com/files/16723_kc9lz/jquery-1.2.3.pack.js' type='text/javascript'/>
<script language='javascript' src='http://www.sigmirror.com/16742_fgkbf/jquery.expander.js' type='text/javascript'/>

<script type='text/javascript'>
$(document).ready(function() {

$(&#39;.excerpt&#39;).expander({
slicePoint: 450, // default is 100
expandEffect: &#39;fadeIn&#39;,
expandText: &#39;[...]&#39;, // default is &#39;read more...&#39;
userCollapseText: &#39;[^]&#39; // default is &#39;[collapse expanded text]&#39;
});

});
</script>
<!-- End JavaScript Posts Summaries -->

2. Tiếp tục bước 2 là xóa dòng code màu đỏ như trong đọan code bên dưới. (Bước này chỉ áp dụng cho những ai đã hack tiện ích "Read More..." rồi)

<b:if cond='data:blog.pageType != "item"'>
<div class='excerpt post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
<a expr:href="data:post.url">Read More..</a>
<b:else/>
<div class='post-body entry-content'>
<data:post.body/>
<div style='clear: both;'/> <!-- clear for photos floats -->
</div>
</b:if>

3. Xóa đọan code màu đỏ đi và save template lại là xong.

Xem hình minh họa bên dưới.


Lưu ý: để tránh việc đọan javascript ko chạy (do hết bandwidth vì nhiều người dùng chung) nên bạn phải download file java về máy của bạn và up lên host riêng của bạn.
Nguồn : tham khảo trên Internet
Chúc các bạn thành công.

More about

Add widget các trang xã hội vào bài viết

Người đăng: buonkhongem

Add Social Bookmarks Widgets Inside Blogger Post
[FD's BlOg] - Các trang xã hội là một trong những cách tối nhất để blog của bạn được chú ý đến, cũng như tăng lượng truy cập.





Sau đây là cách thực hiện
1. Đăng nhập blog
2. Vào Bố cục(layout)
3. Vào chỉnh sửa code HTML (edit code HTML)
4. Chọn mở rộng tịên ích.
5. Tìm đọan code sau:
<p><data:post.body/></p>

6. Và dán code bên dưới vào ngay sau dòng code trên

<a expr:href='&quot;http://digg.com/submit?phase=2&amp;url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Digg This' border='0' src='http://www.myonlinejunkyard.com/files/digg.png'/></a>

<a expr:href='&quot;http://del.icio.us/post?url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Add To Del.icio.us' border='0' src='http://www.myonlinejunkyard.com/files/delicious.png'/></a>

<a expr:href='&quot;http://furl.net/storeIt.jsp?u=&quot; + data:post.url + &quot;&amp;t=&quot; + data:post.title' target='_blank'><img alt='Add To Furl' border='0' src='http://www.myonlinejunkyard.com/files/furl.png'/></a>

<a expr:href='&quot;http://reddit.com/submit?url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Add To Reddit' border='0' src='http://www.myonlinejunkyard.com/files/reddit.png'/></a>

<a expr:href='&quot;http://www.technorati.com/faves?add=&quot; + data:post.url' target='_blank'><img alt='Fav This With Technorati' border='0' src='http://www.myonlinejunkyard.com/files/technorati.png'/></a>

<a expr:href='&quot;http://myweb2.search.yahoo.com/myresults/bookmarklet?u=&quot; + data:post.url + &quot;&amp;t=&quot; + data:post.title' target='_blank'><img alt='Add To Yahoo MyWeb' border='0' src='http://www.myonlinejunkyard.com/files/yahoo_myweb.png'/></a>

<a expr:href='&quot;http://www.newsvine.com/_wine/save?u=&quot; + data:post.url + &quot;&amp;h=&quot; + data:post.title' target='_blank'><img alt='Add To Newsvine' border='0' src='http://www.myonlinejunkyard.com/files/newsvine.png'/></a>

<a expr:href='&quot;http://www.google.com/bookmarks/mark?op=edit&amp;output=popup&amp;bkmk=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Add To Google Bookmarks' border='0' src='http://www.myonlinejunkyard.com/files/google.png'/></a>

<a expr:href='&quot;http://www.bloglines.com/sub/&quot; + data:post.url' target='_blank'><img alt='Add To Bloglines' border='0' src='http://www.myonlinejunkyard.com/files/bloglines.png'/></a>

<a expr:href='&quot;http://mystuff.ask.com/mysearch/QuickWebSave?v=1.2&amp;t=webpages&amp;url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Add To Ask' border='0' src='http://www.myonlinejunkyard.com/files/ask.png'/></a>

<a expr:href='&quot;https://favorites.live.com/quickadd.aspx?url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Add To Windows Live' border='0' src='http://www.myonlinejunkyard.com/files/live.png'/></a>

<a expr:href='&quot;http://slashdot.org/bookmark.pl?url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Add To Slashdot' border='0' src='http://www.myonlinejunkyard.com/files/slashdot.png'/></a>

<a expr:href='&quot;http://www.stumbleupon.com/refer.php?url=&quot; + data:post.url + &quot;&amp;title=&quot; + data:post.title' target='_blank'><img alt='Stumble This' border='0' src='http://www.myonlinejunkyard.com/files/icon_su.gif'/></a>

7. Save lại là xong, như vậy bạn đã có 1 thanh bookmark của các mạng xã hội ngay trên blog bạn rồi.
More about

Antivirus : NOD32 Update Viewer 4.01.2

Người đăng: buonkhongem

[FD's BlOg] - NOD32 Update Viewer allows you to expand the functionality and improve the reliability of obtaining updates for antivirus ESET NOD32, EAV and ESS. The program actually solves all the problems with the updating of the popular anti-virus database, and thus make it free without breaking.


NOD32 Update Viewer 4.01.2 | 7 Mb

☼Features:
* Displays the contents updates on all servers company Eset and mirrors.
* Displays real versions of files (not from update.ver).
* Checks and updates a list of servers Eset.
* Comparison content updates to your NOD32 and current mirror (new green; outdated-red).
* Indicates what is the server Trial update.
* Restores files in the "Mirror NOD32 LAN Update Server."
* Creates a mirror with the restoration of names.
* Creates a mirror of the real files Eset servers.
* Creates a mirror in any language versions of software components.
* In auto mode, hourly checks and updates mirror with pereborom passwords and disposal of obsolete (gets in the systray).
* Once runs avto-obnovlenie (the "auto" at the command line).
* Creates a mirror server from the command line (and gets in the systray rose after implementation).
* Creates a mirror on the assigned NOD32 (the "this" on the command line).
* Creates trialnoe mirror (for the fans).
* Polnotsenno NOD switches from the commercial regime trialny and back.
* Sinhroniziruet current mirror FTP mirrors.
* Runs external program after updating.
* Testiruet servers for updates, and then adding to the list of mirrors.
* Checks passwords to be able to update to the company Eset servers.
* Checks passwords from the text and DBF file to be able to update the server with the selected company Eset.
* Preserves current passwords in text and DBF files.
* Checks may download passwords different versions installation tool NOD32 (Standard, LAN Update Server ...).
* Downloads any available version installation tool NOD32 (Standard, LAN Update Server ...).
* Adds components of the installation tool NOD32 and set NOD32 (right button on the first line).
* Perenosit name and password of NOD32 in NOD32view and back.
* Checks passwords for the termination of in the last 10 days.
* Supports work through Proxy Server.
* Works with mirrors on HTTP, HTTPS, and FTP.
* Works with mirrors with authorization (... tp: / / username: password @ host ...).
* Works without NOD32.
* Works under Windows Vista.
* Refreshes base DrWEB or CureIt v4.33 and 4.44 (DrWEBview.dll).
* Refreshes base AVZ (AVZview.dll).
* Checks keys to download and download ESET Smart Security. NEW!
* Checks keys to download and download ESET NOD32 Antivirus. NEW!

Mediafire:
http://www.mediafire.com/?1cnmmdmnnyn

More about

Internet Download Manager 5.16 Build 3

Người đăng: buonkhongem

[FD's BlOg] - Internet Download Manager has a smart download logic accelerator that features intelligent dynamic file segmentation and safe multipart downloading technology to accelerate your downloads. Unlike other download accelerators and managers that segment files before downloading starts, IDM segments downloaded files dynamically during download process. IDM reuses available connections without additional connect and login stages to achieve better acceleration performance.


Internet Download Manager supports proxy servers, ftp and http protocols, firewalls, redirects, cookies, authorization, MP3 audio and MPEG video content processing. IDM integrates seamlessly into Microsoft Internet Explorer, Netscape, MSN Explorer, AOL, Opera, Mozilla, Mozilla Firefox, Mozilla Firebird, Avant Browser, MyIE2, and all other popular browsers to automatically handle your downloads. You can also drag and drop files, or use Internet Download Manager from command line. Internet Download Manager can dial your modem at the set time, download the files you want, then hang up or even shut down your computer when it's done.

Other features include multilingual support, zip preview, download categories, scheduler pro, sounds on different events, HTTPS support, queue processor, html help and tutorial, enhanced virus protection on download completion, progressive downloading with quotas (useful for connections that use some kind of fair access policy or FAP like Direcway, Direct PC, Hughes, etc.), built-in download accelerator, and many others.


Mediafire
http://www.mediafire.com/?kdn2oynucwk


More about

Bled 2009 DVDrip (kinh dị)- Mediafire Link

Người đăng: buonkhongem

Sai, một nữ nghệ sỹ trẻ sống trong một căn nhà khi cũ trong thành phố, sống chìm sâu vào thế giới cổ của máu và ham muốn. Một người đàn ông bí ẩn đã quyến rũ cô dùng một loại thần dược đã bị lãng quên từ lâu. Và từ đó, cô trở thành con mồi của ma cà rồng, người cần hút máu cô để thỏa mãn cơn khát và để bước vào thế giới của loài người.






Mediafire:
http://www.mediafire.com/download.php?kmynyqizzhg
http://www.mediafire.com/download.php?nzui5y2zyym
http://www.mediafire.com/download.php?jyku2qgjmyh
http://www.mediafire.com/download.php?0qhmjmmzmtz
http://www.mediafire.com/download.php?dmr2lz2walm
http://www.mediafire.com/download.php?dmotvnzvoto
http://www.mediafire.com/download.php?2nm32xywdkw
http://www.mediafire.com/download.php?n0tgweztvui

Rapidshare:
http://rapidshare.com/files/207568210/cape.GoLeech.org.Krv.part1.rar
http://rapidshare.com/files/207568166/cape.GoLeech.org.Krv.part2.rar
http://rapidshare.com/files/207569951/cape.GoLeech.org.Krv.part3.rar
http://rapidshare.com/files/207569814/cape.GoLeech.org.Krv.part4.rar
http://rapidshare.com/files/207569959/cape.GoLeech.org.Krv.part5.rar
http://rapidshare.com/files/207569818/cape.GoLeech.org.Krv.part6.rar
http://rapidshare.com/files/207568278/cape.GoLeech.org.Krv.part7.rar
http://rapidshare.com/files/207568388/cape.GoLeech.org.Krv.part8.rar

Megaupload:
http://www.megaupload.com/?d=XRYLZ9DS
http://www.megaupload.com/?d=Z1NN6Y4B
http://www.megaupload.com/?d=4ZWOOT6H
http://www.megaupload.com/?d=DF4HLFCH
http://www.megaupload.com/?d=FHRYIBRX
http://www.megaupload.com/?d=SUFYDQKH
http://www.megaupload.com/?d=I6PA1O3S
http://www.megaupload.com/?d=IVLP0PRS
More about

Thay đổi tốc độ chạy chữ (ảnh) bằng cách rê chuột (Javascript)

Người đăng: buonkhongem

[FD's BlOg] - Hôm nay mình sẽ giới thiệu cho các bạn một thủ thuật của lệnh marquee. Với thủ thuật này, ảnh (chữ) sẽ di chuyển 1 cách liên tục, không bị ngắt quảng giữa ảnh cuối cũng và ảnh đầu tiên. Và thứ 2 nữa là ta có thể thay đổi chiều dịch chuyển cũng như tốc độ dịch chuyển của ảnh (chữ) bằng cách rê chuột.

Đây là một ứng dụng thiêng về java nhiều hơn. Và với thủ thuật rất thích hợp cho việc trình diễn ảnh, hoặc 1 list bài viết nổi bật.

Với việc di chuyển chuột sang trái, ảnh sẽ chuyển động sang phải & ngược lại. Khi chuột đi vào giữa vùng hiển thị nội dung thì sự di chuyển ngừng lại.

Có thể xem demo ở đây: http://fandung-test.blogspot.com

☼Sau đây là cách thực hiện:

1. Tạo 1 widget HTML.
2. Sau đó dán code này vào:

///////// Code của javascript - DO NOT EDIT///////////////////
<script type="text/javascript">

function marqueeInit(config){
if(!document.createElement) return;
marqueeInit.ar.push(config);
marqueeInit.run(config.uniqueid);
}

(function(){

if(!document.createElement) return;

marqueeInit.ar = [];

document.write('<style type="text/css">.marquee{white-space:nowrap;overflow:hidden;visibility:hidden;}' +
'#marq_kill_marg_bord{border:none!important;margin:0!important;}</style>');
var c = 0, tTRE = [new RegExp('^\s*$'), new RegExp('^\s*'), new RegExp('\s*$')],
req1 = {'position': 'relative', 'overflow': 'hidden'}, defaultconfig = {
style: { //default style object for marquee containers without configured style
'margin': '0 auto'
},
direction: 'left',
inc: 2, //default speed - pixel increment for each iteration of a marquee's movement
mouse: 'pause' //default mouseover behavior ('pause' 'cursor driven' or false)
}, dash, ie = false, oldie = 0, ie5 = false, iever = 0;

/*@cc_on @*/
/*@if(@_jscript_version >= 5)
ie = true;
try{document.documentMode = 2000}catch(e){};
iever = Math.min(document.documentMode, navigator.appVersion.replace(/^.*MSIE (d+.d+).*$/, '$1'));
if(iever < 6)
oldie = 1;
if(iever < 5.5){
Array.prototype.push = function(el){this[this.length] = el;};
ie5 = true;
dash = new RegExp('(-(.))');
String.prototype.encamel = function(s, m){
s = this;
while((m = s.match(dash)))
s = s.replace(m[1], m[2].toUpperCase());
return s;
};
}
@end @*/

if(!ie5){
dash = new RegExp('-(.)', 'g');
function toHump(a, b){return b.toUpperCase();};
String.prototype.encamel = function(){return this.replace(dash, toHump);};
}

if(ie && iever < 8){
marqueeInit.table = [];
window.attachEvent('onload', function(){
marqueeInit.OK = true;
for(var i = 0; i < marqueeInit.table.length; ++i)
marqueeInit.run(marqueeInit.table[i]);
});
}

function intable(el){
while((el = el.parentNode))
if(el.tagName && el.tagName.toLowerCase() === 'table')
return true;
return false;
};

marqueeInit.run = function(id){
if(ie && !marqueeInit.OK && iever < 8 && intable(document.getElementById(id))){
marqueeInit.table.push(id);
return;
}
if(!document.getElementById(id))
setTimeout(function(){marqueeInit.run(id);}, 300);
else
new Marq(c++, document.getElementById(id));
}

function trimTags(tag){
var r = [], i = 0, e;
while((e = tag.firstChild) && e.nodeType == 3 && tTRE[0].test(e.nodeValue))
tag.removeChild(e);
while((e = tag.lastChild) && e.nodeType == 3 && tTRE[0].test(e.nodeValue))
tag.removeChild(e);
if((e = tag.firstChild) && e.nodeType == 3)
e.nodeValue = e.nodeValue.replace(tTRE[1], '');
if((e = tag.lastChild) && e.nodeType == 3)
e.nodeValue = e.nodeValue.replace(tTRE[2], '');
while((e = tag.firstChild))
r[i++] = tag.removeChild(e);
return r;
}

function Marq(c, tag){
var p, u, s, a, ims, ic, i, marqContent, cObj = this;
this.mq = marqueeInit.ar[c];
for (p in defaultconfig)
if((this.mq.hasOwnProperty && !this.mq.hasOwnProperty(p)) || (!this.mq.hasOwnProperty && !this.mq[p]))
this.mq[p] = defaultconfig[p];
this.mq.style.width = !this.mq.style.width || isNaN(parseInt(this.mq.style.width))? '100%' : this.mq.style.width;
if(!tag.getElementsByTagName('img')[0])
this.mq.style.height = !this.mq.style.height || isNaN(parseInt(this.mq.style.height))? tag.offsetHeight + 3 + 'px' : this.mq.style.height;
else
this.mq.style.height = !this.mq.style.height || isNaN(parseInt(this.mq.style.height))? 'auto' : this.mq.style.height;
u = this.mq.style.width.split(/d/);
this.cw = this.mq.style.width? [parseInt(this.mq.style.width), u[u.length - 1]] : ['a'];
marqContent = trimTags(tag);
tag.className = tag.id = '';
tag.removeAttribute('class', 0);
tag.removeAttribute('id', 0);
if(ie)
tag.removeAttribute('className', 0);
tag.appendChild(tag.cloneNode(false));
tag.className = ['marquee', c].join('');
tag.style.overflow = 'hidden';
this.c = tag.firstChild;
this.c.appendChild(this.c.cloneNode(false));
this.c.style.visibility = 'hidden';
a = [[req1, this.c.style], [this.mq.style, this.c.style]];
for (i = a.length - 1; i > -1; --i)
for (p in a[i][0])
if((a[i][0].hasOwnProperty && a[i][0].hasOwnProperty(p)) || (!a[i][0].hasOwnProperty))
a[i][1][p.encamel()] = a[i][0][p];
this.m = this.c.firstChild;
if(this.mq.mouse == 'pause'){
this.c.onmouseover = function(){cObj.mq.stopped = true;};
this.c.onmouseout = function(){cObj.mq.stopped = false;};
}
this.m.style.position = 'absolute';
this.m.style.left = '-10000000px';
this.m.style.whiteSpace = 'nowrap';
if(ie5) this.c.firstChild.appendChild((this.m = document.createElement('nobr')));
if(!this.mq.noAddedSpace)
this.m.appendChild(document.createTextNode('xa0'));
for(i = 0; marqContent[i]; ++i)
this.m.appendChild(marqContent[i]);
if(ie5) this.m = this.c.firstChild;
ims = this.m.getElementsByTagName('img');
if(ims.length){
for(ic = 0, i = 0; i < ims.length; ++i){
ims[i].style.display = 'inline';
ims[i].style.verticalAlign = ims[i].style.verticalAlign || 'top';
if(typeof ims[i].complete == 'boolean' && ims[i].complete && !window.opera)
ic++;
else {
ims[i].onload = function(){
if(++ic == ims.length)
cObj.setup();
};
}
if(ic == ims.length)
this.setup();
}
}
else this.setup()
}

Marq.prototype.setup = function(){
if(this.mq.setup) return;
this.mq.setup = this;
var s, cObj = this;
if(this.c.style.height === 'auto')
this.c.style.height = this.m.offsetHeight + 4 + 'px';
this.c.appendChild(this.m.cloneNode(true));
this.m = [this.m, this.m.nextSibling];
if(this.mq.mouse == 'cursor driven'){
this.r = this.mq.neutral || 16;
this.sinc = this.mq.inc;
this.c.onmousemove = function(e){cObj.mq.stopped = false; cObj.directspeed(e)};
if(this.mq.moveatleast){
this.mq.inc = this.mq.moveatleast;
if(this.mq.savedirection){
if(this.mq.savedirection == 'reverse'){
this.c.onmouseout = function(e){
if(cObj.contains(e)) return;
cObj.mq.inc = cObj.mq.moveatleast;
cObj.mq.direction = cObj.mq.direction == 'right'? 'left' : 'right';};
} else {
this.mq.savedirection = this.mq.direction;
this.c.onmouseout = function(e){
if(cObj.contains(e)) return;
cObj.mq.inc = cObj.mq.moveatleast;
cObj.mq.direction = cObj.mq.savedirection;};
}
} else
this.c.onmouseout = function(e){if(!cObj.contains(e)) cObj.mq.inc = cObj.mq.moveatleast;};
}
else
this.c.onmouseout = function(e){if(!cObj.contains(e)) cObj.slowdeath();};
}
this.w = this.m[0].offsetWidth;
this.m[0].style.left = 0;
this.c.id = 'marq_kill_marg_bord';
this.m[0].style.top = this.m[1].style.top = Math.floor((this.c.offsetHeight - this.m[0].offsetHeight) / 2 - oldie) + 'px';
this.c.id = '';
this.c.removeAttribute('id', 0);
this.m[1].style.left = this.w + 'px';
s = this.mq.moveatleast? Math.max(this.mq.moveatleast, this.sinc) : (this.sinc || this.mq.inc);
while(this.c.offsetWidth > this.w - s)
this.c.style.width = isNaN(this.cw[0])? this.w - s + 'px' : --this.cw[0] + this.cw[1];
this.c.style.visibility = 'visible';
this.runit();
}

Marq.prototype.slowdeath = function(){
var cObj = this;
if(this.mq.inc){
this.mq.inc -= 1;
this.timer = setTimeout(function(){cObj.slowdeath();}, 100);
}
}

Marq.prototype.runit = function(){
var cObj = this, d = this.mq.direction == 'right'? 1 : -1;
if(this.mq.stopped || this.mq.stopMarquee){
setTimeout(function(){cObj.runit();}, 300);
return;
}
if(this.mq.mouse != 'cursor driven')
this.mq.inc = Math.max(1, this.mq.inc);
if(d * parseInt(this.m[0].style.left) >= this.w)
this.m[0].style.left = parseInt(this.m[1].style.left) - d * this.w + 'px';
if(d * parseInt(this.m[1].style.left) >= this.w)
this.m[1].style.left = parseInt(this.m[0].style.left) - d * this.w + 'px';
this.m[0].style.left = parseInt(this.m[0].style.left) + d * this.mq.inc + 'px';
this.m[1].style.left = parseInt(this.m[1].style.left) + d * this.mq.inc + 'px';
setTimeout(function(){cObj.runit();}, 30 + (this.mq.addDelay || 0));
}

Marq.prototype.directspeed = function(e){
e = e || window.event;
if(this.timer) clearTimeout(this.timer);
var c = this.c, w = c.offsetWidth, l = c.offsetLeft, mp = (typeof e.pageX == 'number'?
e.pageX : e.clientX + document.body.scrollLeft + document.documentElement.scrollLeft) - l,
lb = (w - this.r) / 2, rb = (w + this.r) / 2;
while((c = c.offsetParent)) mp -= c.offsetLeft;
this.mq.direction = mp > rb? 'left' : 'right';
this.mq.inc = Math.round((mp > rb? (mp - rb) : mp < lb? (lb - mp) : 0) / lb * this.sinc);
}

Marq.prototype.contains = function(e){
if(e && e.relatedTarget){var c = e.relatedTarget; if(c == this.c) return true;
while ((c = c.parentNode)) if(c == this.c) return true;}
return false;
}

function resize(){
for(var s, m, i = 0; i < marqueeInit.ar.length; ++i){
if(marqueeInit.ar[i] && marqueeInit.ar[i].setup){
m = marqueeInit.ar[i].setup;
s = m.mq.moveatleast? Math.max(m.mq.moveatleast, m.sinc) : (m.sinc || m.mq.inc);
m.c.style.width = m.mq.style.width;
m.cw[0] = m.cw.length > 1? parseInt(m.mq.style.width) : 'a';
while(m.c.offsetWidth > m.w - s)
m.c.style.width = isNaN(m.cw[0])? m.w - s + 'px' : --m.cw[0] + m.cw[1];
}
}
}

if (window.addEventListener)
window.addEventListener('resize', resize, false);
else if (window.attachEvent)
window.attachEvent('onresize', resize);

})();
</script>

///////// Nội dung hiển thị ///////////////////

<div class="marquee" id="fd-test1">

ĐOẠN TEXT MUỐN HIỂN THỊ

</div>

<script type="text/javascript">
marqueeInit({
uniqueid: 'fd-test1',
style: {
'padding': '5px',
'width': '450px',
'background': 'lightyellow',
'border': '1px solid #CC3300'
},
inc: 8, //tốc độ mặc đinh khi không có rê chuột lên
mouse: 'cursor driven', //cho phép tác động chuột lên
moveatleast: 4,
neutral: 150,
savedirection: true
});
</script>

<div class="marquee" id="fd-test2">
<img src="LINK ẢNH 1" />
<img src="LINK ẢNH 2" />
<img src="LINK ẢNH 3" />
<img src="LINK ẢNH 4" />
<img src="LINK ẢNH 5" />
</div>

<script type="text/javascript">
marqueeInit({
uniqueid: 'fd-test2',
style: {
'padding': '2px',
'width': '600px',
'height': '180px'
},
inc: 5, //tốc độ mặc đinh khi không có rê chuột lên
mouse: 'cursor driven', //cho phép tác động chuột lên
moveatleast: 2,
neutral: 150,
savedirection: true
});
</script>

Thay đổi code màu xanh theo yêu cầu hiển thị của bạn, thay code link ảnh bằng ảnh của bạn.

3. Save lại là xong.

Chúc các bạn thành công.
Nguồn : tham khảo từ internet.
More about

Thủ thuật cơ bản : ẩn liên kết bài viết mới hơn, bài viết cũ hơn ở mỗi bài viết

Người đăng: buonkhongem on Thứ Bảy, 25 tháng 4, 2009

Hiding Newer and Older Post link
[FD's BlOg] - Khi blog của bạn đã bổ xung thanh Navigation Page ở cuối trang blog của bạn, và có đầy đủ các list, menu cho người đọc tìm kiếm thì việc hiển thị các liên kết Bài viết cũ hơn, bài viết mới hơn có thể không cần thiết. Như vậy ta có thể ẩn chúng đi.

Với thủ thuật cơ bản này rất dễ thực hiện, ngay cả đối với 1 người mới bắt đầu tập viết blog với blogspot. Bạn chỉ cần thêm dòng thuộc tính display cho các class, id đó là xong.

Bây giờ ta bắt đầu làm.
1. Đăng nhập blog
2. Vào bố cục (layout)
3. Vào chỉnh sửa code HTML (edit code HTML), không cần nhấp chọn mở rộng tiện ích
4. Tìm 3 đọan CSS như bên dưới (hoặc có thể tương tự, tùy theo template của bạn)

#blog-pager-newer-link {
float: left;
}
#blog-pager-older-link {
float:right;
padding-right:5px;
}
#blog-pager {
text-align: center;
}


5. Thêm dòng code này display:none; vào mỗi id trên (xem code bên dưới)

#blog-pager-newer-link {
float: left;
display:none;
}
#blog-pager-older-link {
float:right;
padding-right:5px;
display:none;
}
#blog-pager {
text-align: center;
display:none;
}


6. Save template lại. Như vậy đã xong.

Chúc các bạn thành công.
More about

Tạo tiện ích đóng, mở tab nội dung (ẩn hiện)

Người đăng: buonkhongem

Drop Down, Expandable Boxes For Widgets
[FD's BlOg] - Có nhiều thứ bạn có thể tìm thấy ở những widget của sidebar, nhưng vì lý do nào đó, một widget dữ liệu quá dài, khiến bạn phải rê chuột tìm kiếm các widget khác rất mất thời gian. Và vì lý do đó, bạn nên sử dụng tiện ích này.




Với tiện ích này, các widget sẽ được ẩn đi, và chỉ hiển thị 1 thanh Navbar với tựa đề của widget và nút đóng mở dữ liệu.

Các bạn có thể xem hình minh họa.


Để thực hiện thủ thụât này, trước hết bạn phải dán code bên dưới vào ngay sau thẻ <head>
- Đăng nhập blog
- Vào bố cục
- Vào chỉnh sửa code HTML
- Dán code bên dưới vào sau thẻ <head>

<!-- flooble Expandable Content header start -->
<script language="javascript">
// Expandable content script from flooble.com.
// For more information please visit:
// http://www.flooble.com/scripts/expand.php
// Copyright 2002 Animus Pactum Consulting Inc.
//----------------------------------------------
var ie4 = false; if(document.all) { ie4 = true; }
function getObject(id) { if (ie4) { return document.all[id]; } else { return document.getElementById(id); } }
function toggle(link, divId) { var lText = link.innerHTML; var d = getObject(divId);
if (lText == '+') { link.innerHTML = '&#8722;'; d.style.display = 'block'; }
else { link.innerHTML = '+'; d.style.display = 'none'; } }
</script>
<!-- flooble Expandable Content header end -->

- Save template lại.

Bây giờ là bước tạo code cho tiện ích này:
1. Bạn vào trang này : www.flooble.com

2. Kéo chuột xuống dưới bạn sẽ thấy 1 form như hình bên dưới:


3. Điền code vào trong khung, rồi nhấn get code.Lưu ý: code điền trong khung là code của widget mà bạn cần tạo để ẩn (hiện) nó.
4. sau khi nhấn code, kéo chuột lên trên ta sẽ thấy kết quả (như hình dưới)



- Bạn có thể tùy chỉnh về màu sắc sao cho vừa ý bạn, sau đó thì copy đọan code trong bảng thứ 2 (như hình bên dưới) rồi dán vào widget HTML/Javascript trong blog của bạn.


Chúc các bạn thành công.
More about

Ảnh rõ hơn khi rê chuột vào, một ứng dụng của Javascript

Người đăng: buonkhongem

[FĐ's BlOg] - Hôm nay mình xin giới thiệu 1 đọan code nhỏ để tạo hiệu ứng cho ảnh khi rê chuột vào. Thích hợp cho việc tạo các icon liên kết dạng ảnh.

Với thủ thủ thuật nhỏ này, ban đầu ảnh sẽ được làm mờ đi, khi ta rê chuột vào thì ảnh sẽ rõ lên (hoặc có thể ngược lại, tùy bạn hiệu chỉnh code)

Dưới đây sẽ là ví dụ cho bạn thấy:
☼Code:

<img
onmouseover="this.style.opacity=1;this.filters.alpha.opacity=100"
onmouseout="this.style.opacity=0.4;this.filters.alpha.opacity=40" style="opacity:0.4;filter:alpha(opacity=40)" src="Link ảnh" />

- Nếu bạn muốn làm mờ ảnh hơn thì thay số 40 (0.4) nhỏ lại. (ví dụ 30 (0.3) )
- Nêu muốn tạo liên kết khi nhấp chuột vào thì thêm lệnh bên dưới vào trong thẻ:
onclick="window.location.href='link liên kết'"

- Như vậy code sẽ trông như thế này:

<img
onmouseover="this.style.opacity=1;this.filters.alpha.opacity=100"
onmouseout="this.style.opacity=0.4;this.filters.alpha.opacity=40" style="opacity:0.4;filter:alpha(opacity=40)" src="Link ảnh" onclick="window.location.href='link liên kết'"/>

- Hoặc có thể làm theo cách cơ bản sau:

<a href="link liên kết">
<img
onmouseover="this.style.opacity=1;this.filters.alpha.opacity=100"
onmouseout="this.style.opacity=0.4;this.filters.alpha.opacity=40" style="opacity:0.4;filter:alpha(opacity=40)" src="Link ảnh"/>
</a>


☼ Demo:



Chúc các bạn thành công.
More about

Tạo thanh menu nằm ngang có sổ dọc - Dùng hiệu ứng ảnh.

Người đăng: buonkhongem on Thứ Sáu, 24 tháng 4, 2009

Menu nằm ngang với hiệu ứng thay đổi ảnh
[FD's BlOg] - Bài viết trước mình có giới thiệu cách tạo menu nằm ngang có sổ dọc với hiệu ứng thay đổi màu nên. Hôm nay mình xin giới thiệu 1 style khác, đó là hiệu ứng dùng hình ảnh. Bài này mình sẽ giới thiệu 11 style khác nhau cho các bạn lựa chọn.

☼Các bước chuẩn bị:
- Đầu tiên các bạn download file này về: CSSMenu.zip
- Sau đó giải nén ra, ta sẽ thấy 22 file ảnh, có tên tương ứng từ A --> K (mỗi lọai 2 file), và 1 file menus.htm .
- Các bạn có thể mở file menus.htm để xem offline các bản demo của các style, rồi lựa chọn style mình thích. (xem hình bên dưới)


- Các style được đặt tên theo thứ tự, từ A đến K, khi bạn đã lựa chọn được file nào thì copy 2 file hình của style tương ứng, và up lên host để lấy link.
- Ví dụ ở đây mình chọn style E, khi đó mình sẽ chọn 2 file ảnh :tableftE.giftabrightE.gif để up lên host.

☼Bây giờ ta bắt đầu tạo menu chính:
1. Đăng nhập blog
2. Vào Bố cục(layout)
3. Vào chỉnh sửa CodeHTML
4. Chèn đọan code CSS bên dưới lên trên dòng ]]></b:skin>

#tabsE {
float:left;
width:100%;
background:#000;
font-size:93%;
line-height:normal;

}
#tabsE ul {
margin:0;
padding:10px 10px 0 50px;
list-style:none;
}
#tabsE li {
display:inline;
margin:0;
padding:0;
}
#tabsE a {
float:left;
background:url("LINK OF tableftE.gif") no-repeat left top;
margin:0;
padding:0 0 0 4px;
text-decoration:none;
}
#tabsE a span {
float:left;
display:block;
background:url("LINK OF tabrightE.gif") no-repeat right top;
padding:5px 15px 4px 6px;
color:#FFF;
}

/* Commented Backslash Hack hides rule from IE5-Mac \*/
#tabsE a span {float:none;}
/* End IE5-Mac hack */

#tabsE a:hover span {
color:#FFF;
}
#tabsE a:hover {
background-position:0% -42px;
}
#tabsE a:hover span {
background-position:100% -42px;
}

Chú ý: thay code màu xanh bằng link hình mà bạn đã up, nhớ fải đúng thứ tự các file.
- Và 1 điều lưu ý nữa là : khi bạn thay đổi ảnh (tức là không sử dụng những hình ảnh mình đưa) thì bạn phải chỉnh code màu cam cho phù hợp với ảnh của bạn. Ở đây 42px chính là 1/2 chiều cao của ảnh.

5. Save template lại.
6. Tiếp tục vào Bố cục
7. Tạo một Widget HTML/Javascript.
8. Chèn đọan code bên dưới vào :

<div id="tabsE">
<ul>
<li><a href="#" title="Link 1"><span>Link 1</span></a></li>
<li><a href="#" title="Link 2"><span>Link 2</span></a></li>
<li><a href="#" title="Link 3"><span>Link 3</span></a></li>
<li><a href="#" title="Link 4"><span>Link 4</span></a></li>
</ul>
</div>


Chú ý:
- Thay href="#" thành href="URL Liên kết"
- Thay code màu đỏ bằng thành tên menu của bạn.
- Thay Code màu xanhmô tả menu.

Như vậy ta đã thực hiện xong 1 menu nằm ngang dùng hiệu ứng thay đổi ảnh.

☼ Tạo thêm menu con cho menu chính với hiệu ứng sổ dọc.
- Đầu tiên để có hiệu ứng sổ dọc xuống bạn phải chèn đọan file javascript ngay sau dòng lệnh <head>

1. Vào Bố cục - Chỉnh sửa code HTML - và dán đọan code bên dưới vào ngay bên dưới thẻ <head>
<script src='http://data.fandung.com/js/dropdown2.js' type='text/javascript'/>

2. Khoan save template lại, tiếp tục chèn đọan code CSS của menu con lên trên dòng ]]></b:skin>

.submenu {
background:#F57900;
margin-top:1px;
padding:1px;
color: #fff;;
margin: 1 1px;
padding: 5px 10px;
font-weight:bold;
font-family:Arial, Helvetica, sans-serif;
font-size:12px;
border-top:1px #fff solid;
cursor:pointer;
}

3. Save template lại.
4. Và bây giờ bắt đầu tạo menu hòan chỉnh (ở đây mình chỉ ví dụ cho 2 menu chính và 2 menu con cho nó gọn, còn muốn nhiều hơn thì các bạn cứ thêm vào).
- Bây giờ tạo 1 widget HTML/JavaScript và dán code bên dưới vào:

<script type="text/javascript">
function otab()
{
document.write('<table border="0" bordercolor="#999" style="background-color: #FFF" cellspacing="0" cellpadding="0">');
}
function submn(submn_label,submn_text)
{
document.write('<tr><td onmouseover="this.style.background=\'#039\'" onmouseout="this.style.background=\'#F57900\'" class="submenu" onclick="window.location.href=\'http://YOURBLOG.blogspot.com/search/label/'+submn_label+'\'">'+submn_text+'</td></tr>');
}

function ctab(){
document.write('<\/table>');
}
function otab(child_id)
{
document.write('<table id="' + child_id +'" border="0" bordercolor="#999" style="background-color: #FFF" cellspacing="0" cellpadding="0">');
}
</script>

<div id="tabsE">
<ul>
<li><a id="sub1" href="#" title="Link 1"><span>Link 1</span></a></li>
<li><a id="sub2" href="#" title="Link 2"><span>Link 2</span></a></li>
</ul>
</div>

<script type="text/javascript">

otab("sub1_child");
submn('Label1','Label1');
submn('Label2','Label2');
ctab();
at_attach("sub1", "sub1_child", "hover", "y", "pointer");

otab("sub2_child");
submn('Label3','Label3');
submn('Label4','Label4');
ctab();
at_attach("sub2", "sub2_child", "hover", "y", "pointer");

</script>

☼Giải thích 1 chút về code:
- Các code màu tím của menu chính và con phải hòan tòan giống nhau.
- Các code màu xanh chính là các Nhãn trong của blog bạn mà bạn muốn hiển thị trên trên menu.
- Thay dòng YOURBLOG.blogspot.com thành blog của bạn
- onmouseover="this.style.background='#039'" : code màu đỏ chính là màu hiển thị khi bạn rê chuột lên 1 menu con.
- onmouseout="this.style.background='#F57900'" : code màu đỏ là khi ta không rê chuột vào 1 menu con.
- Hãy thay đổi các code màu đó theo ý bạn.

5. Save lại, như vậy đã xong.

Chúc các bạn thành công.
More about

Grammar review - Part 2 - Thể so sánh của tính từ (Comparison of adjectives)

Người đăng: buonkhongem

[FD's BlOg] - Trong loạt bài grammar review này, mình sẽ cùng các bạn ôn tập cũng như tổng hợp lại những kiến thức từ cơ bản đến nâng cao của ngữ pháp tiếng Anh. Ở phần trước chúng ta đã ôn tập về hình thức và chức năng của tính từ, phần tiếp theo này chúng ta tiếp tục xem xét đến thể so sánh của tính từ. Mời các bạn cùng theo dõi.


Hình thức của so sánh hơn(comparative) và so sánh nhất(superlative) :

1. Đối với từ chỉ có 1 âm tiết:
So sánh hơn : + -er
So sánh nhất: + -est

Ví dụ:
Tall, taller, tallest

2. Từ có 1 âm tiết cấu tạo bởi: phụ âm + nguyên âm đơn + phụ âm:
Chúng ta gấp đôi phụ âm cuối rồi mới thêm er hoặc est vào cuối

Ví dụ:
Fat, fatter, fattest
Big, bigger, biggest
Sad, sadder, saddest

3. Từ có 2 âm tiết:

Các từ tận cùng bởi: -y, -ly, -ow, -le, -er, -or, -ure
So sánh hơn: chúng ta có thể thêm er vào cuối từ hoặc thêm more vào phía trước từ đó
So sánh nhất: chúng ta có thể thêm est vào cuối từ hoặc thêm most vào phía trước từ đó
Trong trường hợp này cả hai cách dùng trên đều đúng

Ví dụ:
Happy, happier/more happy, happiest/most happy
Yellow, yellower/more yellow, yeloowest/most yellow
Simple, simpler/more simple, simplest/most simple
Tender, tenderer/more tender, tenderest/most tender

Các bạn chú ý là nếu mình không chắc chắn thì cứ more/most + adjectives cho nó an toàn nhé.
Và một điều chú ý nữa là đối với một số tính từ tận cùng bằng “-y” như: happy, pretty, busy, sunny, lucky…, chúng ta phải thay “-y” bằng “ier” hoặc “iest” trong so sánh hơn hoặc so sánh nhất đó nha.

Ví dụ:
Busy, busier, busiest

4. Từ có 3 hoặc nhiều hơn 3 âm tiết:

Tới đây thì đơn giản rồi, đối với những từ này bạn chỉ việc thêm “more” cho so sánh hơn và “most” cho so sánh nhất vào phía trước từ đó.

Ví dụ:
Important, more important, most important
Expensive, more expensive, most expensive

Ví dụ về áp dụng các thể so sánh:
a. A cat is fast. A tiger is faster but a cheehta is the fastest.
b. A car is heavy, a truck is heavier but a train is the heaviest.
c. A park bench is comfortable, a restaurant chair is more comfortable but a sofa is the most comfortable.

So sánh hơn và so sánh nhất bất qui tắc:
Một số tính từ sau khi được sử dụng ở các thể so sánh thì nó sẽ biến đổi theo cách riêng của nó:


Một số qui tắc khi sử dụng các thể so sánh:

1. “the” + superlative :

Mạo từ xác định “the” luôn được đặt trước thể so sánh nhất

Ví dụ:
He is the richest man in the world.
That is the biggest crocodile I have ever seen.
She is the tallest girl in her class.

2. So sánh hơn + “than” :

Thường dùng để so sánh sự khác biệt giữa hai người, hai vật hoặc 2 sự kiện nào đó.

Ví dụ:
Mt. Everest is higher than Mt. Blanc.
Thailand is sunnier than Norway.
A car is more expensive than a bicycle.
Albert is more intelligent than Arthur.

3. as + adjective + as :

Thường dùng để so sánh giữa những người, vật, nơi chốn, sự việc không có sự khác biệt( hay còn gọi là so sánh bằng).
Ví dụ:
Peter is 24 years old. John is 24 years old. Peter is as old as John.
Moscow is as cold as St. Petersburg in the winter.
Ramona is as happy as Raphael.
Einstein is as famous as Darwin.
A tiger is as dangerous as a lion.

4. not as + adjective + as :

Sự khác biệt cũng có thể được diễn tả bằng cấu trúc not as + adjective + as

Ví dụ:
Mont Blanc is not as high as Mount Everest .
Norway is not as sunny as Thailand .
A bicycle is not as expensive as a car .
Arthur is not as intelligent as Albert .

5. Sự so sánh về số lượng:

Để diễn đạt có sự khác biệt: more, less, fewer … than
Để diễn đạt không có sự khác biệt : as much as, as many as, as few as, as little as

Ví dụ (diễn đạt sự khác biệt) :
With countable nouns: more / fewer

Eloise has more children than Chantal.
Chantal has fewer children than Eloise.
There are fewer dogs in Cardiff than in Bristol
I have visited fewer countries than my friend has.
He has read fewer books than she has.

With uncountable nouns: more / less

Eloise has more money than Chantal.
Chantal has less money than Eloise.
I spend less time on homework than you do.
Cats drink less water than dogs.
This new dictionary gives more information than the old one.

Qui tắc ở đây là:
MORE + nouns that are countable or uncountable
FEWER + countable nouns
LESS + uncountable nouns

Ví dụ ( diễn đạt không có sự khác biệt) :

With countable nouns:

They have as many children as us.
We have as many customers as them.
Tom has as few books as Jane.
There are as few houses in his village as in mine.
You know as many people as I do.
I have visited the States as many times as he has.

With uncountable nouns:

John eats as much food as Peter.
Jim has as little food as Sam.
You've heard as much news as I have.
He's had as much success as his brother has.
They've got as little water as we have.

Qui tắc ở đây là:
as many as / as few as + countable nouns
as much as / as little as + uncountable nouns

Enjoy learning English. See you next time


More about

Bộ sưu tập ảnh: “Quái xế kỷ Jura”

Người đăng: buonkhongem

[FD' BlOg] - Được thiết kế theo phong cách lai giữa những chú khủng long kỷ Jura và những chiếc xe máy và dưới đôi bàn tay khéo léo của nghệ nhân Hiroshi Makoto người Nhật Bản, người xem thật sự bất ngờ và ấn tượng bởi sự sáng tạo và sự tài hoa của tác giả cũng như những gì mà chất liệu Gốm có thể làm được.


Dưới đây là những tác phẩm của ông.

1.Quái thú “Go!Go!” : được thực hiện vào tháng 11 năm 2001. Chiếc xe được sử dụng chất liệu gốm và đây cũng là mẫu đầu tiên trong bộ sưu tập mà Hiroshi Makoto đã thực hiện.









2. Quái thú “Bọ hung” : được sản xuất vào năm 2007, nó có hai chân trước và một bánh sau sử dụng “động cơ 600 phân khối”.











3. Quái thú “Mèo hoang” : với bốn chân và một bánh xe được đặt ở vị trí đuôi.






4. Quái thú ” Công cổ đại” : đặc biệt ấn tượng với hai chân sau và bánh xe phía trước. điểm nhấn của quái thú này chính là cụm máy V-twin kiểu cổ độc đáo.











5. Quái thú “Ngựa hoang” : được trang bị “động cơ” như trên chiếc Kylin GS-400cc








6. Quái thú “Thỏ thần thánh”: Chỉ cần nhìn vào “động cơ” L-twin 900cc đặc trưng của những chiếc Ducati, ta có thể thấy ngay sức mạnh và sự nhanh nhẹn của “Thỏ thần thánh”.












7. “Chim thần”: Với “động cơ” PSS-250cc, “Chim thần” có trọng lượng “khá nhẹ” nhưng khả năng “cất cánh” thì “còn phải xét”.








8. “Chó hoang”: Nghệ nhân Hiroshi tỏ ra rất “thực tế” trong việc sử dụng cặp bánh xe thay cho bốn chiếc chân của chú “chó hoang” đảm bảo sự nhanh nhẹn và tốc độ khi săn mồi.








9. “Chó sói”: Những người đam mê xe cổ sẽ thật sự cảm thấy hài lòng khi thấy động cơ của chiếc WCS-350 mà Hiroshi sử dụng trên mẫu này.








10.“Cá Chép thần”: Với tư thế chuẩn bị quẫy đuôi “vượt Vũ Môn”, “cá Chép thần” của Hiroshi thật sự độc đáo về thiết kế.







(Theo Autopro)
More about