Preview Mode Links will not work in preview mode

Cascading Style Sheets (CSS) is the web’s core styling language. For web developers, It’s one of the quickest technologies to get started with, but one of the hardest to master. Follow Una Kravets and Adam Argyle, Developer Advocates from Google, who gleefully breakdown complex aspects of CSS into digestible episodes covering everything from accessibility to z-index.

No episodes found.

').html('If you are using an iPad, you may install the app below:')); } $('#download_app_div').append(plistAnchor); } else { $('#download_app_div').empty().html('An error has occurred:' + json.message); } } else { $('#download_app_div').empty().html('An error has occurred'); } }, error:function(xhr, textStatus, errorThrown){ $('#download_app_div').empty().html('An error has occurred: ' + textStatus); } }); } else { $('#download_app_div').empty().html('Sorry, app download is only available for iOS devices.'); } } var page_filter = 1; var category_filter = "."; var text_filter = ""; var size_filter = "5"; var year_filter = "0"; var month_filter = "0"; var text_posts_only = false; var premium_filter = false; var player_position = "above"; //lets create widget bar var colWidth = 6; function escapeHtml(text) { return text .replace(/&/g, "&") .replace(//g, ">") .replace(/"/g, """) .replace(/'/g, "'"); } //load more on bottom of page $(window).scroll(function () { if(!lockScroll){ if ($(window).scrollTop() >= $(document).height() - $(window).height() - 60) { lockScroll = true; var requestUrl = "https://thecsspodcast.libsyn.com/website"; requestUrl += "/page/"+ (page_filter + 1); if(text_posts_only){ requestUrl += "/podcast/blog"; } else if(premium_filter){ requestUrl += "/search/is_premium"; } else if(text_filter != ""){ requestUrl += "/search/"+ text_filter; } else if(month_filter != 0) { requestUrl += "/"+ year_filter +"/"+ month_filter; } else if(year_filter != 0) { requestUrl += "/" + year_filter; } else { requestUrl += (category_filter != "" ? "/category/"+category_filter : ""); } requestUrl += "/render-type/json"; $.ajax({ type: 'GET', url: requestUrl, async: false, success:function(json){ var items = JSON.parse(json); if(items.length > 0){ for(var i = 0; i < items.length; i++){ var item = new Array(); item = items[i]; var isTextOnly = typeof item.primary_content == 'undefined'; var isVideo; if(isTextOnly){ isVideo = false; } else { isVideo = item.primary_content.file_class == "video"; } //create action buttons var actionButtonsRow = '

'; if(isTextOnly){ var escapedItemTitle = escapeHtml(item.item_title); actionButtonsRow += '
'; actionButtonsRow += '
Download'; } } if(item.extra_content.length > 0){ for (var x = 0; x < item.extra_content.length; x++) { if(item.extra_content[x].file_class == "pdf"){ var extraContentLabel = item.extra_content[x].content_title !== "" ? item.extra_content[x].content_title : item.extra_content[x].content_type; actionButtonsRow += '
' + extraContentLabel + ''; } else { if(enablePremiumDownload == true){ var extraContentLabel = item.extra_content[x].content_title !== "" ? item.extra_content[x].content_title : item.extra_content[x].content_type; actionButtonsRow += '
' + extraContentLabel + ''; } } } } actionButtonsRow += ""; //begin row html = '
'; if(isTextOnly){ html += '
'; html += '

'+ item.item_title +''; html += ''; html += '

'+ item.release_date +''; html += '

'+ item.item_body_short +''; html += '

'; html += 'Read More'; html += actionButtonsRow; html += ''; } else { //player var playerSide = '

'+item.item_title+''; playerSide += ''; if(item.premium_state == "premium" && !premiumAuthorized){ playerSide += '

This is a Premium Episode'; } else { if(item.primary_content.file_class == "pdf"){ playerSide += ' Download PDF'; } else { playerSide += item.player; } playerSide += actionButtonsRow; } //description var descriptionSide = '

'+item.release_date+''; descriptionSide += '

'+item.item_body_short+''; descriptionSide += '

'; descriptionSide += 'Read More'; html += '
'; html += player_position == "above" ? playerSide : descriptionSide; html += ''; html += '
'; html += player_position == "above" ? descriptionSide : playerSide; html += ''; } html += ''; html += '
'; //add to container $(".item-container").append(html); } page_filter++; adjustPlayerWidth(); lockScroll = false; } else { lockScroll = true; } }, error:function(xhr, textStatus, errorThrown){ console.log(errorThrown); } }); } } }); $("#btn-send-contact").click(function(event){ event.preventDefault(); var error = ""; //validate var valid = true; $('#podcast-page-contact-form').find(':input:not(button)').each(function(){ var name = $(this).attr("name"); var value = $(this).val(); if (typeof name != 'undefined' && value == ""){ valid = false; return false; } }); if(valid){ //submit form var datastring = $("#podcast-page-contact-form").serialize(); $.ajax({ type: "POST", url: "https://web-support.libsyn.com/contact/submit", data: datastring, dataType: "json", success: function(data) { if(data == false){ error = "Error Your message could not be sent at this time. Please try again later."; $("#podcast-page-contact-form-error").html(error).fadeIn().delay(5000).fadeOut(); } else { $('#podcast-page-contact-form').find(":input").val("").hide(); $('#podcast-page-contact-form').fadeOut(); $("#podcast-page-contact-form-success").show(); } }, error: function() { error = "Error Your message could not be sent at this time. Please try again later."; $("#podcast-page-contact-form-error").html(error).fadeIn().delay(5000).fadeOut(); } }); } else { error = "Error Please fill out all fields and submit again."; $("#podcast-page-contact-form-error").html(error).fadeIn().delay(5000).fadeOut(); return false; } }); var playerStatusRequestSent = false; var href = null; /* $(document).on('click', ".read_more", function (e){ var iframeId = $(this).data("iframe-id"); if (document.getElementById(iframeId).contentWindow) { e.preventDefault(); href = $(this).attr("href"); var addColon = $("#"+iframeId).attr("src").indexOf(":") == -1 ? ':' : ''; var iframeHref = 0 + $("#"+iframeId).attr("src"); var receiver = document.getElementById(iframeId).contentWindow; window.addEventListener('message', receiveMessage); receiver.postMessage('player_status_request', iframeHref); playerStatusRequestSent = true; } }); */ function receiveMessage(e) { if(playerStatusRequestSent){ try { var playerData = JSON.parse(e.data); if(typeof(playerData.elapsed) != "undefined" && playerData.elapsed != "00:00:00"){ localStorage.setItem(href, JSON.stringify(playerData)); } if(href !== null){ window.location = href; } } catch (e) { return false; } } }