CSS における位置決めとは、Web ページ上の要素の位置を指定することを意味し、通常はposition 属性を使用して設定されます。 CSS には、1. 静的配置 (static)、2. 絶対配置 (absolute)、3. 相対配置 (relative)、4. 固定配置、5. 固定配置の 5 つの配置方法があります。
このチュートリアルの動作環境: Windows 7 システム、CSS3&HTML5 バージョン、Dell G3 コンピューター。
CSS における位置決めとは、Web ページ上の要素の位置を指定することを意味し、通常はposition 属性を使用して設定されます。
CSS には 5 つの配置メソッドがあります。つまり、position 属性には主に 5 つの値があります。
静的位置決め (静的)
絶対位置決め (絶対)
相対位置決め (相対) ) ) )
固定配置 (fixed)
スティッキー配置 (sticky)
以下これらの 5 つの値を紹介します。最後のスティッキーは 2017 年のブラウザーでのみサポートされており、この記事ではこれに焦点を当てます。
static
は、position
属性のデフォルト値です。 Position 属性が省略された場合、ブラウザは要素が静的に配置されているとみなします。
このとき、ブラウザはソースコードの順序に従って各要素の位置を決定しますが、これを「通常のページフロー」(通常のフロー)と呼びます。各ブロック レベルの要素は独自のブロックを占有し、要素間に重複はありません。この位置が要素のデフォルトの位置です。
静的配置による要素の位置はブラウザによって独立して決定されるため、現時点では、top、bottom、left、right の 4 つの属性は無効であることに注意してください。 。
relative、absolute、fixed の 3 つの属性値には 1 つの共通点があります。特定の基点を基準にして配置されている場合、唯一の違いは基点が異なることです。したがって、基本的なポイントを理解していれば、これら 3 つの属性値を習得するのは簡単です。
これら 3 種類の配置は他の要素の位置に影響を与えないため、要素間に重複が生じる可能性があります。
relative 属性値
relative は、デフォルトの位置 (つまり、静的な位置) を基準にしてオフセットされていることを示します。つまり、配置基点は要素のデフォルトの位置です。
#オフセットの方向と距離を指定するには、top、bottom、left、right の 4 つの属性と一緒に使用する必要があります。 . .div { position: relative; top: 20px; }
absolute 属性値
absolute は、上位要素 (通常は親要素) に対してオフセットされること、つまり位置を意味します。基点は親要素です。 これには重要な制限があります。配置基準点 (通常は親要素) を静的に配置することはできません。そうでない場合、配置基準点は Web ページ全体のルート要素 html になります。さらに、絶対配置は、上、下、左、右の 4 つの属性でも使用する必要があります。/* HTML 代码如下 <div id="father"> <div id="son"></div> </div> */ #father { positon: relative; } #son { position: absolute; top: 20px; }
fixed 属性値
fixed は、ビューポート (ビューポート、ブラウザ ウィンドウ) を基準にしてオフセットされていること、つまり位置を意味します。基点はブラウザ ウィンドウです。これにより、あたかも Web ページに固定されているかのように、ページがスクロールしても要素の位置は変化しません。 4 つの属性、top、bottom、left、right とともに使用される場合、要素の初期位置がビューポートに基づいて計算されることを意味します。それ以外の場合は、初期位置は要素のデフォルトの位置です。div { position: fixed; top: 0; }
因此,它能够形成"动态固定"的效果。比如,网页的搜索工具栏,初始加载时在自己的默认位置(relative定位)。
页面向下滚动时,工具栏变成固定位置,始终停留在页面头部(fixed定位)。
等到页面重新向上滚动回到原位,工具栏也会回到默认位置。
sticky生效的前提是,必须搭配top、bottom、left、right这四个属性一起使用,不能省略,否则等同于relative定位,不产生"动态固定"的效果。原因是这四个属性用来定义"偏移距离",浏览器把它当作sticky的生效门槛。
它的具体规则是,当页面滚动,父元素开始脱离视口时(即部分不可见),只要与sticky元素的距离达到生效门槛,relative定位自动切换为fixed定位;等到父元素完全脱离视口时(即完全不可见),fixed定位自动切换回relative定位。
请看下面的示例代码。(注意,除了已被淘汰的 IE 以外,其他浏览器目前都支持sticky。但是,Safari 浏览器需要加上浏览器前缀-webkit-。)
#toolbar { position: -webkit-sticky; /* safari 浏览器 */ position: sticky; /* 其他浏览器 */ top: 20px; }
上面代码中,页面向下滚动时,#toolbar的父元素开始脱离视口,一旦视口的顶部与#toolbar的距离小于20px(门槛值),#toolbar就自动变为fixed定位,保持与视口顶部20px的距离。页面继续向下滚动,父元素彻底离开视口(即整个父元素完全不可见),#toolbar恢复成relative定位。
sticky定位可以实现一些很有用的效果。除了上面提到"动态固定"效果,这里再介绍两个。
堆叠效果
堆叠效果(stacking)指的是页面滚动时,下方的元素覆盖上方的元素。下面是一个图片堆叠的例子,下方的图片会随着页面滚动,覆盖上方的图片。
查看 demo:https://jsbin.com/fegiqoquki/edit?html,css,output
HTML 代码就是几张图片。
<div><img src="picCSSにおける位置決めは何を意味しますか" alt="CSSにおける位置決めは何を意味しますか" ></div> <div><img src="pic2.jpg" alt="CSSにおける位置決めは何を意味しますか" ></div> <div><img src="pic3.jpg" alt="CSSにおける位置決めは何を意味しますか" ></div>
CSS 代码极其简单,只要两行。
div { position: sticky; top: 0; }
它的原理是页面向下滚动时,每张图片都会变成fixed定位,导致后一张图片重叠在前一张图片上面。
详细解释可以看:https://dev.to/vinceumo/slide-stacking-effect-using-position-sticky-91f
表格的表头锁定
大型表格滚动的时候,表头始终固定,也可以用sticky实现。
查看 demo:https://jsbin.com/decemanohe/edit?html,css,output
CSS 代码也很简单。
th { position: sticky; top: 0; }
需要注意的是,sticky必须设在
详细解释可以看:https://css-tricks.com/position-sticky-and-table-headers/
(学习视频分享:css视频教程)
以上がCSSにおける位置決めは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。