3

私は一般的に、Webサイトのレイアウトは<table>ではなく<div>で行う必要があるという考えに同意します。ただし、これが機能しない状況があります。少なくとも、解決策が見つかりません。

私は多くの顧客が同じテンプレートを共有する動的なサイトを持っています(彼らは利用可能なテンプレートのセットから1つを選ぶことができます)。テンプレートは、サイトの一般的なレイアウトを定義します。通常、上部にヘッダー、2列または3列(左側にメニュー、中央にプライマリコンテンツ、場合によっては右側に追加コンテンツ)、下部にフッターがあります。顧客は、ヘッダーのコンテンツと右側のコンテンツを完全に制御し、メニューとメインコンテンツ領域のコンテンツを大幅に制御できます。

ここでのポイントは、どの列の幅もわからないということです。顧客は、メニュー項目ごとに長いテキストまたは短いテキストを持っている場合があり、右側の列に小さい画像または大きい画像を配置する場合があり、メインコンテンツは自由に使用できます。私は顧客にあまり多くのデザイン制限を課すことはできません-彼らはサイトがどのように見えるべきかについて彼ら自身の考えを持っています(彼らのいくつかはMySpaceページより醜くなります)。サイトには「優先」幅(メインの<table> widthプロパティ)があるため、コンテンツが妥当な場合、サイトは見栄えがよくなります。

テーブルベースのレイアウトはこれを処理するだけです。列のサイズがどのようなものであっても、テーブルはそれに合わせて調整されます。ただし、<div>はそうではありません。メニューが少し広くなると、他の列がその下にドロップダウンします。一部のコンテンツがそのコンテナ<div>に対して広すぎる場合、そのコンテンツは境界を越えて拡張し、その隣にあるものすべてに干渉します。

Javascriptを使用して列幅を調整してみましたが、これによりレイアウトが点滅し、<table>が大騒ぎせずにレンダリングします。CSS表示プロパティのさまざまなテーブル関連のオプションについては知っていますが、十分に広くサポートされていないため(いたずらなIE)、使用できません。(余談ですが、<table>はレイアウトに使用することを意図したものではなかったので、代わりに<div>を使用して<table>のように動作するように指示する必要があります。 )。

したがって、通常の理由で<div>ベースのレイアウトに切り替えたいと思いますが、これらのテンプレートを使用できるとは思いません(または、少なくとも、全員がIE 10にアップグレードするまでは)。SOギャングがこれを行う方法を見つけるのに役立つことを願っています。


これを試して:

function getXML() {
    var XML = null;
    $.ajax({
        url:      '_lib/xml/portfolio.xml',
        dataType: 'xml',
        async:    false,
        success:  function(data) {
            XML = data;
        }
    });
    return XML;
}

何が返されるかわかりませんが$.ajax、あなたと同じように試しましたが、うまくいきません。したがって、上記のコードは私が解決したものです。

編集async: falseajaxリクエストには''が必要であることを強調したいだけです。

お役に立てれば。

4

4 に答える 4

1

複雑なデザインにデザイナー(またはコントロールフリーククライアント)が望むとおりに動作するように指示しようとすると、DIVの操作に多大な労力がかかることがあります。

可能な限り、divの代わりにテーブルを使用します。これにより、さまざまなブラウザーをいじり回すときに、スケジュールの厳しいプロジェクトで作業するときに安心できます。

あるいは、時間が取れたとき、私は物事を正しく行うためのエレガントな方法としてDIVSを使用します。それの楽しみのためだけに。

于 2009-10-17T16:19:17.907 に答える
1

あなたはこの記事を見ることができます:複数列のレイアウトですが、私は一般的に同意する傾向があります。サイトのレイアウトの性質によっては、レイアウトにdivを使用するのは実用的ではないという点で注意が必要な場合があります。これは、一部のブラウザが常にそれを行うために必要な場所にない場合にすぎません。

于 2009-10-17T15:44:03.213 に答える
0

とCSSマジックの品揃えで、同じ(または十分に近い)レベルの確実性を得ることができると主張する人もいます。それはただ違う考え方を取ります。テーブルで「成長」した私たちにとっては、それは異なり、再学習が必要です。これはかつてのウェブとは異なるため、これを行う必要があります。

そうは言っても、テーブルは少し悪いラップを得ていると思います。テーブルベースのデザインに対する開発者の反応に「成長」した新参者とは多くの関係があると思いますが、歴史はありません。ウェブデザインの知識が深まるほど、彼らは増殖し、お互いに寄りかかっているように見える、むなしい暴言に向かう傾向があります。しかし、それは別の日の別の暴言です。

SOの質問ではないので、この質問を閉じることをお勧めします。

于 2009-10-17T16:20:07.720 に答える