ホームページ  >  記事  >  ウェブフロントエンド  >  CSSにおける位置決めは何を意味しますか

CSSにおける位置決めは何を意味しますか

青灯夜游
青灯夜游オリジナル
2022-01-20 11:16:264144ブラウズ

CSS における位置決めとは、Web ページ上の要素の位置を指定することを意味し、通常はposition 属性を使用して設定されます。 CSS には、1. 静的配置 (static)、2. 絶対配置 (absolute)、3. 相対配置 (relative)、4. 固定配置、5. 固定配置の 5 つの配置方法があります。

CSSにおける位置決めは何を意味しますか

このチュートリアルの動作環境: Windows 7 システム、CSS3&HTML5 バージョン、Dell G3 コンピューター。

CSS における位置決めとは、Web ページ上の要素の位置を指定することを意味し、通常はposition 属性を使用して設定されます。

CSS には 5 つの配置メソッドがあります。つまり、position 属性には主に 5 つの値があります。

  • 静的位置決め (静的)

  • 絶対位置決め (絶対)

  • 相対位置決め (相対) ) ) )

  • 固定配置 (fixed)

  • スティッキー配置 (sticky)

以下これらの 5 つの値を紹介します。最後のスティッキーは 2017 年のブラウザーでのみサポートされており、この記事ではこれに焦点を当てます。

static 属性値

static は、position 属性のデフォルト値です。 Position 属性が省略された場合、ブラウザは要素が静的に配置されているとみなします。

このとき、ブラウザはソースコードの順序に従って各要素の位置を決定しますが、これを「通常のページフロー」(通常のフロー)と呼びます。各ブロック レベルの要素は独自のブロックを占有し、要素間に重複はありません。この位置が要素のデフォルトの位置です。

CSSにおける位置決めは何を意味しますか

静的配置による要素の位置はブラウザによって独立して決定されるため、現時点では、top、bottom、left、right の 4 つの属性は無効であることに注意してください。 。

relative、absolute、fixed

relative、absolute、fixed の 3 つの属性値には 1 つの共通点があります。特定の基点を基準にして配置されている場合、唯一の違いは基点が異なることです。したがって、基本的なポイントを理解していれば、これら 3 つの属性値を習得するのは簡単です。

これら 3 種類の配置は他の要素の位置に影響を与えないため、要素間に重複が生じる可能性があります。

relative 属性値

relative は、デフォルトの位置 (つまり、静的な位置) を基準にしてオフセットされていることを示します。つまり、配置基点は要素のデフォルトの位置です。

2-CSSにおける位置決めは何を意味しますか

CSSにおける位置決めは何を意味しますか

#オフセットの方向と距離を指定するには、top、bottom、left、right の 4 つの属性と一緒に使用する必要があります。 . .

CSSにおける位置決めは何を意味しますか

div {
  position: relative;
  top: 20px;
}

上記のコードでは、div 要素はデフォルトの位置から下に 20 ピクセル (つまり、上から 20 ピクセル) オフセットされています。

absolute 属性値

absolute は、上位要素 (通常は親要素) に対してオフセットされること、つまり位置を意味します。基点は親要素です。

これには重要な制限があります。配置基準点 (通常は親要素) を静的に配置することはできません。そうでない場合、配置基準点は Web ページ全体のルート要素 html になります。さらに、絶対配置は、上、下、左、右の 4 つの属性でも使用する必要があります。

3-CSSにおける位置決めは何を意味しますか

/*
  HTML 代码如下
  <div id="father">
    <div id="son"></div>
  </div>
*/
#father {
  positon: relative;
}
#son {
  position: absolute;
  top: 20px;
}

上記のコードでは、親要素が相対配置、子要素が絶対配置となっているため、子要素の配置基点は親要素となり、親要素の上部から下方向に位置します。オフセットは 20 ピクセルです。親要素が静的に配置されている場合、上記の例の子要素は Web ページの上部から 20 ピクセル下にオフセットされます。

絶対配置された要素は「通常のページ フロー」では無視されることに注意してください。つまり、「通常のページ フロー」では、この要素が占めるスペースはゼロであり、周囲の要素は影響を受けません。

fixed 属性値

fixed は、ビューポート (ビューポート、ブラウザ ウィンドウ) を基準にしてオフセットされていること、つまり位置を意味します。基点はブラウザ ウィンドウです。これにより、あたかも Web ページに固定されているかのように、ページがスクロールしても要素の位置は変化しません。

CSSにおける位置決めは何を意味しますか

4 つの属性、top、bottom、left、right とともに使用される場合、要素の初期位置がビューポートに基づいて計算されることを意味します。それ以外の場合は、初期位置は要素のデフォルトの位置です。

div {
  position: fixed;
  top: 0;
}

上記のコードでは、div 要素は常にビューポートの上部にあり、Web ページがスクロールしても変化しません。

sticky 属性値

sticky は、前の 4 つの属性値とは異なります。相対と固定の組み合わせと同様に、動的な効果を生成します。相対的な場合もあります。位置決め(位置決め基点は独自のデフォルト位置)、場合によっては自動的に固定位置決め(位置決め基点はビューポート)になります。

因此,它能够形成"动态固定"的效果。比如,网页的搜索工具栏,初始加载时在自己的默认位置(relative定位)。

5-CSSにおける位置決めは何を意味しますか

页面向下滚动时,工具栏变成固定位置,始终停留在页面头部(fixed定位)。

CSSにおける位置決めは何を意味しますか

等到页面重新向上滚动回到原位,工具栏也会回到默认位置。

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 的应用

sticky定位可以实现一些很有用的效果。除了上面提到"动态固定"效果,这里再介绍两个。

堆叠效果

堆叠效果(stacking)指的是页面滚动时,下方的元素覆盖上方的元素。下面是一个图片堆叠的例子,下方的图片会随着页面滚动,覆盖上方的图片。

查看 demo:https://jsbin.com/fegiqoquki/edit?html,css,output

6-CSSにおける位置決めは何を意味しますか

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における位置決めは何を意味しますか

CSS 代码也很简单。

th {
  position: sticky;
  top: 0; 
}

需要注意的是,sticky必须设在

元素上面,不能设在和元素,因为这两个元素没有relative定位,也就无法产生sticky效果。

详细解释可以看:https://css-tricks.com/position-sticky-and-table-headers/

(学习视频分享:css视频教程

以上がCSSにおける位置決めは何を意味しますかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。