Recent Posts

2 Tampilan AMP Carousel Untuk Widget Popular Post Blogger

Cara membuat Widget Popular Posts Blogger dengan Layout Carousel Slide pada HTML AMP tidak terlalu sulit jika sudah tahu bagaimana penempatan widgetnya.
pengertian dasar dari AMP Carousel adalah menampilkan beberapa konten dalam garis horizontal. dengan ini widget Popular Posts Blogger akan lebih menarik dan mudah di gunakan oleh pengunjung. ada beberapa element dasar pada AMP Carousel yang bisa di coba mana yang lebih menarik dan cocok untuk tema template web/blog.
Elemen Type Pada AMP Carousel
  1. type="carousel"
  2. type="slides"
  3. Auto Slide <amp-carousel type="slides" autoplay delay="2000">
Basic AMP Carousel
Carousel Slide pada HTML AMP Blogger

Penerapan Layout AMP Carousel Slide pada Widget Blogger

Pastikan Script Component sudah terpasang.
<script async="async" custom-element="amp-carousel" src="https://cdn.ampproject.org/v0/amp-carousel-0.1.js"></script>
Cara Pasang Widget Artikel Populer Dibawah Posting BLog.
Cari code berikut :
        <b:section class='main' id='main' showaddelement='no'>
<b:widget id='Blog1' locked='true' title='Posting Blog' type='Blog' version='1'>...</b:widget>
---------- widget baru disini ----------
</b:section>
Jika sudah di temukan dan tahu penempatannya harus dimana.
kemudian letakan code berikut di bagian --- widget baru disini ---

1. AMP Widget Popular Post Dengan Gambar Dan Judul Artikel

<b:widget id='PopularPosts1' locked='false' title='Popular Posts' type='PopularPosts' version='1'>
<b:includable id='main'>
<b:if cond='data:title != &quot;&quot;'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content popular-posts'>
<amp-carousel height='150' layout='fixed-height' type='carousel'>
<b:loop values='data:posts' var='post'>
<b:if cond='data:showThumbnails'>
<!-- Show thumbnails and Title -->
<b:if cond='data:post.featuredImage.isResizable or data:post.thumbnail'>
<a expr:href='data:post.href' expr:title='data:post.title' target='_blank'>
<b:with value='data:post.featuredImage.isResizable ? resizeImage(data:post.featuredImage, 300) : data:post.thumbnail' var='image'>
<amp-img expr:alt='data:post.title' expr:src='data:image' height='150' width='280'/>
</b:with><div><data:post.title/></div>
</a>
</b:if>
</b:if>
</b:loop>
</amp-carousel></div>
</b:includable>
</b:widget>
Gunakan CSS berikut atau edit jika ingin tampilan yang beda.
#PopularPosts1.PopularPosts a,#PopularPosts1.PopularPosts amp-img{width:280px;height:150px;}
#PopularPosts1.PopularPosts h2{position:relative;overflow:hidden;margin:0.83em 0px;text-transform:uppercase;}
#PopularPosts1.PopularPosts h2 div{padding:0 10px 0 0;display:inline;float:left;}
#PopularPosts1.PopularPosts a{position:relative;}
#PopularPosts1.PopularPosts a div{width:280px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;background:rgba(0,0,0,.6);color:#fff;padding:8px 10px;position:absolute;bottom:0;left:0;}

2. AMP Widget Popular Post Dengan Gambar, Judul Artikel dan Snippet

<b:widget id='PopularPosts1' locked='false' title='Popular Posts' type='PopularPosts' version='1'>
<b:includable id='main'>
<b:if cond='data:title != &quot;&quot;'>
<h2><data:title/></h2>
</b:if>
<div class='widget-content popular-posts'>
<amp-carousel height='150' layout='fixed-height' type='carousel'>
<b:loop values='data:posts' var='post'>
<b:if cond='data:showThumbnails'>
<!-- Show thumbnails Title and Snippets -->
<b:if cond='data:post.featuredImage.isResizable or data:post.thumbnail'>
<div class='section'>
<a expr:href='data:post.href' expr:title='data:post.title' target='_blank'>
<b:with value='data:post.featuredImage.isResizable ? resizeImage(data:post.featuredImage, 300) : data:post.thumbnail' var='image'>
<amp-img expr:alt='data:post.title' expr:src='data:image' height='150' width='280'/>
</b:with><div class='judul'><data:post.title/></div>
</a>
<div class='konten'><data:post.snippet/></div>
</div>
</b:if>
</b:if>
</b:loop>
</amp-carousel></div>
</b:includable>
</b:widget>
Gunakan CSS berikut atau edit jika ingin tampilan yang beda.
#PopularPosts1.PopularPosts div.section,#PopularPosts1.PopularPosts a,#PopularPosts1.PopularPosts amp-img{width:280px;height:150px}
#PopularPosts1.PopularPosts h2{position:relative;overflow:hidden;margin:0.83em 0px;text-transform:uppercase}
#PopularPosts1.PopularPosts div.section{position:relative;overflow:hidden;}
#PopularPosts1.PopularPosts h2 div{padding:0 10px 0 0;display:inline;float:left}
#PopularPosts1.PopularPosts a{position:relative}
#PopularPosts1.PopularPosts a div{width:280px;z-index:2;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:block;background:rgba(0,0,0,.6);color:#fff;padding:8px 10px;position:absolute;bottom:0;left:0}
#PopularPosts1.PopularPosts div.section .konten{width:280px;height:100%;padding:8px 10px;background:rgba(0,0,0,.6);color:#fff;white-space:normal;position:absolute;top:0;left:0;z-index: 1;opacity:0; transition: all .4s ease-in-out;}
#PopularPosts1.PopularPosts div.section:hover .konten{opacity:1}
Jika ingin menempatkan widgetnya di atas Footer. maka harus di buat <b:section> baru.
berikut penerapannya. salin code :
<b:section class='carousel-slides' id='carousel-slides' preferred='yes'>

----- masukan widget popular post seperti cara di atas di sini ------

</b:section>
isi bagian yang kosong dengan widget yang ada pada cara di atas,lalu letakan di atas tag HTML Footer.
Jika masih kesulitan cara penerapannya, silahkan diskusikan pada kolom komentar.

Pengaturan Saving SVG Illustrator untuk WEB design

pengaturan svg illustrator untuk webSeperti yang sudah kita ketahui SVG adalah gambar vector yang berbasis XML. SVG sudah sangat banyak di gunakan untuk keperluan web design karena vector tidak merubah kualitas resolusi dari gambar yang di buat.cara untuk membuatnya kalian bisa gunakan software dari Adobe Illustrator karena aplikasi ini paling banyak dan mudah untuk di gunakan. berikut tutorial singkat cara mengatur gambar untuk menyimpan dalam format SVG untuk keperluan WEB Design. Saya menggunakan Adobe Illustrator CS6 untuk Windows-32bit.
Contoh gambar yang saya gunakan dengan 1 warna dan 1 elemen path. contohnya seperti ini
Svg Illustrator logo WEB
cara penyimpanan (Save/Save As) dalam format SVG. karena jika memilih export tidak ada pilihan untuk format SVG
pilih File > Save As
Cara Menyimpan SVG Illustrator
kemudian pilih
  1. SVG Profile: SVG 1.1
  2. Type: SVG
  3. Subsetting: Only Glypsh Used
pengaturan svg illustrator pertama

pengaturan svg illustrator kedua

Untuk pengaturan lainnya kalian bisa gunakan pengaturan yang biasa saya gunakan. karena menurut saya ini yang terbaik.
sebelumnya klik dulu More Options
pengaturan svg illustrator lainnya

pengaturan svg illustrator seluruhnya
  1. Image Location: Link
  2. CSS Properties: Style Elements (Mempermudah Pengaturan CSS dengan tag CLASS)
  3. Decimal Place: 1 (Tergantung lengkungan pada gambar dan beberapa jumlah elemen lainnya)

Finishing klik OK atau ambil code SVG nya untuk penyimpanan langsung pada xHTML
lihat svg illustrator code
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
width="150px" height="150px" viewBox="0 0 150 150" style="enable-background:new 0 0 150 150;" xml:space="preserve">
<style type="text/css">
<![CDATA[
.st0{fill:#F44336;}
]]>
</style>
<g>
<path class="st0" d="M91.4,133.1c-5.2,1.9-10.5,2.8-16.4,2.8c-7,0-13.4-1.4-19.5-4c-6.1-2.6-11.3-6.3-15.9-11.3
c-4.5-4.7-8-10.3-10.8-16.6c-2.1-5.4-3.5-11-3.7-16.9c0-1.2,0-2.3,0-3.3c0-1.2,0-2.3,0-3.3c0.2-6.1,1.6-11.7,3.7-16.9
c2.6-6.3,6.1-12,10.8-16.6c4.5-4.7,9.8-8.4,15.9-11.3c6.1-2.8,12.7-4,19.5-4c7,0,13.4,1.4,19.5,4c6.1,2.8,11.2,6.3,15.9,11.3
c2.3,2.3,4.2,4.9,6.1,7.7l-5.6,6.3c-8.7,9.8-17.3,19.7-26,29.3c13.8-28.6-10.8-41-27.2-23.9c-3,3-5.2,6.8-6.1,10.8
c-0.9,3.5-1.4,8.4-0.7,12.2c1.9,9.4,8.9,16.6,17.8,19.2c2.3,0.5,4,0.9,6.3,0.9c2.6,0,5.2-0.5,7.5-1.2c6.6-2.3,29.1-28.4,47.8-51.1
C103.1-7.3,8.2,13.6,8.2,84.4c0,13.8,4.2,26.7,11.5,37.5c-0.2,1.6-0.5,3.5-0.5,5.2c-9.1-11.7-14.5-26.5-14.5-42.7
c0-38.7,31.4-70.3,70.3-70.3c38.2,0,69.1,29.5,70.3,67.5C134.3,94.2,105.7,128,91.4,133.1z"/>
</g>
</svg>
Referensi Lengkap : Export SVG

Cara Mengatasi Render-Blocking Javascript DI PageSpeed Insights

tutorial perenderan script dengan asyncUntuk keperluan PageSpeed Insights agar penggunaan script seperti javascript pada jQuery Library bisa kita sembunyikan penempatanya. namun saya tidak bisa mengatakan dengan mengatasi masalah ini bisa membuat speed halaman web/blog lebih cepat. karana pada dasarnya halaman akan membaca keseluruhan penggunaan script yang ada.
Pernahkah anda mengalami seperti ini.
masalah render-blocking  PageSpeed Insights
Karena pada script jQuery kita tidak di set Asynchronous (Async). cara mengatasinya lihat pada script jQuery anda. tempatkan Attribute async pada script tersebut seperti ini
<script async src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js' type='text/javascript'></script>
untuk pengguna template XML agar bisa tersimpan - async='async'
<script async='async' src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js' type='text/javascript'></script>
lihat penggunaan Attribute async
Cara lain dengan Javascript sebagai pemanggil url script.
<script type='text/javascript'>
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true; // set true untuk async jquery
s.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();
</script>
untuk permasalahan yang mungkin terjadi pada beberapa kasus untuk template blogger bisa lihat tutorialnya pada asynchronous javascript pada blogger

Asynchronous Javascript Pada Blogger Tidak berjalan pada Firefox ?

Mengatasi Asynchronous Javascript Pada BloggerBagi para pengguna Template XML Blogger yang berniat untuk set javascript dari jQuery Library menjadi async (Asynchronous). mungkin ini di maksudkan Mengatasi Render-Blocking Javascript alhasil script jquery yang ada malah tidak berjalan pada peramban tertentu semisal firefox padahal kalau di buka pada browser Chrome/Opera berjalan lancar. lalu apa masalahnya ?
kemungkinan terjadi karena template Blogger anda valid HTML5. kok bisa ?
coba lihat pada template blogger anda temukan code <head>. tapi untuk kebutuhan agar valid HTML5 / hidden CSS Bundle Blogger biasanya kalian rubah menjadi &lt;head&gt; dan penutupnya menjadi &lt;/head&gt;.
nah agar script jquery berjalan kembali cukup ganti code tadi menjadi <head> kembali tapi akan membuat template anda tidak valid HTML5 lagi bahkan Render-Blocking bertambah pada CSS Bundle BLogger.
Terus caranya agar Asynchronous Javascript Jquery tetap berjalan namun valid HTML5 juga bagaimana ?
Pertama lihat apakah anda sudah menempatkan script jquery librarynya. jika belum itulah penyebab utama kenapa script jquery lain tidak berjalan ^_^.
coba pasang script jquery librarynya yang sudah di set Async. (jika yang sudah ada abaikan)
<script src='https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js' async='async' type='text/javascript'></script>
bisa juga seperti ini
diskusikan jika ada masalah pada script ini.
<script type='text/javascript'>
(function() {
var s = document.createElement('script');
s.type = 'text/javascript';
s.async = true; // set true untuk async jquery
s.src = ('https:' == document.location.protocol ? 'https' : 'http') +
'://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js';
var x = document.getElementsByTagName('script')[0];
x.parentNode.insertBefore(s, x);
})();
</script>
Tempatkan code di atas biasanya penempatan sebelum penutup <head>.
contoh:
<head>

//Script Pasang di antara Tag Head

</head>
Sekarang memasuki kasus permasalahnnya.
Ask. "Saya sudah pasang jQuery di atas dan script jQuery yang sudah ada tidak berjalan pada firefox ?".
itu di karenakan karena tidak adanya fungsi callback script jQuery dimana penutup tag head yang sudah di rubah menjadi &lt;head&gt; menjadikan script librarynya tidak di ketahui penempatannya oleh Firefox.
cara mengatasinya.
script jQuery yang sudah ada tinggal tambahkan callback onload ceperti ini.
window.onload = function () {

//scipt jQuery anda
// seperti back to top atau apa sajalah yang berkaitan dengan jQuery

};
contoh penggunaanya misal script yang sudah ada pada bagian </body> seperti ini
<script type='text/javascript'>
//<![CDATA[
window.onload = function () {

$('tagID 1, tagID 2').each(function() {
//script lainnya
});

or

function() {
//script lainnya
}

};//penutup onload
//]]>
</script>
Seharusnya dengan penambahan script di atas script jQuery anda akan berjalan lancar di semua Browser.
Tinggal kalian test saja bagaimana hasilnya dan buka pada beberapa peramban browser anda. apa sudah tidak ada masalah atau masih tidak berjalan.
cara lain mengatasi Render-Blocking Pada CSS atau Javascript saya buat pada artikel terpisah.
Cara Mengatasi Render-Blocking Javascript DI PageSpeed Insights
selebihnya kalian bisa diskusikan permasahannya

Memasukkan Update Tahun Otomatis Pada HTML - PHP - Javascript

Script sederhana pasang pergantian tahun copyright secara otomatis pada HTML Web / Blog menggunakan dengan PHP ataupun Javascript.

Versi Javascript

Dengan javascript murni tempatkan biasanya pada bagian footer
<script type="text/javascript">
document.write(new Date().getFullYear());
</script>
hasil outputnya :
atau juga seperti ini
Copyright &copy; 2016 <script type="text/javascript">
new Date().getFullYear()>2016&&document.write("-"+new Date().getFullYear());
</script>, Nama Website.
hasil outputnya :
Copyright © 2016, Nama Website.

Versi PHP

Tergantung pengaturan waktu yang digunakan.
apakah anda menggunakan Wordpress ? biasanya penerapan pada footer.php.
<?php echo date("Y"); ?>
hasil outputnya :
Atau juga seperti ini.
Copyright &copy; <?php
$fromYear = 2016;
$thisYear = (int)date('Y');
echo $fromYear . (($fromYear != $thisYear) ? '-' . $thisYear : '');?> Nama Website.
hasil outputnya :
Copyright © 2016, Nama Website.

Mengganti Logo Header menggunakan image SVG

Seperti pada artikel menggunakan svg untuk penggabungan icon mengatakan tidak merekomendasikan mengganti logo header SVG dengan cara itu. Kenapa ? svg berbasis xml, setahu saya google index images lebih menyarankan url dalam tag <img src/> beserta atribut alt (ralat kalau admin salah mendefinisikan ^_^). meskipun saat ini Google sudah punya perangkat lunak yang berjalan untuk menangani SVG sebagai bitmap (konversi ke JPG) terlebih google pernah mengatakan "We index SVG content whether it is in a standalone file or embedded directly in HTML link". namun untuk embed SVG mentah langsung pada HTML saya masih meragukannya apa benar google bisa mengkonversi langsung dengan gambar utuh, tujuan pada artikel ini adalah untuk menghindari kasus-kasus seperti itu, dari pada ragu mending cari aman saja.
terus bagaimana menggunakan SVG untuk Logo header agar tetap terindex pada SEO images google ?

Biasanya ketika kita memasang SVG langsung pada HTML akan menggunakan baris code kurang lebih seperti ini.

<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 17.1.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.2" baseProfile="tiny" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px" y="0px" viewBox="0 0 612 792" xml:space="preserve">
<g id="XMLID_1_">
<g>
<circle fill="red" stroke="black" stroke-width="2" stroke-miterlimit="10" cx="50" cy="50" r="40"/>
</g>
</g>
</svg>

kalau hanya untuk menggunakan SVG pada icon-icon tertentu tidak jadi masalah. namun untuk logo header saya tidak menyarankan memasang langsung code tersebut.
alangkah baiknya Logo header tetap dalam bentuk <img src/> saja.
Rekomendasi penggunaan logo header dengan images.

cara 1 : format gambar bisa berupa svg/png/jpg/gif ataupun webp(Chrome, Opera, Android) ataupun JPEG XR (IE).

<img src="../images/logo.svg/png/jpg/gif" alt="logo Header Blog">

<img src="data:image/svg+xml;charset=utf8,%3csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cg%3e%3cpath ........  %3e%3c/path%3e%3c/g%3e%3c/svg%3e" alt="logo Header Blog">

Saya tidak menyarankan penggunaan background image CSS untuk mengganti logo header karena tidak semua Browser support.
kecuali kalian menggunakan bantuan javascript. apapun itu tetap tidak baik hal penting seperti logo header jika tetap memaksaan menggunakan background images. seperti yang saya bilang kita cari aman saja ^_*
.logo { 
background-image: url("logo/image.svg");
background-repeat: no-repeat;
background-color:transparent;
}

/*
atau
===================================================
*/

.logo {
background-image:url("data:image/svg+xml;charset=utf8,%3csvg viewBox='0 0 64 64' xmlns='http://www.w3.org/2000/svg' xmlns:xlink='http://www.w3.org/1999/xlink'%3e%3cg%3e%3cpath ........ %3e%3c/path%3e%3c/g%3e%3c/svg%3e");
background-repeat:no-repeat;
background-color:transparent;
}

Cara 2 : SVG Fallback - Guide
SVG Fallback Rekomendasi
ambil url logo dengan format PNG dan SVG dan letakan dimana logo anda akan di tampilkan
<img src="../images/logo.svg"
data-fallback="../images/logo.png"
alt="SVG Support Icon"/>

Simpan Javascript pada HTML biasanya di letakan di atas </body>
<script type="text/javscript">
function svgasimg() {
return document.implementation.hasFeature(
"http://www.w3.org/TR/SVG11/feature#Image", "1.1");
}

if (!svgasimg()){
var e = document.getElementsByTagName("img");
if (!e.length){
e = document.getElementsByTagName("IMG");
}
for (var i=0, n=e.length; i<n; i++){
var img = e[i],
src = img.getAttribute("src");
if (src.match(/svgz?$/)) {
/* URL ends in svg or svgz */
img.setAttribute("src",
img.getAttribute("data-fallback"));
}
}
}
</script>

Hasil Code di atas seperti ini


Kesimpulannya tautan url img lebih cepat terkonversi google dibanding jenis xml langsung pada html.
Segala kekurangan tentang tutorial mengganti logo header menggunakan gambar SVG bisa kalian pertimbangkan mana yang lebih baik. mungkin di antara pembaca ada yang lebih tahu dengan SEO images google.
di sini saya hanya membantu sedikit bagi yang awam cara menggunakan SVG pada logo header saja.

Membuat Layout Sidebar Sama Tinggi Dengan Konten

Layout Sidebar Sama Tinggi
masih dalam konteks CSS Flexbox. hampir sama dengan layout footer tetap di bawah dengan Flexbox. namun kali kali ini saya hususkan hanya pada sidebar dengan 2 kolom atau 3 kolom. Perhatikan code-code CSS agar lebih jelas apa dan bagaimana fungsinya.
Layout Sidebar Sama Tinggi Dengan Konten
ada beberapa cara agar sidebar sama tinggi dengan main konten atau sebaliknya yaitu menggunakan CSS ataupun dengan javascript atau jQuery, sebelum adanya CSS flexbox pilahan lain adalah menggunakan table namun bukan itu yang akan kita bahas, kita akan tetap memanfaatkan layout Flexbox.
cara pertama kita bahas dengan CSS Flexbox pada dasarnya hal ini paling mudah untuk kita pahami dan terapkan. hal yang pertama adalah membuat HTML nya dulu, tanpa itu CSS seribu kata pun gak akan nampak hasilnya..

kita ambil contoh HTML nya seperti ini
<div class="container"> <!-- FlexBox -->
<div class="konten">Konten</div>
<div class="sidebar-kiri">Sidebar Kiri</div>
<div class="sidebar-kanan">Sidebar Kanan</div>
</div>
Buat CSS pada container menggunakan display:flex
.container{
display: flex; /* atau inline-flex */
}


/*

Atau Lengkap Dengan Dukungan Semua Browser.

*/


.container{
display: -webkit-box;
display: -moz-box;
display: -ms-flexbox;
display: -webkit-flex;
display: flex; /* atau inline-flex */
}

CSS di atas sudah mewakili bahwa item yang berada pada wadah container sudah dalam posisi flexible - standarnya item-item tersebut memiliki arah horizontal / row. hasilnya seperti ini, dan memiliki sama tinggi.

flexbox colom sama tinggi
namun untuk masing-masing kolom jangan pernah memberi nilai masukan height. misal height:100% kecuali min-height.
Perlu di ingat penggunaan display:flex berbeda dengan display:inline | block yang bergantung berapa nilai masukan seperti width: <integer>%/<integer>px/<integer>vw/<integer>....
untuk tambahan CSS lain kalian bisa diskusikan pada komentar.
solusi lain yaitu dengan memanfaatkan jQuery. karena hampir semua Web design/Blog menyimpan Script jQuery kenapa tidak kita manfaatkan saja untuk mengatur sama tinggi.
Code scriptnya kurang lebih seperti berikut. (perkecil jika kalian menguasai script Variabl atau if else) script ini untuk 3 kolom. kalau 2 kolom script akan lebih pendek.

// Object Kolom
var c = $('.konten'); // class box .konten
var s = $('.sidebar-kiri'); // class box .sidebar-kiri
var k = $('.sidebar-kanan'); // class box .sidebar-kanan
// Dapatkan nilai tinggi dengan outerHeight(); / Height();
var getKontenHeight = c.outerHeight();
var getKiriHeight = s.outerHeight();
var getKananHeight = k.outerHeight();
// Cek jika konten lebih tinggi dari sidebar
if ( getKontenHeight > getKiriHeight ) {
s.css('min-height', getKontenHeight);
}else{
if(getKananHeight > getKiriHeight){
s.css('min-height', getKananHeight);}
}
if ( getKontenHeight > getKananHeight) {
k.css('min-height', getKontenHeight);
}else{
if(getKiriHeight > getKananHeight){
k.css('min-height', getKiriHeight);}
}
// cek jika sidebar lebih tinggi dari konten
if ( getKiriHeight > getKontenHeight) {
c.css('min-height', getKiriHeight);
}else{
if(getKananHeight > getKontenHeight){
c.css('min-height', getKananHeight);}
}

untuk 2 kolom kurang lebih seperti ini

// Object Kolom
var c = $('.konten'); // class box .konten
var s = $('.sidebar-kiri'); // class box .sidebar-kiri
// Dapatkan nilai tinggi dengan outerHeight(); / Height();
var getKontenHeight = c.outerHeight();
var getKiriHeight = s.outerHeight();
// Cek jika konten lebih tinggi dari sidebar
if ( getKontenHeight > getKiriHeight ) {
s.css('min-height', getKontenHeight);
}
// cek jika sidebar lebih tinggi dari konten
if ( getKiriHeight > getKontenHeight) {
c.css('min-height', getKiriHeight);
}
Sesuatu yang tidak di inginkan terjadi. inilah kekurangan menggunakan jquary. kasus tersebut terjadi pada perangkat mobile/tablet/phone ketika memutar layar dari Potrait ke landscape ataupun sebaliknya. namun hal tersebut akan normal jika browser di refresh. mungkin ada beberapa faktor yang kurang pada script atau memang script tersebut akan berjalan dalam kondisi awal atau pada saat kita membuka pertama kali.
masalah tinggi layout sidebar
Cara Penerapan Layout kolom Header,Konten,Sidebar,Footer responsive menggunakan Pure CSS Flexbox lihat demonya.


Membuat footer tetap dibawah jika isi Konten pendek atau kosong

flexbox footer tetap di bawahPada beberapa kasus layout halaman dimana posisi footer akan mengikuti tinggi layout bagian atas . jika konten terisi penuh dengan tinggi layar hal seperti itu tidak akan kita sadari. Namun pada beberapa media mobile akan terlihat perbedaanya. bagi pemula yang baru saja belajar tata letak web rasanya hal ini akan terabaikan. untung saja css memiliki tata letak dengan Flexbox,meski agak sulit untuk memahaminya tapi kalau kita tahu masing-masing fungsi element pada flex akan lebih mudah mereapkannya. saat ini flexbox hampir semua browser terbaru mendukung(support). (abaikan jika masih menggunakan browser lama ) browser support flexbox - www.w3.org/TR/css-flexbox-1/

Penggunaan float masih sering di gunakan. dengan CSS Flexbox float bisa saja di abaikan karena flex bisa memposisikan item,mengatur lebar/panjang item dengan ketentuan bahwa item tersebut dalam wadah yang sama.
Kali ini saya hanya akan memberikan tutorial cara membuat footer tetap di bawah (abaikan penggunaan absolute/fixed posisi) karena itu berbeda penggunaan.

Sebelum memulai pernahkan kalian mengalami seperti ini ? inilah yang akan di bahas bagaimana menyelesaikannya.
layout flexbox kasus pertama

Anggap saja kalian memiliki HTML seperti ini.
<div class="wrapper"> <!-- bungkus semua item dengan flex-->
<header class="header-wrapper">
  <h1>Header</h1>
</header>
<div class="main-wrapper"> <!-- bungkus area flex-grow -->
<div class="main"> <!-- flex baru jika mempunyai sidebar-->
  <article>
    Artikel
  </article>
  <aside>
    sidebar
  </aside>
</div><!-- end main-->
</div> <!-- end main-wrapper-->

<footer class="footer-wrapper">

</footer>
</div><!-- end wrapper-->

CSS flex sebagai wadah semua item seperti ini.
.wrapper{
    background:#ddd;
    box-sizing: border-box;
    display: -webkit-box;
    display: -webkit-flex;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-orient: vertical;
    -webkit-box-direction: normal;
    -webkit-flex-direction: column;
    -ms-flex-direction: column;
    flex-direction: column;
    margin: 0 auto;
    min-height: 100vh; /* menyesuaikan dengan tinggi layar*/
    height:100%;
}
.main-wrapper{
  width:100%;
  overflow:hidden;
  -webkit-flex-grow: 1;
  flex-grow: 1;
}


CSS area flexbox baru untuk class .main
.main {
  display: -webkit-box;
  display: -webkit-flex;
  display: -ms-flexbox;
  display:flex;
}
article{
  -webkit-flex-grow: 1;
  flex-grow: 1;
  width:70%;
  background:#9b9b9b;
}
aside{
  -webkit-flex-shrink: 0;
  flex-shrink: 0;
  width:30%;
  background:#1b96bc;
}
CSS di atas saya gunakan agar Sidebar sama tinggi dengan area content atau sebaliknya, ketahui lebih tentang flex-direction,flex-shrink,flex-grow - (flex Guide).
maka hasil dari CSS akan seperti gambar di bawah. namun masih ada area kosong. itu terjadi ketika pembungkus pada class .main-wrapper dan .main tidak mempunyai ketinggian (height) yang sama atau sama sekali tidak mempunyai ketinggian atau height:auto;
layout flexbox kasus kedua

untuk mengatasinya masukan masing-masing height dengan nilai 100%.
.main-wrapper{
  height: 100%;
}
.main {
  height: 100%;
}

maka hasilnya seluruh area pada content selain header/footer akan memyesuaikan tinggi dengan layar yang terlihat jika content tersebut benar-benar kosong(blank).

layout flexbox finishing
Seluruh CSS Flexbox seperti berikut :

.wrapper {
    box-sizing:border-box;
    display:-webkit-box;
    display:-webkit-flex;
    display:-ms-flexbox;
    display:flex;
    -webkit-box-orient:vertical;
    -webkit-box-direction:normal;
    -webkit-flex-direction:column;
    -ms-flex-direction:column;
    flex-direction:column;
    margin:0 auto;
    min-height:100vh;
    background:#ddd;
    position:relative;
    overflow:hidden;
    height:100%;
}
.main-wrapper {
    width:100%;
    height:100%;
    overflow:hidden;
    flex-grow:1;
}
.main {
    height:100%;
    margin:0 auto;
    display:-webkit-box;
    display:-webkit-flex;
    display:-ms-flexbox;
    display:flex;
}
article {
    -webkit-flex-grow:1;
    flex-grow:1;
    width:70%;
    background:#9b9b9b;
}
aside {
    -webkit-flex-shrink:0;
    flex-shrink:0;
    width:30%;
    background:#1b96bc;
}
.header-wrapper {
    background:#363c44;
    width:100%;
}
.footer-wrapper {
    background:#363c44;
    margin-top:auto;
}

Bonus !!! ^_^
Pengaturan Layout responsive pada lebar tertentu. saya berikan contoh pada layar berukuran 768px.
atur CSS pada tag .main dengan menambahkan flex-direction jika layar menyentuh lebar @media (max-width: 768px) screen ubah .main menjadi column vertical.
/* responsive */
@media (max-width:768px) {
    .main {
        height:100%;
        -webkit-box-orient:vertical;
        -webkit-box-direction:normal;
        -webkit-flex-direction:column;
        -ms-flex-direction:column;
        flex-direction:column;
    }
    article,aside {
        width:100%;
    }
}

Contoh lengkap langsung lihat demo dan source code

Menggunakan SVG untuk penggabungan icon pada icomoon

cara membuat SVG dari icomon.io
SVG (Scalable Vector Graphics) adalah format gambar yang berbasis XML (eXtensible Markup Language) sebagai dasar untuk membentuk gambar vektor. - id.wikipedia.org/wiki/Scalable_Vector_Graphics.
jelas di sini svg menggunakan format vector (berbasis xml) dimana penggunaan vector sangat baik untuk pengolahan gambar yang detail sekalipun gambar tersebut di perbesar/diperkecil hasil kualitas akan sama, berbeda dengan jpeg/png/gif dimana resolusi gambar jika di perbesar akan blur kecuali di perkecil.

Saya ambil contoh xml svg dan penerapan pada HTML menggunakan icomoon.io

Code SVG pada icomoon.io nampak seperti ini
Menggunakan SVG dari icomon.io
HTML (SVG <use>)
Gunakan code ini untuk menampilkan icon dan xlink:href="#icon-github" harus spesifik dengan ID symbol

<svg class="icon icon-github">
<use xlink:href="#icon-github"></use>
</svg>

Symbol Definition(s)

<symbol id="icon-github" viewBox="0 0 32 32">
<title>github</title>
<path d="M16 0.395c-8.836 0-16 7.163-16 16 0 7.069 4.585 13.067 10.942 15.182 0.8 0.148 1.094-0.347 1.094-0.77 0-0.381-0.015-1.642-0.022-2.979-4.452 0.968-5.391-1.888-5.391-1.888-0.728-1.849-1.776-2.341-1.776-2.341-1.452-0.993 0.11-0.973 0.11-0.973 1.606 0.113 2.452 1.649 2.452 1.649 1.427 2.446 3.743 1.739 4.656 1.33 0.143-1.034 0.558-1.74 1.016-2.14-3.554-0.404-7.29-1.777-7.29-7.907 0-1.747 0.625-3.174 1.649-4.295-0.166-0.403-0.714-2.030 0.155-4.234 0 0 1.344-0.43 4.401 1.64 1.276-0.355 2.645-0.532 4.005-0.539 1.359 0.006 2.729 0.184 4.008 0.539 3.054-2.070 4.395-1.64 4.395-1.64 0.871 2.204 0.323 3.831 0.157 4.234 1.026 1.12 1.647 2.548 1.647 4.295 0 6.145-3.743 7.498-7.306 7.895 0.574 0.497 1.085 1.47 1.085 2.963 0 2.141-0.019 3.864-0.019 4.391 0 0.426 0.288 0.925 1.099 0.768 6.354-2.118 10.933-8.113 10.933-15.18 0-8.837-7.164-16-16-16z">
</path>
</symbol>

viewBox="0 0 32 32" menentukan ukuran pada icon

bagaimana penerapan pada HTML? contohnya akan nampak seperti ini:

<!DOCTYPE html>
<html lang="en">

<head>
.................
</head>
<body>
<div class="social">
<svg class="icon icon-github">
<use xlink:href="#icon-github"></use> <!-- callback svg icon with <use xlink:href="#icon-github"></use> -->
</svg>
</div>

<!-- simpan svg symbol di atas </body> -->
<svg version="1.1" xmlns="http://www.w3.org/2000/svg" class="hidden">
<symbol id="icon-github" viewBox="0 0 32 32">
<title>github</title>
<path d="M16 0.395c-8.836 0-16 7.163-16 16 0 7.069 4.585 13.067 10.942 15.182 0.8 0.148 1.094-0.347 1.094-0.77 0-0.381-0.015-1.642-0.022-2.979-4.452 0.968-5.391-1.888-5.391-1.888-0.728-1.849-1.776-2.341-1.776-2.341-1.452-0.993 0.11-0.973 0.11-0.973 1.606 0.113 2.452 1.649 2.452 1.649 1.427 2.446 3.743 1.739 4.656 1.33 0.143-1.034 0.558-1.74 1.016-2.14-3.554-0.404-7.29-1.777-7.29-7.907 0-1.747 0.625-3.174 1.649-4.295-0.166-0.403-0.714-2.030 0.155-4.234 0 0 1.344-0.43 4.401 1.64 1.276-0.355 2.645-0.532 4.005-0.539 1.359 0.006 2.729 0.184 4.008 0.539 3.054-2.070 4.395-1.64 4.395-1.64 0.871 2.204 0.323 3.831 0.157 4.234 1.026 1.12 1.647 2.548 1.647 4.295 0 6.145-3.743 7.498-7.306 7.895 0.574 0.497 1.085 1.47 1.085 2.963 0 2.141-0.019 3.864-0.019 4.391 0 0.426 0.288 0.925 1.099 0.768 6.354-2.118 10.933-8.113 10.933-15.18 0-8.837-7.164-16-16-16z">
</path>
</symbol>
</svg>
</body>
</html>

Hasilnya


untuk menggabungkan (kombinasi) banyak file svg cukup memasukan code symbol pada area svg
<svg>

<symbol id="icon-1">
<path></path>
</symbol>

<symbol id="icon-2">
<path></path>
</symbol>
........ dan seterusnya ..............

</svg>

Hasilnya

saya tidak menyarankan membuat logo header dengan cara penggunaan svg di atas sekalipun itu bisa. untuk menggunakan svg sendiri menjadi logo header saya bahas pada artikel Logo Header Menggunakan SVG

tautan luar : artikel mengenai Icon SVG sprites - Icon System with SVG Sprites & Documentasi icomon.io - icomoon.io/#docs/