inset

Baseline 廣泛可用 *

此特性已得到良好支援,可在多種裝置和瀏覽器版本上使用。自 2021 年 4 月起,所有瀏覽器均已支援此特性。

* 此特性的某些部分可能存在不同級別的支援。

inset CSS 屬性是一個簡寫屬性,它對應於 toprightbottom 和/或 left 屬性。它具有與 margin 簡寫屬性相同的多值語法。

這些內嵌屬性,包括 inset,對非定位元素沒有影響。

試一試

inset: 1em;
inset: 5% 0;
inset: 2em 50px 20px;
inset: 10px 30% 20px 0;
inset: 0;
<section id="default-example">
  <div class="example-container">
    <div id="example-element">I am absolutely positioned.</div>
    <p>
      As much mud in the streets as if the waters had but newly retired from the
      face of the earth, and it would not be wonderful to meet a Megalosaurus,
      forty feet long or so, waddling like an elephantine lizard up Holborn
      Hill.
    </p>
  </div>
</section>
.example-container {
  border: 0.75em solid #ad1457;
  padding: 0.75em;
  text-align: left;
  position: relative;
  width: 100%;
  min-height: 200px;
}

#example-element {
  background-color: #07136c;
  border: 6px solid #ffa000;
  color: white;
  position: absolute;
  inset: 0;
}

雖然它屬於 CSS 邏輯屬性和值模組的一部分,但它不定義邏輯偏移。它定義物理偏移,無論元素的書寫模式、方向性和文字方向如何。

構成屬性

此屬性是以下 CSS 屬性的簡寫:

語法

css
/* <length> values */
inset: 10px; /* value applied to all edges */
inset: 4px 8px; /* top/bottom left/right */
inset: 5px 15px 10px; /* top left/right bottom */
inset: 2.4em 3em 3em 3em; /* top right bottom left */
inset: calc(anchor(50%) + 10px) anchor(self-start) auto auto;
inset: anchor-size(block) calc(anchor(50%) + 10px) auto
  calc(anchor-size(width) / 4);

/* <percentage>s of the width (left/right) or height (top/bottom) of the containing block */
inset: 10% 5% 5% 5%;

/* Keyword value */
inset: auto;

/* Global values */
inset: inherit;
inset: initial;
inset: revert;
inset: revert-layer;
inset: unset;

inset 屬性接受與 left 屬性相同的值。

正式定義

初始值作為簡寫中的每個屬性
應用於定位元素
繼承性
百分比相對於包含塊在相應軸上的大小(例如,對於 left 或 right 是寬度,對於 top 或 bottom 是高度)
計算值作為簡寫中的每個屬性
  • top:如果指定為長度,則為相應的絕對長度;如果指定為百分比,則為指定值;否則為 auto
  • bottom:如果指定為長度,則為相應的絕對長度;如果指定為百分比,則為指定值;否則為 auto
  • left:如果指定為長度,則為相應的絕對長度;如果指定為百分比,則為指定值;否則為 auto
  • right:如果指定為長度,則為相應的絕對長度;如果指定為百分比,則為指定值;否則為 auto
動畫型別一個長度百分比或 calc();

正式語法

inset = 
<'top'>{1,4}

<top> =
auto |
<length-percentage> |
<anchor()> |
<anchor-size()>

<length-percentage> =
<length> |
<percentage>

<anchor()> =
anchor( <anchor-name>? &&
<anchor-side> , <length-percentage>? )

<anchor-size()> =
anchor-size( [ <anchor-name> || <anchor-size> ]? , <length-percentage>? )

<anchor-name> =
<dashed-ident>

<anchor-side> =
inside |
outside |
top |
left |
right |
bottom |
start |
end |
self-start |
self-end |
<percentage> |
center

<anchor-size> =
width |
height |
block |
inline |
self-block |
self-inline

示例

為元素設定偏移量

HTML

html
<div>
  <span class="exampleText">Example text</span>
</div>

CSS

css
div {
  background-color: yellow;
  width: 150px;
  height: 120px;
  position: relative;
}

.exampleText {
  writing-mode: sideways-rl;
  position: absolute;
  inset: 20px 40px 30px 10px;
  background-color: #c8c800;
}

結果

規範

規範
CSS 邏輯屬性和值第 1 級
# propdef-inset
CSS 定位佈局模組第 3 級
# propdef-inset

瀏覽器相容性

另見