首页 > 建站教程 > CSS3+HTML5 >  CSS3 inset属性详解正文

CSS3 inset属性详解

inset介绍

inset是top、left、right、bottom的一个简写方式。insert对非静态定位的元素不会生效,也就是只有设置position被设置的时候生效,这就和top之类一样。

.box {
  inset: 10px 20px 30px 40px; /* top right bottom left */
  position: relative;
}


他的四个值的设置顺序是按照顺时针来的 top ->right -> bottom => left,和margin、padding之类设置方式一样。

.element {
  inset: 1em 2em 3em 0; /* top right bottom left */
  inset: 10% 5% -10%;   /* top left/right bottom */
  inset: 0 10px;        /* top/bottom left/right */
  inset: 20px;          /* 所有方向都是 20px */
}


在没有inset时候我们都会初始化所有方向的属性

/** 旧版写法 **/
.box {
  position: absolute;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
}
/** 新版写法,精简一行 **/
.box {
  position: absolute;
  inset: 0; /*   */
}


意义

实话除了简写简单似乎没啥很好的意思,但是在现代CSS样式中更加注意的是语义关系,top之类的是方向的边框,而inset字母意思嵌入的意思,尤其在一些从右边到左边阅读的文字的(阿拉伯语和波斯语)而top强调是方向,而inset的更加强调的是书写的方向。为了消除语言书写的方向的差异,所以css弄了一个新的属性但是效果一样的东西。


这就涉及到*-inline 和 *-block insert可以根据可以在不同书写方式的文字使用同一种属性。

css3 inset

两段文字


css3 inset

从书写方向来说 end都是最后的意思