{"id":1114,"date":"2025-10-01T05:39:15","date_gmt":"2025-09-30T20:39:15","guid":{"rendered":"https:\/\/touhyo.com\/blog\/?p=1114"},"modified":"2025-10-23T23:32:00","modified_gmt":"2025-10-23T14:32:00","slug":"magic-for-old-browsers","status":"publish","type":"post","link":"https:\/\/touhyo.com\/blog\/en\/magic-for-old-browsers\/","title":{"rendered":"Magic for old browsers"},"content":{"rendered":"\n<p>In the world of the web, new standards are constantly emerging. And because technological development occurs at an astonishing pace, older standards become incompatible and gradually face exclusion.<\/p>\n\n\n\n<p>To put it simply, it&#8217;s like an older smartphone model that can&#8217;t be updated to the latest OS. Hasn&#8217;t everyone experienced something like product support ending?<\/p>\n\n\n\n<p>Computers and smartphones have dedicated browser apps for viewing the internet, but there are different types of browsers. These are the icons you launch when browsing pages, such as Safari on iPhone or Chrome on Android.<\/p>\n\n\n\n<p>For projects where time is limited, specifying &#8220;compatible only with the latest browsers&#8221; minimizes issues and ensures smooth progress. However, some companies still use older browsers internally for security reasons, so depending on the request, we may need to broaden the compatibility range.<\/p>\n\n\n\n<p>Not all browsers are built to common standards, requiring individual handling.<\/p>\n\n\n\n<p>For example, in HTML, conditional comments or CSS hacks. In JavaScript, polyfills are one such example. For reference, I&#8217;ll briefly introduce some examples.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1\">HTML<\/span><pre class=\"shiki monokai\" style=\"background-color: #272822\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88846F\">&lt;!--[if IE]&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\t&lt;link rel=&quot;stylesheet&quot; type=&quot;text\/css&quot; href=&quot;ie.css&quot;&gt;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">&lt;![endif]--&gt;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1\">CSS<\/span><pre class=\"shiki monokai\" style=\"background-color: #272822\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #88846F\">\/* For IE6 only *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F92672\">*html<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">.element<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #66D9EF; font-style: italic\">color<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #66D9EF\">red<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #88846F\">\/* For IE7 only *\/<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F92672\">*+html<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">.element<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #66D9EF; font-style: italic\">color<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #66D9EF\">blue<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1\">JavaScript<\/span><pre class=\"shiki monokai\" style=\"background-color: #272822\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F92672\">if<\/span><span style=\"color: #F8F8F2\"> (<\/span><span style=\"color: #F92672\">typeof<\/span><span style=\"color: #F8F8F2\"> Object.create <\/span><span style=\"color: #F92672\">!==<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #E6DB74\">&quot;function&quot;<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\tObject.<\/span><span style=\"color: #A6E22E\">create<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #66D9EF; font-style: italic\">function<\/span><span style=\"color: #F8F8F2\"> (<\/span><span style=\"color: #FD971F; font-style: italic\">proto<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t\t<\/span><span style=\"color: #66D9EF; font-style: italic\">function<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">F<\/span><span style=\"color: #F8F8F2\">() {}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t\t<\/span><span style=\"color: #66D9EF; font-style: italic\">F<\/span><span style=\"color: #F8F8F2\">.prototype <\/span><span style=\"color: #F92672\">=<\/span><span style=\"color: #F8F8F2\"> proto;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t\t<\/span><span style=\"color: #F92672\">return<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #F92672\">new<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">F<\/span><span style=\"color: #F8F8F2\">();<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t};<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>The following are examples using prefixes enclosed by hyphens.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1\">CSS<\/span><pre class=\"shiki monokai\" style=\"background-color: #272822\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #A6E22E\">.element<\/span><span style=\"color: #F8F8F2\"> {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #66D9EF; font-style: italic\">-webkit-transition<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #66D9EF\">all<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">0.3<\/span><span style=\"color: #F92672\">s<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #66D9EF; font-style: italic\">-moz-transition<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #66D9EF\">all<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">0.3<\/span><span style=\"color: #F92672\">s<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #66D9EF; font-style: italic\">-ms-transition<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #66D9EF\">all<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">0.3<\/span><span style=\"color: #F92672\">s<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #66D9EF; font-style: italic\">transition<\/span><span style=\"color: #F8F8F2\">: <\/span><span style=\"color: #66D9EF\">all<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">0.3<\/span><span style=\"color: #F92672\">s<\/span><span style=\"color: #F8F8F2\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>Next is an example of JavaScript library (jQuery) code.<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#34362e;color:#efefe1\">JavaScript<\/span><pre class=\"shiki monokai\" style=\"background-color: #272822\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #F92672\">if<\/span><span style=\"color: #F8F8F2\"> ($.browser.msie <\/span><span style=\"color: #F92672\">&amp;&amp;<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #A6E22E\">parseInt<\/span><span style=\"color: #F8F8F2\">($.browser.version) <\/span><span style=\"color: #F92672\">&lt;=<\/span><span style=\"color: #F8F8F2\"> <\/span><span style=\"color: #AE81FF\">8<\/span><span style=\"color: #F8F8F2\">) {<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #88846F\">\/\/ Special handling for older Internet Explorer versions (IE8 and below)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">\t<\/span><span style=\"color: #A6E22E\">$<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E6DB74\">&#39;body&#39;<\/span><span style=\"color: #F8F8F2\">).<\/span><span style=\"color: #A6E22E\">addClass<\/span><span style=\"color: #F8F8F2\">(<\/span><span style=\"color: #E6DB74\">&#39;ie8-fix&#39;<\/span><span style=\"color: #F8F8F2\">);<\/span><\/span>\n<span class=\"line\"><span style=\"color: #F8F8F2\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p>In browsers, you can force recognition by appending code right before display. That said, fine-tuning support is endless, so generally only the latest browsers are targeted. In reality, the correct approach is to keep writing detailed handling as time permits.<\/p>\n\n\n\n<p>For any project, a commitment to meticulous craftsmanship may be crucial.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the world of the web, new standards are constantly emerging. And because technological development occurs at an astonishing pace, older standards become incompatible and gradually face exclusion. To put it simply, it&#8217;s like an older smartphone model that can&#8217;t be updated to the latest OS. Hasn&#8217;t everyone experienced something like product support ending? Computers [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_locale":"en_US","_original_post":"https:\/\/touhyo.com\/blog\/?p=1111","footnotes":""},"categories":[1],"tags":[],"class_list":["post-1114","post","type-post","status-publish","format-standard","hentry","category-memo","en-US"],"_links":{"self":[{"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/posts\/1114","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/comments?post=1114"}],"version-history":[{"count":7,"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/posts\/1114\/revisions"}],"predecessor-version":[{"id":1374,"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/posts\/1114\/revisions\/1374"}],"wp:attachment":[{"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/media?parent=1114"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/categories?post=1114"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/touhyo.com\/blog\/wp-json\/wp\/v2\/tags?post=1114"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}