CSSを使用して、フレームと同様の方法でHTMLページの一部を更新することはできますか?
質問
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が必要になる場合があります。