Home » Archives for tháng 4 2009
Modify Form comment : Bài 2 - Tạo style cho bộ đếm số bài comment
10:01 |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.
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...")
20:33 |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() {
$('.excerpt').expander({
slicePoint: 450, // default is 100
expandEffect: 'fadeIn',
expandText: '[...]', // default is 'read more...'
userCollapseText: '[^]' // default is '[collapse expanded text]'
});
});
</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() {
$('.excerpt').expander({
slicePoint: 450, // default is 100
expandEffect: 'fadeIn',
expandText: '[...]', // default is 'read more...'
userCollapseText: '[^]' // default is '[collapse expanded text]'
});
});
</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.Antivirus : NOD32 Update Viewer 4.01.2
08:04 |[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
http://www.mediafire.com/?1cnmmdmnnyn
Internet Download Manager 5.16 Build 3
07:36 |[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.
Read more…
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
http://www.mediafire.com/?kdn2oynucwk
Bled 2009 DVDrip (kinh dị)- Mediafire Link
06:55 |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
Thay đổi tốc độ chạy chữ (ảnh) bằng cách rê chuột (Javascript)
01:44 |[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>
3. Save lại là xong.
Chúc các bạn thành công.
Nguồn : tham khảo từ internet.
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
21:38 |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.
Tạo tiện ích đóng, mở tab nội dung (ẩn hiện)
02:39 |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 = '−'; 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.
Ảnh rõ hơn khi rê chuột vào, một ứng dụng của Javascript
00:47 |[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ẻ:
- 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.
Read more…
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.
Tạo thanh menu nằm ngang có sổ dọc - Dùng hiệu ứng ảnh.
23:15 |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.gif và tabrightE.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 xanh là mô 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.
Grammar review - Part 2 - Thể so sánh của tính từ (Comparison of adjectives)
18:48 |[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
Learning English through idioms - Section 1 - Barking Up The Wrong Tree ( looking for something in the wrong place ... )
09:11 |[FD's BlOg] - When you are looking for something that is not where you are looking, you are "barking up the wrong tree." Example: "I know you think I stole your umbrella. But really, I don't have it. You are barking up the wrong tree."
You are like a dog that is barking up at a tree that has nothing in it. This may also mean trying to find the answer to some problem by using the wrong approach. Example: "I have been trying to solve this one problem for an hour. I really do not know how to do it." Reply: "Yes, I can see that. You've been barking up the wrong tree."
You are "barking up the wrong tree" when you are trying to find something, but you are looking in the wrong place.
Câu thành ngữ này ám chỉ việc bạn đang tìm kiếm một vật gì đó sai chỗ, giống như chú chó đang sủa ở một gốc cây mà trên cái cây đó không có gì cả. Câu thành ngữ này cũng có nghĩa là cố gắng tìm kiếm giải pháp cho một vấn đề nào đó nhưng lại tiếp cận sai hướng.
Sử dụng thành ngữ trong viết cũng như nói sẽ làm cho ý cần diễn đạt gây nhiều ấn tượng hơn.
So, enjoy learning English and using idioms.
Honda Zeppelin – “Tuyệt sắc giai nhân”
09:07 |[FD's BlOg] - Thế giới môtô mới đây lại chào đón sự gia nhập của một “chiến binh” concept với tên gọi ấn tượng – Honda Zeppelin. Đây là đề án tốt nghiệp của Myung Jin Jung – sinh viên khóa đào tạo thiết kế ôtô trường đại học Hongik (Hàn Quốc) – nhằm hướng tới mô hình sedan thế hệ mới trong tương lai. Song khi trình làng, Honda Zeppelin nhanh chóng trở thành tác phẩm nghệ thuật sống động thu hút người xem nhờ vẻ đẹp lạ của một mẫu sedan sang trọng lịch lãm.
Trang bị lớp phủ ngoài màu trắng bạc, chiếc xe dễ tạo sức hút trên đường nhờ kết hợp phá cách giữa “tạo hình” lấy cảm hứng từ…khí cầu và ngoại thất của một mẫu sedan hạng sang truyền thống. Điểm nhấn của sản phẩm có lẽ nằm ở đường chạy “lạ” đổ dọc từ mui nóc tới gầm xe, “xuyên” qua thiết kế cửa sau.
Bên cạnh đó, các tay chơi cũng tìm thấy ở chiếc xe sức hút đặc biệt nhờ kính chắn gió kết nối màn hình video hiển thị toàn diện bên trong, giúp mở rộng tối đa phạm vi quan sát của chủ nhân so với các loại kính chắn gió thông thường.
Nội thất trên xe cũng tạo cảm hứng đặc biệt với ghế trước có khả năng xoay…180 độ, giúp người ngồi trước “diện kiến” người ngồi sau nhờ hệ thống chuyển đổi đặc biệt theo mô hình giải trí – “Entertainment Mode”. Thiết kế theo mô-típ phòng khách ấm cúng, sang trọng với ghế ngồi chất lượng cao và thoải mái, chiếc xe cũng mang tới những khoảnh khắc khám phá thiên nhiên với cửa xe bài trí kiểu cánh chim (gullwing) mới lạ. Thêm vào đó, các tay lái cũng có cơ hội “thả hồn lãng du” khi thưởng thức hệ thống âm thanh đặc biệt tiêu chuẩn Bowers & Wilkins – Nhà sản xuất loa hàng đầu Anh quốc.
(Theo Autopro)
Câu chuyện tờ giầy trắng
08:16 |[FD's BlOg] - Con người ta luôn luôn chú ý đến những lỗi nhỏ nhặt, mà quên đi tất cả những phẩm chất tốt đẹp còn lại.
Có một lần, tại một trường trung học, ngài hiệu trưởng đến gặp các em học sinh để nói chuyện. Trong khi nói, ông giơ lên cho các em thấy một tờ giấy trắng, trên đó có một chấm tròn đen ở một góc nhỏ, và hỏi:
- Các em có thấy đây là gì không?
Tức thì cả hội trường vang lên:
- Đó là một dấu chấm.
Ngài hiệu trưởng hỏi lại:
- Thế không ai nhận ra đây là một tờ giấy trắng cả ư?
Và ngài kết luận:
- Thế đấy, con người luôn luôn chú ý đến những lỗi nhỏ nhặt, mà quên đi tất cả những phẩm chất tốt đẹp còn lại. Khi phải đánh giá một sự việc, hay là một con người, thầy mong các em sẽ chú ý đến tờ giấy trắng nhiều hơn là những vết bẩn có trên nó.
Read more…
Có một lần, tại một trường trung học, ngài hiệu trưởng đến gặp các em học sinh để nói chuyện. Trong khi nói, ông giơ lên cho các em thấy một tờ giấy trắng, trên đó có một chấm tròn đen ở một góc nhỏ, và hỏi:
- Các em có thấy đây là gì không?
Tức thì cả hội trường vang lên:
- Đó là một dấu chấm.
Ngài hiệu trưởng hỏi lại:
- Thế không ai nhận ra đây là một tờ giấy trắng cả ư?
Và ngài kết luận:
- Thế đấy, con người luôn luôn chú ý đến những lỗi nhỏ nhặt, mà quên đi tất cả những phẩm chất tốt đẹp còn lại. Khi phải đánh giá một sự việc, hay là một con người, thầy mong các em sẽ chú ý đến tờ giấy trắng nhiều hơn là những vết bẩn có trên nó.
Sưu tầm
"Nếu có ai đó nói xấu bạn, bạn có để ý không?"
08:08 |Nghệ thuật sống
[FD's BlOg] - Khi người khác đặt câu hỏi: "Nếu có ai đó nói xấu bạn, bạn có để ý không?" thì bạn sẽ có 2 cách trả lời.
Nếu bạn nói: "Tôi không quan tâm người khác nghĩ gì!" thì thực ra bạn đang nói rằng "Tôi không quan tâm đến người khác nhìn nhận và đánh giá tôi ra sao và vẫn ôm khư khư cái cách sống ích kỷ của riêng mình."
Nếu bạn nói: "Tôi không quan tâm người khác nghĩ gì!" thì thực ra bạn đang nói rằng "Tôi không quan tâm đến người khác nhìn nhận và đánh giá tôi ra sao và vẫn ôm khư khư cái cách sống ích kỷ của riêng mình."
Một người biết suy nghĩ sẽ điềm đạm trả lời: "Tôi sẽ xem người khác nói gì về mình, nếu người ta đánh giá đúng rằng tôi có thói xấu đó, tôi sẽ sửa chữa! Nếu thấy vô lý, tôi sẽ không quan tâm!"
Bạn biết đấy, không có lửa làm sao có khói. Đa phần chúng ta hay cố chấp và luôn nghĩ bản thân mình là đúng nên không cần quan tâm đến người khác nghĩ gì, cứ sống hăng hái cho riêng mình, đạt được cái cụ thể cho riêng mình. Bạn nên nhớ, sống trong xã hội này không phải chỉ có một mình bạn và bạn không phải lả "cái rốn của vũ trụ "nên bạn cần phải dung hòa với mọi người hơn.
Hãy luôn tự hỏi bản thân "Ta trong mắt ai thế nào" nếu bạn không muốn nảy sinh những điều dị hợm khó coi. Ngồi trong quán ăn đông người thì co chân lên ghế, đi ngoài đường khạc nhổ trúng cả vào người đi phía sau, ngồi học mở nhạc thật lớn để nổi bật, chen lấn xô đẩy trong lúc mua vé xem ca nhạc...và còn nhiều phong cách sống khiến bạn lập dị hơn nữa.
Một người bạn Mỹ sẽ rất băn khoăn sao bạn lại có thể vứt lon nước vừa uống xuống nắp cống nước thải. Bạn trai người Úc sẽ nhìn bạn bằng một con mắt khác khi bạn ăn uống thật tự nhiên và vô tư, đến nỗi tiếng chóp chép phát ra từ miệng vang khắp cả phòng ăn. Và khi đi chợ cùng người bạn Nhật họ sẽ nhạc nhiên khi chúng ta dùng quá nhiều túi nilon đựng. Đó không phải là vì kinh tế khác nhau, mà vì văn hoá và cách ứng xử đã không giống nhau.
Có những lúc bạn nên lắng nghe những lời góp ý hoặc cả những lời nói xấu sau lưng mình để bạn biết sống có người khác nữa, sống cho người khác nữa, và sống tôn trọng người khác nữa. Trong thời kỳ hội nhập kinh tế quốc tế, chúng ta phải thực hiện điều đó khẩn trương hơn nữa, để môi trường sinh thái dễ chịu, hài hòa, văn minh và thân thiện.
Bạn là một cá nhân nhưng không thể tồn tài ngoài sự vận động phát triển của xã hội. Bạn có ảnh hưởng và bị ảnh hưởng từ người khác. Bạn không tồn tại độc lập. Bạn sống có người khác.
Bạn không thể mong muốn và làm mọi thứ vì cá nhân bạn, như thế là ích kỷ. Vì bạn biết yêu thương và được yêu thương, nên bạn phải sống cho người khác.
Bạn có phong cách, tính cách riêng, bướng bỉnh, ngô nghê, quậy phá... Nhưng bạn không thể thể hiện tự nhiên quá phong cách sống của mình trước mặt người khác. Bạn không thể muốn làm gì thì làm vì ý thích của mình, như thế đôi khi bạn đã sống không tôn trọng người khác.
Đã đến lúc bạn phải trả lời câu hỏi "Tôi trong mắt người khác là như thế nào?". Hành trình trở thành một công dân tốt trong mắt người khác bao giờ cũng là mục đích hấp dẫn trong niềm kiêu hãnh con người.
(Sưu tầm) - KTĐN
Bo góc với lệnh CSS
03:01 |CSS Round Corners
[FD's BlOg] - Bài viết trước mình có giới thiệu cách bo góc với CSS3, và bạn Ngankvn có thắc mắc là muốn bo góc với phương pháp cũ, và hôm nay mình cũng xin giới thiệu cho mọi người cách bo góc với phương pháp cũ, đó là dùng trong CSS.
Thủ thuật bo góc này dựa trên việc xếp chồng các đường viền lại với nhau kết hợp với giảm lề đều ở mỗi đường. Mình sẽ vẽ 1 hình ví dụ cho các bạn thấy.
- Trong hình trên, đường màu xanh biểu thị cho border trong cùng, và căn lề nhỏ nhất, tiếp theo là đường màu xanh dương - có căn lề lớn hơn, và cuối cùng là đường màu đỏ có căn lề lớn nhất cũng chính là border ngòai cùng. Việc bo góc tròn hay không là do ta tính tóan căn lề cho từng border. Và mặc định border ngòai sẽ bo lấy border trong, nên nó sẽ xếp lớp 1 cách liên tục.
- Đường màu xám sẽ là kết quả khi ta bo.
- Cơ bản là như thế.
Bây giờ tiến hành vào từng ví dụ.
Ví dụ 1: Các border có cùng màu và cùng với màu nền của khung chứa nội dung.
►Code:
<!--CSS-->
.b1f, .b2f, .b3f, .b4f{font-size:1px; overflow:hidden; display:block;}
.b1f {height:1px; background:#ddd; margin:0 5px;}
.b2f {height:1px; background:#ddd; margin:0 3px;}
.b3f {height:1px; background:#ddd; margin:0 2px;}
.b4f {height:2px; background:#ddd; margin:0 1px;}
.contentf {background: #ddd;}
.contentf div {margin-left: 5px;}
<!--HTML-->
<b class="b1f"></b><b class="b2f"></b><b class="b3f"></b><b class="b4f"></b>
<div class="contentf">
<div>FD's BlOg - Ví dụ 1 : các border có cùng màu, và cùng màu với nền</div>
</div>
<b class="b4f"></b><b class="b3f"></b><b class="b2f"></b><b class="b1f"></b>
►Đọc Code:
- Ta thấy class b1f chính là lớp border ngòai cùng và được căn lề là 5px -> lớn nhất.
- Các lớp tiếp theo b2f, b3f, b4f căn lề giảm dần 3px, 2px, 1px,
- Và các border này và nền của nội dung đều có màu là #ddd.
► Hình minh họa:(nhấp vào ảnh để xem kích thước thật)
Để thấy rõ như hình vẽ ví dụ, ta sẽ sang ví dụ 2:
Ví dụ 2: Các đường boder có các màu khác nhau.
►Code:
<!--CSS-->
.b1f, .b2f, .b3f, .b4f{font-size:1px; overflow:hidden; display:block;}
.b1f {height:1px; background:#F00; margin:0 5px;}
.b2f {height:1px; background:#0F0; margin:0 3px;}
.b3f {height:1px; background:#00F; margin:0 2px;}
.b4f {height:2px; background:#F0F; margin:0 1px;}
.contentf {background: #ddd;}
.contentf div {margin-left: 5px;}
<!--HTML-->
<b class="b1f"></b><b class="b2f"></b><b class="b3f"></b><b class="b4f"></b>
<div class="contentf">
<div>FD's BlOg - Ví dụ 2 : các border có màu khác nhau</div>
</div>
<b class="b4f"></b><b class="b3f"></b><b class="b2f"></b><b class="b1f"></b>
►Đọc Code:
- Ta thấy các border b1f, b2f, b3f, b4f có các màu lần lượt là #F00, #0F0, #00F, #F0F.
► Hình minh họa:(nhấp vào ảnh để xem kích thước thật)
Ví dụ 3: Một ví dụ về bo góc có đường viền.
►Code:
<!--CSS-->
.b1, .b2, .b3, .b4{font-size:1px; overflow:hidden; display:block;}
.b1 {height:1px; background:#888; margin:0 5px;}
.b2 {height:1px; background:#ddd; border-right:2px solid #888; border-left:2px solid #888; margin:0 3px;}
.b3 {height:1px; background:#ddd; border-right:1px solid #888; border-left:1px solid #888; margin:0 2px;}
.b4 {height:2px; background:#ddd; border-right:1px solid #888; border-left:1px solid #888; margin:0 1px;}
.contentb {background: #ddd; border-right:1px solid #888; border-left:1px solid #888;}
.contentb div {margin-left: 5px;}
<!--HTML-->
<b class="b1"></b><b class="b2"></b><b class="b3"></b><b class="b4"></b>
<div class="contentb">
<div>FD's BlOg - Ví dụ 3: bo góc có đừong viền</div>
</div>
<b class="b4"></b><b class="b3"></b><b class="b2"></b><b class="b1"></b>
►Đọc Code:
- Ta thấy rằng các lớp b2, b3, b4 có thêm các đường border ở 2 bên trái và phải, với màu giống như màu của lớp ngòai cùng b1.
► Hình minh họa:(nhấp vào ảnh để xem kích thước thật)
Nâng cao hơn, ta sẽ tạo ra một lớp có màu riêng biệt so với các phần khác, ví dụ như tiêu đề của bảng. Các bạn xem ví dụ 4 bên dưới.
Ví dụ 4: Tạo 1 lớp có màu khắc biệt
►Code:
<!--CSS-->
.b1h, .b2h, .b3h, .b4h, .b2bh, .b3bh, .b4bh{font-size:1px; overflow:hidden; display:block;}
.b1h {height:1px; background:#aaa; margin:0 5px;}
.b2h, .b2bh {height:1px; background:#aaa; border-right:2px solid #aaa; border-left:2px solid #aaa; margin:0 3px;}
.b3h, .b3bh {height:1px; background:#aaa; border-right:1px solid #aaa; border-left:1px solid #aaa; margin:0 2px;}
.b4h, .b4bh {height:2px; background:#aaa; border-right:1px solid #aaa; border-left:1px solid #aaa; margin:0 1px;}
.b2bh, .b3bh, .b4bh {background: #ddd;}
.headh {background: #aaa; border-right:1px solid #aaa; border-left:1px solid #aaa;}
.headh h3 {margin: 0px 10px 0px 10px; padding-bottom: 3px;}
.contenth {background: #ddd; border-right:1px solid #aaa; border-left:1px solid #aaa;}
.contenth div {margin-left: 12px; padding-top: 5px;}
<!--HTML-->
<b class="b1h"></b><b class="b2h"></b><b class="b3h"></b><b class="b4h"></b>
<div class="headh">
<h3>Tiêu đề của bảng</h3>
</div>
<div class="contenth">
<div>Nội dung của bảng</div>
</div>
<b class="b4bh"></b><b class="b3bh"></b><b class="b2bh"></b><b class="b1h"></b>
►Xem hình minh họa:
Như vậy coi như mình đã giới thiệu xong cách bo góc bằng phương pháp cũ, bo góc với CSS. Các bạn có thể lấy 4 mẫu mình ví dụ rồi chỉnh sửa màu theo ý mình là dùng được.
Theo Blog Yosle