[解決済み】"position: sticky; "プロパティはどのように機能するのでしょうか?
2022-03-26 22:17:43
質問
ユーザーがページをスクロールすると、ナビゲーションバーがビューポートの上部に張り付くようにしたいのですが、うまくいかず、理由がわかりません。もしあなたが助けてくれるなら、以下は私のHTMLとCSSのコードです。
.container {
min-height: 300vh;
}
.nav-selections {
text-transform: uppercase;
letter-spacing: 5px;
font: 18px "lato",sans-serif;
display: inline-block;
text-decoration: none;
color: white;
padding: 18px;
float: right;
margin-left: 50px;
transition: 1.5s;
}
.nav-selections:hover{
transition: 1.5s;
color: black;
}
ul {
background-color: #B79b58;
overflow: auto;
}
li {
list-style-type: none;
}
<main class="container">
<nav style="position: sticky; position: -webkit-sticky;">
<ul align="left">
<li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
<li><a href="#/about" class="nav-selections">About</a></li>
<li><a href="#/products" class="nav-selections">Products</a></li>
<li><a href="#" class="nav-selections">Home</a></li>
</ul>
</nav>
</main>
解決方法は?
<ブロッククオート
スティッキーポジショニングは、相対的位置決めと固定的位置決めのハイブリッドです。指定された閾値を越えるまでは相対位置として扱われ、その時点で固定位置として扱われます。
...
の少なくとも1つを含む閾値を指定する必要があります。
top
,
right
,
bottom
または
left
を使用すると、スティッキーポジションが期待通りに動作するようになります。
それ以外の場合は、相対位置と区別がつかなくなります。
[
のソースになります。MDN
]
つまり、あなたの例では、最終的に貼り付ける位置を
top
プロパティを使用します。
html, body {
height: 200%;
}
nav {
position: sticky;
position: -webkit-sticky;
top: 0; /* required */
}
.nav-selections {
text-transform: uppercase;
letter-spacing: 5px;
font: 18px "lato", sans-serif;
display: inline-block;
text-decoration: none;
color: white;
padding: 18px;
float: right;
margin-left: 50px;
transition: 1.5s;
}
.nav-selections:hover {
transition: 1.5s;
color: black;
}
ul {
background-color: #B79b58;
overflow: auto;
}
li {
list-style-type: none;
}
<nav>
<ul align="left">
<li><a href="#/contact" class="nav-selections" style="margin-right:35px;">Contact</a></li>
<li><a href="#/about" class="nav-selections">About</a></li>
<li><a href="#/products" class="nav-selections">Products</a></li>
<li><a href="#" class="nav-selections">Home</a></li>
</ul>
</nav>
関連
-
[解決済み] div要素間の空白を削除する方法
-
[解決済み] CSS - display: none; が機能しない
-
[解決済み] HTML5 Validation Error: body start tag が見えたが、同じタイプの要素がすでに開かれていた
-
[解決済み] textareaのresizableプロパティを無効にするにはどうしたらよいですか?
-
[解決済み] ページを再読み込みせずにURLを変更するにはどうすればよいですか?
-
[解決済み] リスト項目にマウスを置いたときに、カーソルを手の形に変えるには?
-
[解決済み] CSSの三角形はどのように機能するのですか?
-
[解決済み] CSSのdisplayプロパティで遷移する
-
[解決済み] inline/inline-block要素間のスペースを削除するにはどうすればよいですか?
-
[解決済み] [Solved] divをコンテナの一番下に配置するには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】位置固定が機能しない
-
[解決済み】iframeの高さを100%にする方法【重複】。
-
[解決済み】フッターをページの下部に中央に配置するにはどうすればよいですか?
-
[解決済み】#記号のHTML文字実体は何ですか?
-
[解決済み】CSS "margin: 0 auto" が中央揃えにならない。
-
[解決済み】「選択されたファイルがありません」を変更しました。
-
[解決済み] WebForms UnobtrusiveValidationMode には、'jquery' の ScriptResourceMapping が必要です。jquery という名前の ScriptResourceMapping を追加してください(大文字と小文字を区別します)。
-
[解決済み] TD rowspan が機能しない
-
[解決済み] Railsアプリケーションにアイコンを追加する
-
[解決済み] 一度スクロールしたdivを画面の一番上に張り付けるにはどうしたらいいですか?