Thứ Ba, 30 tháng 9, 2014

TÌM HIỂU THUỘC TÍNH BORDER TRONG CSS

Thuộc tính này thì đảm bảo là có trên mọi website và hầu như ai ai cũng biết. Thế đem vào đây viết bài chi vậy? Lý do rất đơn giản mình viết bài này ở đây là để giới thiệu cho những ai chưa biết, hoặc đơn thuần là biết nhưng nhiều khi chưa biết hết. Không lằng nhằng nữa bắt đầu vào việc thôi.



Tìm hiểu thuộc tính border trong CSS
Thuộc tính border là thuộc tính giúp chúng ta thêm đường viền vào đối tượng, không giống như nhiều thuộc tính cơ bản khác, khi sử dụng để trông được một cách đầy đủ và hoàn thiện nhất nó yêu cầu chúng ta cung cấp 3 điều sau:
Độ dày đường viên
Kiểu đường viền
Màu đường viền
Về độ dày và màu đường viền thì không phải nói gì rồi, còn kiểu đường viền, chúng ta có các lựa chọn như sau: none, dotted, dashed, solid, groove, ridge, inset, và outset.

Sau đây mình xin được tạo ra một đối tượng và tạo đường viền cho nó:

border: 1px none #DDD

border: 2px dotted #DDD

border: 3px dashed #DDD

border: 4px solid #DDD

border: 5px groove #DDD

border: 6px ridge #DDD

border: 7px inset #DDD

border: 8px outset #DDD


Theo mình nghĩ với những ví dụ trực tiếp như trên mình bạn đã đủ để bạn hiểu thuộc tính boder là như thế nào rồi, có lẽ là bài viết này không nói đến gì mới lạ cho lắm, nhưng rất mong rằng nó hữu ích cho một số người đang tìm và học CSS.

P/S: Sau này sau khi hướng dẫn những điều cơ bản về CSS2 xong mình sẽ chuyển sang hướng dẫn lấn sang những thủ thật cực ngầu sử dụng CSS3 đến các bạn.
http://www.kslzone.net/2014/06/tim-hieu-thuoc-tinh-border-trong-css.html

Đọc Bài

BÀI VIẾT LIÊN QUAN CÓ HÌNH ẢNH CHUẨN HTML5

Trước đây mình có giới thiệu đến các bạn một tiện ích bài viết liên quan đạt chuẩn HTML5, nhưng có một điều là nó không có hình ảnh mà chỉ có tiêu đề của bài viết liên quan đó thôi. Đối với mình thì có hình ảnh hay không cũng chã quan trọng, điều quan trọng là tiêu đề của bài viết liên quan có đủ sức hấp dẫn đến người đọc hay không thôi.

Bài viết liên quan có hình ảnh chuẩn HTML5

Hôm nay bài viết này mình sẽ chia sẻ tiện ích bài viết liên quan có hình ảnh lại đạt cả chuẩn HTML5 nữa cho những bạn đang có nhu cầu. Tiện ích này là của người Indonesia tiếp, như mình đã nói ở trước hì Indonesia rất là chuộng Blogger và có rất nhiều hack mod hay dành cho nó.

Tiện ích bài viết liên quan mà mình chia sẻ ở đây mình đã coding lại một vài thứ, tiện ích này ngoài chuẩn HTML5, thì mình đã chỉnh sửa lại giao diện mặc định mà tác giả chia sẻ (mặc định trong xấu quá). Công thêm vào đó mình tích hợp tính năng cắt và resize ảnh thumbnail. Khiến cho tiện ích này đẹp và tối ưu nhất, hình ảnh không còn mờ như cái cũ nữa.


Bài viết liên quan có hình ảnh chuẩn HTML5
Bắt tay vào làm việc thôi đầu tiên thì các bạn tìm và chèn đoàn css này lên trên thẻ ]]></b:skin>

/* RELATED POSTS */
.related-post {
background-color: #fff;
font-size: 16px;
margin-bottom: 40px;
padding: 40px;
}
.related-post a {
color : #333;
}
.related-post h4 {
margin : 0 0 0.5em;
text-transform : uppercase;
color : #555;
}
.related-post-style-3, .related-post-style-3 li {
margin : 0;
padding : 0;
list-style : none;
overflow-wrap : break-word;
overflow : hidden;
}
.related-post-style-3 .related-post-item {
display : block;
float : left;
width : 230px;
margin-right : 10px;
}
.related-post-style-3 .related-post-item:focus {
outline : none;
}
.related-post-style-3 .related-post-item-thumbnail {
display : block;
margin : 0 0 10px;
width : 101%;
height : 125px;
background-color : transparent;
border : none;
padding : 0;
}
.related-post-style-3 .related-post-item-title {
font-weight : bold;
}


@media only screen and (max-width: 800px) {
    .related-post { padding: 0 }
}

Bước tiếp theo các bạn tìm đến chỗ nào trên blog mà các bạn muốn hiển thị tiện ích bài viết liên quan có hình ảnh đặt chuẩn HTML5 này và dán nó vào. Đối với cuối bài viết thì thông thường các bạn tìm đến

<div class='post-footer'>
và chèn xuống dưới
<div class='related-post' id='related-post'/>
  <script type='text/javascript'>
  var labelArray = [<b:if cond='data:post.labels'><b:loop values='data:post.labels' var='label'>
          &quot;<data:label.name/>&quot;<b:if cond='data:label.isLast != &quot;true&quot;'>,</b:if>
      </b:loop></b:if>];
  var relatedPostConfig = {
      homePage: &quot;<data:blog.homepageUrl/>&quot;,
      widgetTitle: &quot;&lt;h4&gt;Bài viết liên quan:&lt;/h4&gt;&quot;,
      numPosts: 3,
      summaryLength: 370,
      titleLength: &quot;auto&quot;,
      thumbnailW: 230,
      thumbnailH: 125,
      noImage: &quot;data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAlgAAAFeCAMAAABuCZFuAAAABGdBTUEAALGPC/xhBQAAAGxQTFRF7e3t+fn55+fn4ODg/Pz85OTk4eHh6urq39/f8vLy4uLi9fX16enp9PT0+vr67u7u6Ojo7+/v6+vr5eXl8/Pz8fHx9vb27Ozs5ubm/v7+3d3d8PDw3t7e/f39+Pj4+/v79/f34+Pj3Nzc////OTi+3wAABrlJREFUeNrt3W13mkgAgNE0byYm0Rg1RgSN8P//43a37W7EAWbcNO7CfT7nzDml9yAMw3BR6jeWDfZfflFW0qcHlsASWALLQRBYAktgSWAJLIElgSWwBJYElsASWBJYAktgSWAJLIElgSWwBJYElsASWBJYAktgSWAJLIElgSWwBJYElsASWBJYAktgSWAJLIElgSWwBJYElsASWBJYAktgSWAJLIElgSWwBJYElsASWBJYAktgSWAJLIElgSWwBJYElsASWBJYAktgSWAJLIElgSWwBJYElsASWAILLIElsASWBJbAElgSWAJLYElgCSyBJYElsASWBJbAElgSWAJLYElgCaz/VbN9Gdftau1ogRXbYxnf3OECK7LXMqV7BwysuC6TYI0dMLDiukqC5SiCFVmeBqtwxMACCyywwAJLYIEFFlhggSWwwAILLLDA0tBhrbdtJT7SaR2rAGswFdN9+XXdXkzAGsTJapqXX1v2UoDV/9PVvPz6xhOw+u7qtjxHdxOw+t28PE/jAqw+tynP1QqsPv8Q3p0NVrYDq78tyvN1AVZ/ez4jrDFY/e3ujLCG8+RneLCKc7oqv4HV165PJHE1Hy2XD9vt9mG5HM2vThzlHay+tjsF1eOifj+3WzxegQXWv4CVj5o0vI9ysMA6DdbdrO16u5jdgQVWOqx807VB0XqTgwVWIqxRzOxAMQILrBRYt7EK3m/BAisa1nP8ZGbxDBZYkQQ2SaNuwAIrah3CQ+KwDxlYYHXfDaYDeM/BAqvrfPV6wsCvGVhgtbc4aeQFWGB94nV70hU8WAOGdXny2JdggdU8L3r6Yrzu98rAGi6s4//7pvcBr49vDcECq2nCPXC7F35taxm4eXwGC6zwDFYRmkYIyVqGpiWKHCywQs1CrkKyluEJrxlYYMWcsH5Ne65CrgKyOk5ZYA0U1rTBVV3WsnGSfgoWWMfPcq6bXB3KWjY//rnOwAKr45bw8PHfP7I2bQ8Wn8ECq97T4axUFt4sZtP6yPoJLLDql+6Hf7p+C25DVH8kuK9d8OdggdU+ORqU1eWq9bcQrEHCOvqyc0BWp6vqHiywDjt+KHgka97pqpqABVbbJVZYVqer1osssIYI66ZKlRV0Vd2ABdbHHqtEWWFX1SNYYLU9z+mS1eCq7UE0WEOEdV8lyWpy1XZbCNYQYT1VKbIaXbXNvYM1RFjNbz8HZDW7qh7AAutjLa+prsf1DdlaXrl4BQusqJ/C0CuDL5UzFlhxsBYJrtpkLcAC62PLFFctspZggRUxj9X46nyTrClYYHXPvLdsydAgy8w7WIczCImummTtwQKra3VDxxYyQVlWN4DV+QmluqusW9Y367HA6toY62i96O6t83O8G7DAOuyt01XR9IbFh97AAqt2kbXudFV1ylp7Swes9rn3bfi585Gsw2eMC+8VgtXxWzgLr2eoyZrF/xKCNVBY5a5Z1od1MgeyZinjgzVQWPUr8Vl4/dUHWfUNtV7AAitw+X7dcF9YW9f3t6z6DMW1/bHAijll/ZR1tF70p6yjma+VHf3ACu6QNQnJCqxD/kvWkatJBhZYcZOk32UF17d/l3U8U/9m12SwohcoL8Lr29fHf/lkn3ewGq/fd6ePnYMFVtoWDlHd+JYOWCl3hpGtfP0LrN/wXbmY70KDNWhYJ30JM+Y7mGANHFZ2n+4qAwusz/813MQNC9bQYZUv64RB1y8lWGDFdRM/n7W7KcECK7Y89kLrPi/BAquMb/8aMeDrPmFEsMD6sa37tmO47TxpPLDA+rWhw6RlsMlj4mhggfXPWWsZXt1QLOfJY4HV24oyvWw+rYt4n86zE0bagtXbTvHwZ+PL1fJHq8vxiWOUO7B628koPqG8Aqu3rc4I6xms/vbtjLCewOpxz2dzNa7A6nGT/Eyusnewet3DmWBtKrD63X12DlfTCqy+93r39TMNiwqs/reefi2tfFVUYA3krHUxett/RfPR6mFwR3fAsASWwJLAElgCSwJLYAksgQWWwBJYAksCS2AJLAksgSWwJLAElsCSwBJYAksCS2AJLAksgSWwJLAElsCSwBJYAksCS2AJLAksgSWwJLAElsCSwBJYAksCS2AJLAksgSWwJLAElsCSwBJYAksCS2AJLAksgSWwJLAElsCSwBJYAksCS2AJLAksgSWwJLAElsCSwBJYAksCS2AJLAksgSWwJLAElsASWGAJLIElsCSwBJbAksASWAJLAktgCSwJLIElsCSwBJbAksASWAJLAktgCSwJLIElsCSwBJbAksDSfwuW9Bv6A2pn49A/ID/hAAAAAElFTkSuQmCC&quot;,
      containerId: &quot;related-post&quot;,
      newTabLink: false,
      moreText: &quot;Read More&quot;,
      widgetStyle: 3,
      callBack: function() {}
  };
  </script>
<script type='text/javascript'>
//<![CDATA[
var randomRelatedIndex,showRelatedPost;(function(n,m,k){var d={widgetTitle:"<h4>Related Posts:</h4>",widgetStyle:3,homePage:"http://www.kslzone.net",numPosts:3,summaryLength:370,titleLength:"auto",thumbnailW:72,thumbnailH:72,noImage:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAAA3NCSVQICAjb4U/gAAAADElEQVQImWOor68HAAL+AX7vOF2TAAAAAElFTkSuQmCC",containerId:"related-post",newTabLink:false,moreText:"Read more",callBack:function(){}};for(var f in relatedPostConfig){d[f]=(relatedPostConfig[f]=="undefined")?d[f]:relatedPostConfig[f]}var j=function(a){var b=m.createElement("script");b.type="text/javascript";b.src=a;k.appendChild(b)},o=function(b,a){return Math.floor(Math.random()*(a-b+1))+b},l=function(a){var p=a.length,c,b;if(p===0){return false}while(--p){c=Math.floor(Math.random()*(p+1));b=a[p];a[p]=a[c];a[c]=b}return a},e=(typeof labelArray=="object"&&labelArray.length>0)?"/-/"+l(labelArray)[0]:"",h=function(b){var c=b.feed.openSearch$totalResults.$t-d.numPosts,a=o(1,(c>0?c:1));j(d.homePage.replace(/\/$/,"")+"/feeds/posts/summary"+e+"?alt=json-in-script&orderby=updated&start-index="+a+"&max-results="+d.numPosts+"&callback=showRelatedPost")},g=function(z){var s=document.getElementById(d.containerId),x=l(z.feed.entry),A=d.widgetStyle,c=d.widgetTitle+'<ul class="related-post-style-'+A+'">',b=d.newTabLink?' target="_blank"':"",y='<span style="display:block;clear:both;"></span>',v,t,w,r,u;if(!s){return}for(var q=0;q<d.numPosts;q++){if(q==x.length){break}t=x[q].title.$t;w=(d.titleLength!=="auto"&&d.titleLength<t.length)?t.substring(0,d.titleLength)+"&hellip;":t;r=("media$thumbnail"in x[q]&&d.thumbnailW!==false)?x[q].media$thumbnail.url.replace(/\/s[0-9]+(\-c)?/,"/s"+d.thumbnailW+"-h"+d.thumbnailH+"-c"):d.noImage;u=("summary"in x[q]&&d.summaryLength>0)?x[q].summary.$t.replace(/<br ?\/?>/g," ").replace(/<.*?>/g,"").replace(/[<>]/g,"").substring(0,d.summaryLength)+"&hellip;":"";for(var p=0,a=x[q].link.length;p<a;p++){v=(x[q].link[p].rel=="alternate")?x[q].link[p].href:"#"}if(A==2){c+='<li><img alt="thumbnail" class="related-post-item-thumbnail" src="'+r+'" width="'+d.thumbnailW+'" height="'+d.thumbnailH+'" title="'+t+'"><a class="related-post-item-title" title="'+t+'" href="'+v+'"'+b+">"+w+'</a><span class="related-post-item-summary"><span class="related-post-item-summary-text">'+u+'</span> <a href="'+v+'" class="related-post-item-more"'+b+">"+d.moreText+"</a></span>"+y+"</li>"}else{if(A==3||A==4){c+='<li class="related-post-item" tabindex="0"><a class="related-post-item-title" href="'+v+'"'+b+'><img alt="thumbnail" class="related-post-item-thumbnail" src="'+r+'" width="'+d.thumbnailW+'" height="'+d.thumbnailH+'" title="'+t+'"></a><div class="related-post-item-tooltip"><a class="related-post-item-title" title="'+t+'" href="'+v+'"'+b+">"+w+"</a></div>"+y+"</li>"}else{if(A==5){c+='<li class="related-post-item" tabindex="0"><a class="related-post-item-wrapper" href="'+v+'" title="'+t+'"'+b+'><img alt="thumbnail" class="related-post-item-thumbnail" src="'+r+'" width="'+d.thumbnailW+'" height="'+d.thumbnailH+'" title="'+t+'"><span class="related-post-item-tooltip">'+w+"</span></a>"+y+"</li>"}else{if(A==6){c+='<li><a class="related-post-item-title" title="'+t+'" href="'+v+'"'+b+">"+w+'</a><div class="related-post-item-tooltip"><img alt="thumbnail" class="related-post-item-thumbnail" src="'+r+'" width="'+d.thumbnailW+'" height="'+d.thumbnailH+'" title="'+t+'"><span class="related-post-item-summary"><span class="related-post-item-summary-text">'+u+"</span></span>"+y+"</div></li>"}else{c+='<li><a title="'+t+'" href="'+v+'"'+b+">"+w+"</a></li>"}}}}}s.innerHTML=c+="</ul>"+y;d.callBack()};randomRelatedIndex=h;showRelatedPost=g;j(d.homePage.replace(/\/$/,"")+"/feeds/posts/summary"+e+"?alt=json-in-script&orderby=updated&max-results=0&callback=randomRelatedIndex")})(window,document,document.getElementsByTagName("head")[0]);
//]]>
  </script>

Toàn bộ những đoạn chữ mà mình tô màu đỏ là những thứ bạn có thể thay đổi cho phù hợp với website của bạn, ngoài ra nếu không biết thì không nên thay đổi gì khác nhé. Chú thích cho những thứ đó:

  • thumbnailW: Chiều rộng ảnh thumbnail
  • thumbnailH: Chiều cao ảnh thumbnail
  • numPosts: Số lượng bài viết liên quan
  • Bài viết liên quan: Tiêu đề của tiện ích, bạn có thể thay bằng bất cứ gì mà bạn thích

Lưu ý là sau khi thay đổi chiểu cao và chiều rộng ở tùy chọn thì ngoài kích thước thực tế của ảnh tiện ích vẫn chưa thay đổi gì đâu, bạn phải thay đổi thủ công phần css ở đâu trang nữa, nhất là 2 thuộc tính mà mình cho màu đỏ.

Lời kết
Tiện ích bài viết liên quan này có một điều nhỏ không biết phải nói là ưu điểm hay là nhược điểm so với các bài viết liên quan bình thường không đạt chuẩn nữa. Nó random lấy chỉ "một" nhãn ngẫu nhiên và lấy ra bài viết có trong nhãn đó thôi chứ không lấy toàn bộ các bài của các nhãn liên quan như những tiện ích bình thường, nhưng nghĩ ra thì nó hên xui sẽ đưa ra cho khách truy cập chính xác hơn những gì khách truy cập đang tìm kiếm. Ngoài ra một nhược điểm nhỏ nữa là nó có thể lấy cả bài viết hiện hành cho vào bài viết liên quan luôn. Nếu có thắc mắc gì thêm về tiện ích này thì cứ để lại nhận xét cho mình ở dưới nhé!

P/S: Mình nhớ có bạn muốn có tiện ích bài viết liên quan giống của mình nên giao diện ở tiện ích này mình đã làm cho nó khá tượng tự rồi đấy :D


"nguồn bài viết từ KslZone.NET".

Đọc Bài

AUTO READMORE KHÔNG THUMBNAIL CHO BLOGGER

Thoáng lướt qua tiêu đề chắc nhiều bạn sẽ nghĩ không có thumbnail thì xài làm gì nhỉ. Thực chất để lấy ra hình ảnh đầu tiên trong bài viết của Blogger thì tương đối rất dễ dàng, bạn có thể hoàn toàn sử dụng code mặc định của nó mà không cần phiền hà đến Javascript và các thứ khác chi cho mất công, thêm vào lại chỉ tổ giảm tốc độ tải trang thôi.

Auto Readmore không thumbnail cho Blogger

Chính vì thế trước mắt bài viết này mình sẽ chia sẻ với các bạn Auto Readmore không thumbnail trước, còn những bài viết tới mình sẽ hướng dẫn các bạn lấy ra ảnh thumbnail khỏi sử dụng js, rồi kết hợp chúng lại với nhau để sử dụng thế nào.

Auto Readmore không thumbnail cho Blogger
Cái này thì tương tự như mấy cái auto readmore đợt trước thôi, mà mình hướng dẫn lại từ đầu kẻo mấy bạn mới không biết. Đầu tiên các bạn chèn đoạn mã sau đây lên trên thẻ </head>

<script type='text/javascript'>//<![CDATA[
function removeHtmlTag(strx, chop) {
    if (strx.indexOf("<") != -1) {
        var s = strx.split("<");
        for (var i = 0; i < s.length; i++) {
            if (s[i].indexOf(">") != -1) {
                s[i] = s[i].substring(s[i].indexOf(">") + 1, s[i].length);
            }
        }
        strx = s.join("");
    }
    chop = (chop < strx.length - 1) ? chop : strx.length - 2;
    while (strx.charAt(chop - 1) != ' ' && strx.indexOf(' ', chop) != -1) chop++;
    strx = strx.substring(0, chop - 1);
    return strx + '...';
}


function createSummary(pID) {
    var div = document.getElementById(pID);
    var summ = 150;
    var summary = '<div><p>' + removeHtmlTag(div.innerHTML, summ) + '</div></p>';
    div.innerHTML = summary;
}
//]]></script>
bạn có thể thay thế số lượng ký tự sẽ lấy ra ở ngay bên trên summ = 150.

Tiếp tục để nó hoạt động bạn tìm và thay thế toàn bộ đoạn mã sau đây

<data:post.body/>

bằng

<b:if cond='data:blog.pageType == &quot;item&quot;'>
 <data:post.body/>
<b:else/>
<b:if cond='data:blog.pageType == &quot;static_page&quot;'>
 <data:post.body/>
<b:else/>
<div expr:id='&quot;summary&quot; + data:post.id'>
 <data:post.body/>
</div>
<script type='text/javascript'> createSummary(&quot;summary<data:post.id/>&quot;);</script>
</b:if>
</b:if>
lưu ý là bên trong đoạn mã thay thế cũng có chứa <data:post.body/> nên phải để ý không lại chèn một nùi code là tiêu đấy nhé. Xong hết thì lưu lại template và kiểm thử.

Lời kết
Đoạn auto readmore này sẽ hoạt động nhanh hơn vì nó không phải làm công việc tìm hình ảnh đầu tiên mà lôi ra nữa. Có thể là đoạn auto readmore với thumbnail thì tiện hơn, nhưng tiện hơn tương đương tới tăng thêm một tẹo thời gian tải trang web.

"nguồn bài viết từ KslZone.NET".

Đọc Bài

THÊM QUẢNG CÁO XUỐNG DƯỚI BÀI VIẾT ĐẦU TIÊN BLOGGER

Đối với những ban chưa hình dung ra được mình xin hướng dẫn cụ thể ở ngay dưới dây. Đơn giản bạn chỉ cần làm là xác định vị trí của bài viết, tiếp đến áp dụng điều kiện thực thi quảng cáo.

Thêm quảng cáo xuống dưới bài viết đầu tiên Blogger

1. Đăng nhập vào Blogger >> Mẫu >> Chỉnh sửa HTML



2. Tim đến thẻ sau đây

<b:include data='post' name='post'/>

Đoạn này là vị trí thêm vào bài viết cho blog của chúng ta.

3. Chèn đoạn mã  sau vào phía dưới để hiển thị dưới bài viết đầu tiên

<b:if cond='data:blog.pageType == &quot;index&quot;'>
<b:if cond='data:post.isFirstPost'>
<!--Add Adsense Code Here / Under the First Post-->
QUẢNG CÁO CỦA BẠN Ở ĐÂY
<!--Add Adsense Code Here / Under the First Post-->
</b:if></b:if>

ở đoạn mã trên mình có sử dụng 2 điều kiện là, trang chủ data:blog.pageType == &quot;index&quot; , và bài viết đầu tiên data:post.isFirstPost . Nếu bạn bỏ điều kiện trang chủ, quảng cáo sẽ hiện dưới tất cả trang bài viết (nếu bạn có ý định chèn quảng cáo vào vừa dưới bài viết đầu vừa cuối bài viết thì bạn có thể bỏ thuộc điều kiện trang chủ.

4. Lưu lại giao diện hiện tại và tận hưởng thành quả.

Như vậy bạn đã chèn xong quảng cáo vào dưới bài viết đầu tiên blog của bạn. Ở các bài viết sắp tới, mình sẽ cố gắng hướng dẫn các bạn những thủ thuật chuyên sâu hơn về Blogger mời các bạn chú ý đón xem. Thanks!

"nguồn bài viết từ KslZone.NET".
Đọc Bài

CHỐNG SPAM BACKLINKS Ở NHẬN XÉT CHO BLOGGER

Spam nhận xét để lấy backlinks là một trong những thứ mà chúng ta có thể thấy ở hầu hết các website nói chung, và các Blogger nói riêng. Việc mà mình muốn nói đến ở đây là, mặc dù Blogger đã mặc định cho thuộc tính nofollow vào nhận xét, nhưng việc những backlink tồn tại ở phần nhận xét một phần nào đó chuyển hướng một ít lượng khách truy cập của chúng ta sang chỗ khác. 

Một thời gian tìm tòi và lục lọi trên Internet mình đã tìm ra được một đoạn jQuery nhỏ nhoi này mà mình cảm thấy rất hữu ích, nó chống khách truy cập nhắp vào backlink ở phần nhận xét mà những spammer để lại.

Chống spam backlinks ở nhận xét cho Blogger
1. Đăng nhập vào Blogger >> Mẫu >> Chỉnh sửa HTML

Chống Spam Backlinks Ở Nhận Xét Cho Blogger


2. Tìm đến thẻ </head> và thêm đoạn jQuery sau vào bên trên

<script>
$(document).ready(function() {
    $(&#39;.comment-content a&#39;).click(function(e) {
        e.preventDefault();
       
    });
});
</script>

3. Lưu lại giao diện và kiểm thử.

Đoạn mã này có chức năng không cho khách truy cập nhắp vào những đường link tại khu vực nhận xét của bạn, có nghĩa là chỉ được thấy chứ không cho "rờ" vào. Và sau khi cài đặt thành công đoạn jQuery trên cho blog của bạn, mình nghĩ bạn sẽ bớt đi phàn lo lắng về những Spammer để lại backlink tại blog của bạn nữa.


"nguồn bài viết từ KslZone.NET".
Đọc Bài

AUTO READMORE KHÔNG JS LẤY ẢNH ĐẦU TIÊN

Tại thời điểm hiện tại thì Blogger khá là phổ biến với dân SEOer, hầu hết mọi cá nhân tổ chức không ít thì nhiều đều sử dụng nó làm website vệ tinh cho mình. Thông thưởng thì đối với một website vệ tinh thì có người thì tự xây dựng nội dung như một website chính thức - TỐT, có người thì sử dụng những phần mềm để auto post bài lấy tin từ những website tin tức.

Auto Readmore không JS lấy ảnh đầu tiên


Vấn đề xây ra thường xuyên là đối với những website từ động lấy tin ở các website khác là đối với những website đang xài Auto Readmore với Thumbnail không sử dụng Javascript mà không tải hoặc đăng lại ảnh, thì nó sẽ không xuất hiện ảnh thumbnails. Điều này không những chỉ gặp ở những website auto post bài, mà còn ngay cả với chúng ta nữa.

Bài viết này mình xin chia sẻ với các bạn Auto Readmore không sử dụng Javascript lấy ảnh đầu tiên làm ảnh thumbnail do mình chỉnh sửa cho các bạn có nhu cầu sử dụng.

Auto Readmore không sử dụng Javascript lấy ảnh đầu tiên làm ảnh thumbnail

Đối với đoạn mã dưới này thì nó khá tương tự với đoạn mã Auto Readmore trước kia, mình chỉnh sửa lại đôi chút thôi, cái này khá đơn giản mà thấy nhiều bạn cũng có nhiêu cầu nên mình chỉnh sơ lại luôn.

Cách thức sử dụng cũng tương tự như cách sử dụng toàn bộ những đoạn mã auto readmore trước kia, bạn tìm đến các thẻ

<data:post.body/>

và thay thế toàn bộ chúng bằng

<b:if cond='data:blog.pageType != &quot;item&quot;'>
 <b:if cond='data:blog.pageType != &quot;static_page&quot;'>
   <b:if cond='data:post.firstImageUrl'>
    <div class='postThumb'>
 <img expr:alt='data:post.title' expr:src='data:post.firstImageUrl' expr:title='data:post.title'/>
    </div>
   </b:if>
   <data:post.snippet/>
  <div class='jump-link'>
   <a expr:href='data:post.url' expr:title='data:post.title'><data:post.jumpText/></a>
  </div>
 <b:else/>
  <data:post.body/>
 </b:if>
<b:else/>
 <data:post.body/>
</b:if>

Đoạn mã trên là có hình thì nó hiện không có thì thôi, bạn nào muốn hiện ảnh mặc định cho mấy bà viết không có hình thì xài đoạn mã sau

<b:if cond='data:blog.pageType != &quot;item&quot;'>
 <b:if cond='data:blog.pageType != &quot;static_page&quot;'>
   <b:if cond='data:post.firstImageUrl'>
    <div class='postThumb'>
 <img expr:alt='data:post.title' expr:src='data:post.firstImageUrl' expr:title='data:post.title'/>
    </div>
   <b:else/>
    <div class='postThumb'>
 <img expr:alt='data:post.title' expr:title='data:post.title' src='https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhnXRQzh2VJQYayvxDfEMIJRebRx6r0rUb2pswfd5wg8MCdM__hAx97kHMA5tUMo5MNbWyuZBfuIKtAJhhfCgdVZzrw6W1XY0T-DGkBpqMxb6mp2NkCm3JfkuQ8v0jPCDWFBOnYIh4p2vnv/w360-c-h220/no-image.png'/>
    </div>
   </b:if>
   <data:post.snippet/>
  <div class='jump-link'>
   <a expr:href='data:post.url' expr:title='data:post.title'><data:post.jumpText/></a>
  </div>
 <b:else/>
  <data:post.body/>
 </b:if>
<b:else/>
 <data:post.body/>
</b:if>

Bước cuối cùng chèn đoạn css sau lên trên thẻ ]]></b:skin>

.postThumb { float: left; margin-right: 20px; width: 300px; height: 250px }
các bạn nhớ thay thế chiều rộng chiều cao cũng như vị trí của hình ảnh mà bạn mong muốn, rồi lưu lại.

Lời kết
Đây là đoạn mã mình viết lại cho mấy bạn có nhu cầu trong không sử dụng Javascript, nhưng vẫn muốn có ảnh up lên ở bên ngoài. Đối với thủ thuật này thì đôi khi hình ảnh sẽ bị bóp méo vì sử dụng css để căn chỉnh nó, bạn có thể sử dụng đoạn js ở bài này với #Blog1 là ID của phần blog, nhưng mà bạn phải lưu ý bỏ nó vào cặp thẻ điều kiện sau

<b:if cond='data:blog.pageType != &quot;index&quot;'>
<b:if cond='data:blog.pageType != &quot;static_page&quot;'>
ĐOẠN JS
</b:if></b:if>
để nó không resize và cắt ở cả trang bài viết nhé.


"nguồn bài viết từ KslZone.NET".
Đọc Bài

THẺ ĐIỀU KIỆN VÀ CÁCH SỬ DỤNG ĐỐI VỚI BLOGGER

Nếu bạn là một lập trình viên, hay đơn giản đang học công nghệ thông tin thì bạn sẽ biết chắc chắn bất kỳ ngôn ngữ lập trình nào cũng có câu (thẻ) điều kiện. Và hôm nay mình muốn hướng dẫn các bạn về thẻ điều kiện cho Blogger, để tùy chỉnh một số thứ như tiện ích, css, javascript, html tùy chọn sẽ được hiện ở đâu, trang nào,... giúp bạn có một website vượt trội hơn. Về vấn đề sử dụng khá đơn giản nên các bạn có thể yên tâm nếu các bạn không biết gì và lập trình.


Thẻ điều kiện và cách sử dụng đối với Blogger


Cú pháp thẻ điều kiện của Blogger
Thẻ điều kiện của Blogger có cú pháp như sau:

<b:if cond='ĐIỀU_KIỆN'>
</b:if>

Thẻ bất đầu là thẻ <b:if>, và đều phải có thuộc tính cond trong mỗi thẻ. Thẻ cond là viết tắt của Condition có nghĩa là điều kiện, và thuộc tính này sẽ nhận giá trị điều kiện của chúng ta. Mỗi thẻ bắt đầu <b:if> được kết thúc bởi thẻ đóng </b:if>.

Danh sách các điều kiện của Blogger
1. Trang Index
Trang Index là tổng hợp gồm các trang như trang chủ, trang hiển thị nhãn, và trang archive.

<b:if cond='data:blog.pageType == "index"'>

2. Trang bài viết
<b:if cond='data:blog.pageType == "item"'>

3. Trang tĩnh hay còn gọi là Trang trống
<b:if cond='data:blog.pageType == "static_page"'>

4. Trang Archive
<b:if cond='data:blog.pageType == "archive"'>

5. Trang chủ
<b:if cond='data:blog.url == data:blog.homepageUrl'>

6. Trang có URL tùy chọn
<b:if cond='data:blog.url == "ĐẶT_URL_VÀO_ĐÂY"'>

7. Trang bài viết và trang tĩnh
<b:if cond='data:blog.url == data:post.url'>

8. Trang xem nhãn
<b:if cond='data:blog.searchLabel'>

9. Bài viết đầu tiên
<b:if cond='data:post.isFirstPost'>

Sử dụng câu điều kiện
Nội dung cần sử dụng sẽ được đặt vào giữa 2 thẻ <b:if cond…> và </b:if>  ví dụ:

<b:if cond='data:blog.pageType == "item"'>
Nội dung (để thực thi nếu điều kiện đúng)
</b:if>

mình cũng sử dụng các  này để chèn quảng cáo vào bài viết ở bài trước:

Nếu bạn muốn thực hiện một nội dung khác nếu điều kiện sai, bạn cần thêm thẻ vào ví dụ:

<b:if cond='data:blog.pageType == "item"'>
Nội dung 1 (để thực thi nếu điều kiện đúng)
<b:else/>
Nội dung 2 (để thực thi nếu điều kiện sai)
</b:if>

Ở tất cả những gì mình đã hướng dẫn ở trên đều sử dụng phép so sánh bằng == nếu bạn muốn so sánh không bằng hay còn gọi là khác thì bạn có thể thay đổi == thành != ví  dụ:

<b:if cond='data:blog.pageType != "item"'>
Nội dung (để thực thi nếu điều kiện đúng)
</b:if>

Nội dung trên sẽ thực hiện ở tất cả các trang khác trang bài viết.

Như vậy mình đã hướng dẫn các bạn đầy đủ cách sử dụng thẻ điều của của Blogger. Hi vọng thủ thuật này giúp bạn có thêm ý tưởng sáng tạo cho blog của mình!


"nguồn bài viết từ KslZone.NET".
Đọc Bài