---
slug: "css-style-diff"
title: "CSSスタイルの差分を表示メモ"
description: "Django Allauth の SocialAccount を使うログインから、特定の社内アプリへ自動リダイレクトさせる `LOGIN_REDIRECT_URL` カスタマイズ。"
url: "https://www.ytyng.com/blog/css-style-diff"
publish_date: "2019-02-10T06:23:16Z"
created: "2019-02-10T06:23:16Z"
updated: "2026-05-11T13:21:46.605Z"
categories: ["css"]
keywords: ""
featured_image_url: "https://media.ytyng.com/resize/20230812/061a58f527fb48c395e4cf6718656cf4.png.webp?width=768"
has_video: false
has_music: false
video_urls: []
music_urls: []
lang: "ja"
---

# CSSスタイルの差分を表示メモ

<p>CSSスタイルの差分を表示</p>
<p></p>
<pre><span>&lt;</span><span>script</span><span>&gt;</span><br />      <span>var </span><span>styleSnapshots </span>= [];<br />      <span>var </span><span>classNames </span>= {};<br /><br />      <span>var </span><span>styleParams </span>= [<br />          <span>'height'</span>,<br />          <span>'width'</span>,<br />          <span>'margin'</span>,<br />          <span>'padding'</span>,<br />          <span>'position'</span>,<br />          <span>'top'</span>,<br />          <span>'bottom'</span>,<br />          <span>'lineHeight'</span>,<br />      ];<br /><br />      <span>function </span><span>getStyleData</span>(element){<br />          <span>var </span><span>data </span>= {};<br />          <span>var </span><span>cs </span>= <span>window</span>.<span>getComputedStyle</span>(element);<br />          <span>// console.log(cs);<br /></span><span>          </span><span>for</span>(<span>var </span><span>param </span><span>of </span><span>styleParams</span>){<br />              <span>data</span>[<span>param</span>] = <span>cs</span>[<span>param</span>];<br />          }<br />          <span>return </span><span>data</span>;<br />      }<br /><br /><br />      <span>function </span><span>snapshot</span>(snapshotIndex, path, element) {<br />          <span>if </span>(<span>styleSnapshots</span>.<span>length </span>&lt;= snapshotIndex) {<br />              <span>styleSnapshots</span>[snapshotIndex] = {};<br />          }<br />          <span>classNames</span>[path] = element.<span>getAttribute</span>(<span>'class'</span>);<br /><br />          <span>styleSnapshots</span>[snapshotIndex][path] = <span>getStyleData</span>(element);<br />          <span>var </span><span>children </span>= element.<span>children</span>;<br />          <span>for </span>(<span>var </span><span>i </span>= <span>0</span>; <span>i </span>&lt; <span>children</span>.<span>length</span>; <span>i</span>++) {<br />              <span>var </span><span>child </span>= <span>children</span>[<span>i</span>];<br />              <span>var </span><span>tagName </span>= <span>child</span>.<span>tagName</span>;<br />              <span>var </span><span>path2 </span>= <span>`</span>${path}${tagName}<span>[</span>${i}<span>]/`</span>;<br /><br />              <span>snapshot</span>(snapshotIndex, <span>path2</span>, <span>child</span>);<br /><br />          }<br />      }<br /><br />      <span>function </span><span>diffSnapshot</span>(i0, i1) {<br />          <span>for </span>(<span>var </span><span>path </span><span>in </span><span>styleSnapshots</span>[i1]) {<br />              <span>if </span>(!<span>styleSnapshots</span>[i0][<span>path</span>]) {<br />                  <span>console</span>.<span>log</span>(<span>`</span>${path}<span> before undefined`</span>);<br />                  <span>continue</span>;<br />              }<br />              <span>if </span>(!<span>styleSnapshots</span>[i1][<span>path</span>]) {<br />                  <span>console</span>.<span>log</span>(<span>`</span>${path}<span> after undefined`</span>);<br />                  <span>continue</span>;<br /><br />              }<br />              <span>var </span><span>className </span>= <span>classNames</span>[<span>path</span>];<br /><br /><br />              <span>for </span>(<span>var </span><span>sp </span><span>of </span><span>styleParams</span>) {<br /><br /><br />                  <span>if </span>(<span>styleSnapshots</span>[i0][<span>path</span>][<span>sp</span>] != <span>styleSnapshots</span>[i1][<span>path</span>][<span>sp</span>]) {<br />                      <span>console</span>.<span>log</span>(<span>`</span>${path} ${className} ${sp} ${styleSnapshots[i0][path][sp]}<span> -&gt; </span>${styleSnapshots[i1][path][sp]}<span>`</span>);<br />                  }<br />              }<br />          }<br /><br />      }<br /><br />      <span>snapshot</span>(<span>0</span>, <span>'/'</span>, <span>document</span>.<span>querySelector</span>(<span>'.navlist'</span>));<br /><br />      <span>setTimeout</span>(<span>function </span>() {<br />          <span>snapshot</span>(<span>1</span>, <span>'/'</span>, <span>document</span>.<span>querySelector</span>(<span>'.navlist'</span>));<br /><br />          <span>diffSnapshot</span>(<span>0</span>, <span>1</span>);<br /><br />      }, <span>3000</span>);<br />&lt;/script&gt;</pre>
