2012-02-28 162 views
3

意図しない結果を招く可能性のあるCSSを変更する前に、idやクラスがサイト全体(他の場所)使用されている? (これは網羅的である必要はなく、セミマニュアルプロセスもOKです)サイト全体のCSS ID /クラスのすべてのインスタンスを見つける

コンテキストの一部として、内容が豊富なJoomlaベースのサイトですが、私はまだよく分かりませんそのほとんどが問題のIDには2文字の名前があり、どこで使用されるか分かりません。私はgrepのようなアプローチのためにサーバーに直接アクセスすることはできません。

私が考えることができる唯一のテクニックは、スタイリッシュを使用してそのセレクタに明白な変更を加え、サイトがポップアップする場所を少し調べることです。

+0

Dreamweaverで「ローカルサイト全体を検索」を使用できますが、クラスに2文字しかない場合、おそらく多くの誤った結果が返されます – Turnip

+0

スタンドアロンページを除いて、直接リンクされているページのみに興味がありますか?その答えは、サイトのスパイダーリングが適切かどうかに影響します。リンクされているかどうかにかかわらず*すべてのページが本当に必要な場合はテンプレート、コンテンツ、コードをgrepできないので難しくなります。すべて* 3が必要です。問題のスペースを「最近n日以内にアクセスされたページ」のようなものに縮小し、アクセスログからそれらのURLを取得したいかもしれません。 –

+0

ちょうどリンクされたページは大丈夫です –

答えて

3

最も簡単な方法は、ローカルgrepことができますが、サーバーへのアクセスを持っていないので、wgetを使用してローカルにダウンロードしようとするだろう:

wget -r -l --domains=http://yourdomain.com http://yourdomain.com 

それは再帰的に自分のドメインからページを取得します無限の深さですが、ドメイン内のページへのリンクをたどるだけです。 ディスクに入ったら、ローカルgrepを実行し、あなたは金色です。

+0

あなたのサイトでのリンクの仕方によっては、相対リンクだけに '--relative'を使うこともできます。 –

+0

うーん、それはうまくいくかもしれない。悪魔の主張者:それは負荷の後に適用されたスタイルを拾いません。 –

+0

これはひどいです...多分これが助けになるかもしれません:http://stackoverflow.com/questions/5901661/wget-javascript –

0

サイト全体のソースツリーをNetBeansやEclipseなどのIDEに取得し、ルートフォルダのid = "theid"を再帰的に検索します。

これができない場合、どのようにCSSを更新していますか?

0

あなたはgrepのアプローチを行うにはしたくないと仮定:

は、ページの実際のコンテンツ領域で、あるいは「周囲」の領域に表示されて問題になっているIDですか?コンテンツの一部ではなく、テンプレートに表示されるように見える場合は、そのテンプレートファイルを検索できます。 CSSを更新しているときに、少なくともテンプレートファイルを保持できると仮定します。多くのテキストエディタ/ IDEでは、「グローバル検索」を行うことができます。テンプレートファイルをTextMate(選択したテキストエディタ)に読み込んで、特定のIDの「プロジェクト内で検索」します。

これは少なくとも、IDが表示されているサイト内のどこかのアイデアのようなものです。いいえ、それはすべての「ページ」ではありませんが、種類ののページが表示されます(これは、CMSを使用して実際にあなたが行ったものです)。

IDがコンテンツに表示されている場合、つまりコンテンツ作成者が手入力した場合、別のルートに移動する必要があります。データベースにアクセスできますか?データベースのダンプを取得することができます(私はと思う、 Joomla!はMySQLベースです)、Sequel ProのようなものでSQLを開き、そのIDのコンテンツレコードを検索できます。

1

これは実際にはそれほど難しくありません。最初にテンプレート用のindex.phpファイルを探します。このファイルは、テンプレートがテンプレートフレームワークを使用する開発者からのものでなければ、大量のコードなしでかなり小さくなければなりません。 IDがそこにある場合、これはウェブサイトのすべてのページに表示されます。なぜなら、これはすべてのページが構築されている基礎であるからです。

見つからない場合は、モジュールがモジュールの位置に表示されているのか、コンポーネントの領域に表示されているのかを判断する必要があります。あなたは、テンプレートからindex.phpファイルを見ることで違いを知ることができます。

モジュールの位置にある場合、その特定のモジュールのインスタンスにのみIDを表示する必要があります。

コンポーネント領域内にある場合は、コンポーネントによって作成されたすべてのページにのみ表示されます。それはあなたが変更したくない多くの要素に影響を与える可能性を残します。しかし、そこには解決策があります。メニュー項目のページクラス接尾辞を使用して、変更したいページに一意のID /クラスを追加することができます(テンプレートに依存します)。そのユニークな接尾辞を使用すると、変更するページにのみ影響する特定のセレクタを作成できます。

+0

元の質問で述べたように、Joomlaです。また、テンプレートにアクセスすることもできません。 –

+0

Joomlaの理由は私がこのように答えたからです。あなたはJoomlaの管理者からテンプレートファイルにアクセスすることができ、その他のものはフロントエンドのソースコードを見ることによって行われます。いくつかのJoomlaチュートリアルを読んでみてください。 Joomlaがどのように動作するかを理解すれば、特定のクラスやIDがどこから来ているのか、それが影響を与えるのかを簡単に知ることができます。 –

1

私はunused-css.comをこの種のものに使用します。あなたは単にあなたのウェブページを置くだけで、サイト全体(ログインを含む)を見て、あなたが実際に使っているCSSをあなたに与えます。

私はそれが95%正確であることを発見しました - しかし、それはいくつかのCSSのブラウザのハッキングやいくつかのエラー(つまり、CSSはエラーの後にのみ表示されます)のようなものを拾わないので、正常に動作するはずですこのため。

また、idがおそらくであるのがである必要がある(通常はデモテンプレートのすべてがレイアウトされています)が表示されますが、unused-cssは通知しませんそれが使用されている場所に正確に表示されます。そのためには、ビューソースから始めて、主要ページを見つけて、他の言及した解決策を試してみましょう。

+0

興味深いツールについて知っておきましょう。私はCSSスタイルが使用されていることを知っているので、この特定の問題はかなり解決されません。どれくらい使用されているのか分かりません。 –

+0

私はこの記事が古いことを知っていますが、この特定の議論のキーワードのいくつかのキーワードを入力することによってGoogleが参照するので、この回答で私の経験を追加したいと思います。 残念ながら、Dust Me SelectorsはASP.Netマスターページ(* .Master)をスキャンしません(これは本当に残念です)。 – vaitrafra