CSSを使用して、フレームと同様の方法でHTMLページの一部を更新することはできますか?

StackOverflow https://stackoverflow.com/questions/1825814

  •  22-07-2019
  •  | 
  •  

質問

CSSを使用してフレームのように動作することは可能ですか?

つまり、フレーム(たとえば、左、右)を使用する場合、左をクリックすると、 'target'属性を使用して右セクションのみが更新されます。

CSSでこの効果を作成することは可能ですか?

ありがとう。

役に立ちましたか?

解決

フレームを使用することは通常悪い考えです

質問に答えるために、いいえ、 CSSをフレームのように使用することはできません。 CSSはHTMLのスタイルを変更するために使用されるため、ページのコンテンツを実際に変更することはできません。コンテンツを隠すために使用できますが、それはあなたが必要とするものではないと思います。

ただし、この場合間違った質問をしている可能性があります。通常、フレームは間違ったアプローチです。

ウェブデザインを始めるとき、フレームは素晴らしいアイデアのように見えます。ナビゲーションをコンテンツから分離できます。ナビゲーションが毎回ロードされるわけではなく、ページがロードされているときでもメニューが常に表示されるため、サイトのロードが速くなります。

しかし、実際には、フレームは使い勝手が非常に悪い

  • ユーザーは個々のページをブックマークできません
  • 印刷が壊れています
  • 新しいタブで開くなどのブラウザの標準機能はしばしば壊れます
  • ユーザーは、特定のページのWebアドレスをコピーして貼り付けて友人に送信することはできません

フレームには用途(例:Google画像検索)がありますが、標準のナビゲーションメニューには推奨されません。 PHPやASP.NETなどの動的サーバー言語でページを作成してみてください。

これらの言語には、フレームを使用せずにナビゲーションメニューなどの標準要素を作成する方法があります。

他のヒント

いいえ、これはCSSとは関係ありません。 CSSは要素のスタイリング専用です。探しているのはIFRAMEです。 IFRAMEには名前を付けることができます

<iframe name="my_iframe" src="xyz.htm"></ifram>

そしてリンクのターゲットになります。

CSSを使用したフレームコンテンツに依存するデザインがあります。これを行うには overflow:auto を使用しますが、目的の処理は行われません。つまり、ページの特定の部分が読み込まれます。これを行うには、jQueryなどのAJAXライブラリを使用して、コンテンツ領域を動的にロードする必要があります。 URLはページの現在のコンテンツに関連していない可能性があるため、これは非常に危険です。

おそらく、CSSのオーバーフロー部分で何かをすることができます。

多くのコンテンツで幅と高さを固定したoverflow:autoでdivを設定すると、スクロールバーが表示されます。アンカーを使用して、コンテンツを移動してdiv内で表示できる可能性があります。

これは、すべてのコンテンツが1つのページにあり、アンカーとともに移動されることを意味します。 jquery tabsプラグインを使用しても同様のことができます。

私はこれを試したことがないので、完全に機能させるためにjavascriptが必要になる場合があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top