1

私が管理しているサイトの FF/IE8/Chrome (たとえば、このページ) に小さなレイアウト バグがあることに気付きました。

サイトを乗っ取ったときになぜ気づかなかったのだろうと思っていましたが、IE7 を IE8 にアップグレードしてから明らかになったことに気付きました。

これらの「適切な」ブラウザの場合、IE7 (およびそれ以下) が必要とする 56px とは対照的に、この絶対位置の画像では top 属性を 59px に設定する必要があります。

解決策は簡単ですが、a) まず問題を理解したい、b) さまざまな解決策を検討したい (複数の解決策があることはわかっています)。それを念頭に置いて...

  • 問題の原因は何ですか?

多くのポジショニングの問題は、誤った IE ボックス モデルが原因でしたが、これは IE7 で修正されたと思いました。まだ IE7 に影響するのはボックス モデルの問題ですか、それとも別の何かですか?

  • 最善の解決策は何ですか?

多くのソースは、条件コメントを使用して IE7 パッチ CSS ファイルをインクルードする方法を提案しています。

<!--[if lte IE 7]>
 <link href="IE7Fix.css" rel="stylesheet" type="text/css">
<![endif]-->

簡単ですが、サイトのすべてのページのヘッダーにそれを挿入する必要はありません (もちろん、必要に応じて挿入します)。

おそらく仕事をすることができるCSSハックがたくさんあることは知っていますが、特に新しいブラウザが出現するにつれて、保守が難しくなるため、CSSを避ける​​べきだと言う学校の考えがあります. 私は確かにこの考え方に共感できます。ただし、このサイトは 3 か月以内に完全に再開発されるため、短期的な解決策を検討しています。CSS ハックを使用することを選択した場合、IE7 以下の動作を変更するには何をする必要がありますか?

私はまた、良いリセット スタイルシートがこれらの問題の多くを回避できることも読んだので、笑いのために、Eric Meyer のReset Reloadedスタイルシートを適用しました。

要約すると、問題は正確には何ですか。問題の短期的な性質を考慮して、最良の長期的な解決策は何ですか?また、どの解決策が展開するのが最も簡単でしょうか?

CSS ('Banner02'): http://new.eminox.com/_lib.css/content.css


複数のサブクエリを持つ oracle クエリ

テーブルの行を選択し、サブクエリを使用して単一の行リスト (item1、item2、item3) を生成しようとしています

とにかくSQL:

select 
  username,
  concat(firstname || ' ', lastname) as name,
  email,
  phone,
  (
  select 
    ltrim(sys_connect_by_path(res, ', '), ', ')
  from (
    select 
      count(*) over() as cnt, 
      row_number() over(order by ofield) as rnum, 
      (select name from rooms where code=roomcode) as res 
    from adminrooms
    where roomcode=admins.code) /*admins.code - come from main query but it gives error: invalid identifier*/
  where cnt=rnum start with rnum=1 connect by prior rnum=(rnum-1)
  ) as groups
from admins
where frozen=0 and (type <> 'root' or type is null)

問題は、テーブル 'admins' のメイン クエリ フィールド 'code' にあるようです。リスト生成クエリ内で機能しません。

4

1 に答える 1

3

実際、あなたの問題は「banner02」の配置ではなく、上部の「banner01」divの高さにあると思います。FFとIE7でサイトを開き、ページの上端を並べてみました。画像 'banner02' はまったく同じ高さの位置にありますが、ヘッダー div 'banner01' は 1 つのブラウザーで他のブラウザーよりも高くなっています。また、IE7 は、ボックス モデルをわずかに変更する「quirks モード」で実行されていたと思います。

FF と IE7 を同じように見せるために (IE8 がインストールされていなくて申し訳ありません。これは私の仕事用 PC なので、インストールしてすべてを確認することはできません)、2 つの変更を加えました。

1) DOCTYPE を次のように変更します: <-- これはおそらく必要ありません。以下の私のコメントを参照してください。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

に:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

2) 'banner01' の高さを定義します。以前は (Global.css で) 何も設定されていなかったためです。

.banner01 {
  width: 770px;
  height: 48px;
  background-color: white;
  border-color: #555555;
  border-style: solid;
  border-width: 10px 0 1px 0;
}

(バナー 02 は 59 ピクセルなので、48 + 10 ピクセルの上部境界線 + 1 ピクセルの下部境界線 = 59 ピクセルであるため、高さ 48 を選択します)

それは私のためにそれを片付けました...しかし、繰り返しますが、私は2つのブラウザでしかテストしませんでした. うまくいけば、それは役に立ちます!

于 2009-06-17T13:55:48.140 に答える