position
Baseline
åºãå©ç¨å¯è½
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2015å¹´7æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
position 㯠CSS ã®ããããã£ã§ãææ¸å
ã§è¦ç´ ãã©ã®ããã«é
ç½®ãããããè¨å®ãã¾ãã top, right, bottom, left ã®åç©ççããããã£ã inset-block-start, inset-block-end, inset-inline-start, and inset-inline-end ã®ããã¼ç¸å¯¾è«ççããããã£ããé
ç½®ãããè¦ç´ ã®æçµçãªä½ç½®ã決ãã¾ãã
試ãã¦ã¿ã¾ããã
position: static;
position: relative;
top: 40px;
left: 40px;
position: absolute;
inset-inline-start: 40px;
inset-block-start: 40px;
position: sticky;
top: 20px;
<section class="default-example" id="default-example">
<div id="example-element-container">
<p>
ãã®ãã¢ã§ã¯ãé»è²ãããã¯ã¹ã® <code>position</code> ããããã£ãå¶å¾¡ãããã¨ãã§ãã¾ãã
</p>
<div class="box"></div>
<div class="box" id="example-element"></div>
<div class="box"></div>
<p class="clear">
<code>sticky</code> é
ç½®ã®å¹æã確èªããã«ã¯ã<code>position: sticky</code> ãªãã·ã§ã³ã鏿ãããã®ã³ã³ããã¼ãã¹ã¯ãã¼ã«ãã¦ãã ããã
</p>
<p>
è¦ç´ ã¯ã³ã³ããã¼ã®ä¸ç«¯ï¼ã¾ã㯠<code>top</code> ã§æå®ããããªãã»ããï¼ã«å°éããã¾ã§ã³ã³ããã¼ã¨å
±ã«ã¹ã¯ãã¼ã«ãããã®å¾ã¹ã¯ãã¼ã«ã忢ãã¦è¡¨ç¤ºãããã¾ã¾ã«ãªãã¾ãã
</p>
<p>
ãã®ããã¹ãã®æ®ãã®é¨åã¯ãã³ã³ããã¼ããªã¼ãã¼ããã¼ããããã«æå³çã«è¿½å ããã¦ãã¾ããããã«ãããã¹ã¯ãã¼ã«ãã¦ãã®å¹æã確èªã§ããããã«ãªã£ã¦ãã¾ãã
</p>
<hr />
<p>
éæ²³ç³»ã®è¥¿ã®æ¸¦å·»è
ã®ãæµè¡é
ããªç«¯ã£ãã«ãããæªè¸ã®è¾ºå¢ã®å¥¥æ·±ãã«ãå°ããªè¦éããããé»è²ã太é½ãä¸ã¤ããã
ããã 9200 ä¸ãã¤ã«ã®è·é¢ãå¨åãããã¾ã£ããåãã«è¶³ããªãå°ããªéç·è²ã®ææãããããã®ææã«ä½ãé¡äººç¿ããé²åããçå½ä½ã¯é©ãã»ã©æªçºéã§ãä»ã§ããã¸ã¿ã«æè¨ããªããªãè¯ãã¢ã¤ãã¢ã ã¨æã£ã¦ããã
</p>
</div>
</section>
section {
align-items: flex-start;
overflow: auto;
}
.box {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
float: left;
width: 65px;
height: 65px;
}
.box + .box {
margin-left: 10px;
}
.clear {
clear: both;
padding-top: 1em;
}
#example-element-container {
position: relative;
text-align: left;
}
#example-element {
background-color: yellow;
border: 3px solid red;
z-index: 1;
}
æ§æ
position: static;
position: relative;
position: absolute;
position: fixed;
position: sticky;
/* ã°ãã¼ãã«å¤ */
position: inherit;
position: initial;
position: revert;
position: revert-layer;
position: unset;
å¤
static-
è¦ç´ ã¯ææ¸ã®é常ããã¼ã«å¾ã£ã¦é ç½®ããã¾ãã
top,right,bottom,left,z-indexããããã£ã¯å¹æãããã¾ããããããæ¢å®å¤ã§ãã relative-
è¦ç´ ã¯ææ¸ã®é常ã®ããã¼ã«å¾ã£ã¦é ç½®ããã
top,right,bottom,leftã®å¤ã«åºã¥ãã¦èªåèªèº«ããã®ç¸å¯¾ãªãã»ããã§é ç½®ããã¾ãããªãã»ããã¯ä»ã®è¦ç´ ã®é ç½®ã«ã¯å½±é¿ãä¸ãã¾ãããã¤ã¾ãããã¼ã¸ã¬ã¤ã¢ã¦ãå ã§è¦ç´ ã«ä¸ãããã空éã¯ãä½ç½®ãstaticã§ãã£ãæã¨åãã§ããz-indexã®å¤ãautoã§ãªãå ´åãæ°ããéãåããã³ã³ããã¹ããçæãã¾ããtable-*-group,table-row,table-column,table-cell,table-captionã®è¦ç´ ã«ãããå¹æã¯æªå®ç¾©ã§ãã absolute-
è¦ç´ ã¯ææ¸ã®é常ã®ããã¼ããé¤å¤ããããã¼ã¸ã¬ã¤ã¢ã¦ãå ã«ãã®è¦ç´ ã®ããã®ç©ºéã使ããã¾ããããã®è¦ç´ ã«ç´è¿ã®ä½ç½®æå®ããã¦ããç¥å ãããã°ããã«å¯¾ãã¦ãããã§ãªããã°ãåæã®å å«ãããã¯ã«å¯¾ãã¦ç¸å¯¾é ç½®ããã¾ããæçµçãªä½ç½®ã¯
top,right,bottom,leftã®å¤ã«ãã£ã¦æ±ºå®ããã¾ãããã®å¤ã§ã¯ã
z-indexã®å¤ãautoã§ã¯ãªãå ´åãæ°ããéãåããã³ã³ããã¹ãã使ãã¾ãã絶対ä½ç½®æå®ããã¯ã¹ã®ãã¼ã¸ã³ã¯ãä»ã®è¦ç´ ã®ãã¼ã¸ã³ã¨ç¸æ®ºããã¾ããã fixed-
è¦ç´ ã¯ææ¸ã®é常ã®ããã¼ããé¤å¤ããããã¼ã¸ã¬ã¤ã¢ã¦ãå ã«è¦ç´ ã®ããã®ç©ºéã使ããã¾ãããè¦ç´ ã¯æåã®å å«ãããã¯ï¼è¦è¦ã¡ãã£ã¢è¦ç´ ã®å ´åã¯ãã¥ã¼ãã¼ãï¼ããç¸å¯¾çã«é ç½®ããã¾ããæçµçãªä½ç½®ã¯
topãrightãbottomãleftã®å¤ã«ãã£ã¦æ±ºã¾ãã¾ãããã®å¤ã¯ãå¸¸ã«æ°ããéãåããã³ã³ããã¹ãã使ãã¾ããå°å·ææ¸ã®å ´åãè¦ç´ ã¯åãã¼ã¸ã®åãä½ç½®ã«é ç½®ããã¾ãã
sticky-
è¦ç´ ã¯ææ¸ã®é常ã®ããã¼ã«å¾ã£ã¦é ç½®ãããç´è¿ã®ã¹ã¯ãã¼ã«ããç¥å ããã³å å«ãããã¯ï¼ç´è¿ã®ãããã¯ã¬ãã«ç¥å ã表é¢é£è¦ç´ ãå«ãï¼ã«å¯¾ãã¦
top,right,bottom,leftã®å¤ã«åºã¥ãã¦ç¸å¯¾é ç½®ããã¾ãããã®ãªãã»ããã¯ä»ã®è¦ç´ ã®é ç½®ã«ã¯å½±é¿ãä¸ãã¾ããããã®å¤ã¯ãå¸¸ã«æ°ããéãåããã³ã³ããã¹ããçæãã¾ãããªãç²çè¦ç´ ã¯ãç´è¿ã®ç¥å ãã¹ã¯ãã¼ã«ããªãå ´åã§ãããã¹ã¯ãã¼ã«ã®ä»çµã¿ããæã¤ç´è¿ã®ç¥å ï¼
overflowãhidden,scroll,auto,overlayã¨ãã¦ä½æããããã®ï¼ã«ãç²çããã¾ããã¡ã¢: è¦ç´ ãç²çãããå¿ è¦ããã軸ã«å¯¾ãã¦ãå°ãªãã¨ã 1 ã¤ã®ã¤ã³ã»ããããããã£ï¼
top,inset-block-start,right,inset-inline-endãªã©ï¼ãauto以å¤ã®å¤ã«è¨å®ããå¿ è¦ãããã¾ãã軸ã®insetããããã£ã両æ¹ã¨ãautoã«è¨å®ããã¦ããå ´åããã®è»¸ã§ã¯stickyå¤ã¯relativeã¨ãã¦åä½ãã¾ãã
解説
>ä½ç½®æå®ã®ç¨®é¡
- ä½ç½®æå®è¦ç´ (positioned element) ã¨ã¯ã
positionã®è¨ç®å¤ãrelative,absolute,fixed,stickyã®ããããã§ããè¦ç´ ã§ãã (è¨ãæããã°ãstatic以å¤ã®å ¨ã¦ã§ãã) - ç¸å¯¾ä½ç½®æå®è¦ç´ (relatively positioned element) ã¨ã¯ã
positionã®è¨ç®å¤ãrelativeã§ããè¦ç´ ã§ããtopããã³bottomããããã£ã¯ãé常ã®ä½ç½®ããã®åç´æ¹åã®ãªãã»ãããæå®ãã¾ããleftããã³rightããããã£ã¯ãæ°´å¹³æ¹åã®ãªãã»ãããæå®ãã¾ãã - 絶対ä½ç½®æå®è¦ç´ (absolutely positioned element) ã¨ã¯ã
positionã®è¨ç®å¤ãabsoluteã¾ãã¯fixedã§ããè¦ç´ ã§ããtop,right,bottom,leftã®åããããã£ã¯ããã®è¦ç´ ã®å å«ãããã¯ã®ç«¯ããã®ãªãã»ãããæå®ãã¾ãã (å å«ãããã¯ã¯é ç½®ãããè¦ç´ ã®ç¥å ã§ãã) è¦ç´ ã«ãã¼ã¸ã³ãããå ´åã¯ããªãã»ããã«ãã¼ã¸ã³ã追å ããã¾ãããã®è¦ç´ ã¯å 容ã®ããã«æ°ãã ãããã¯æ´å½¢ã³ã³ããã¹ã (BFC) ãçæãã¾ãã - ç²çä½ç½®æå®è¦ç´ (stickily positioned element) ã¨ã¯ã
positionã®è¨ç®å¤ãstickyã§ããè¦ç´ ã§ããããã¯å å«ãããã¯ãããã¼ã«ã¼ã (ã¾ãã¯ãã®ä¸ã§ã¹ã¯ãã¼ã«ããã³ã³ããã¼) å ã®æå®ããããããå¤ (ä¾ãã°topã«è¨å®ããã auto 以å¤ã®å¤ãªã©) ãéããã¾ã§ã¯ç¸å¯¾çãªé ç½®ã¨ãã¦æ±ãããå å«ãããã¯ã®å対ã®ç«¯ãæ¥ãã¾ã§ãã®ä½ç½®ã«ãç²çããããã®ã¨ãã¦æ±ããã¾ãã
ã»ã¨ãã©ã®å ´åã絶対ä½ç½®æå®è¦ç´ ã« height ããã³ width ã auto ãè¨å®ãããã¨ãå
容ã«åãããã«å¤§ããã調æ´ããã¾ããããããéç½®æè¦ç´ ã§çµ¶å¯¾ä½ç½®æå®è¦ç´ ã¯ã top ããã³ bottom ãæå®ã㦠height ãæå®ããªã (ã¤ã¾ã auto ã®) ã¾ã¾ã«ãããã¨ã§ãå©ç¨ã§ããåç´ã®ç©ºéãåãããã¨ãã§ãã¾ããåæ§ã«ã left ããã³ right ãæå®ã㦠width ã auto ã®ã¾ã¾ã«ãããã¨ã§ãå©ç¨ã§ããæ°´å¹³ã®ç©ºéãåãããã¨ãã§ãã¾ãã
以ä¸ã«è¨è¿°ãããå ´åãé¤ãã¾ãï¼çµ¶å¯¾ä½ç½®æå®è¦ç´ ã§å©ç¨ã§ãã空éãåããå ´åï¼ã
topã¨bottomã®ä¸¡æ¹ãæå®ãã㨠(autoã§ã¯ãªã)ãtopãåªå ããã¾ããleftã¨rightã®ä¸¡æ¹ãæå®ããã¨ãdirectionãltr(è±èªã横æ¸ãæ¥æ¬èªããªã©) ã®å ´åã¯leftãåªå ãããdirectionãrtl(ãã«ã·ã£èªãã¢ã©ãã¢èªãããã©ã¤èªã ãªã©)ã®å ´åã¯rightãåªå ããã¾ãã
ã¢ã¯ã»ã·ããªãã£
absolute ã¾ã㯠fixed ã®å¤ã§é
ç½®ãããè¦ç´ ã¯ããã¼ã¸ããºã¼ã ãã¦ããã¹ãã®å¤§ããã大ãããããããã®ä»ã®è¦ç´ ã妨害ãã¦ããªããã©ããã確èªãã¦ãã ããã
ããã©ã¼ãã³ã¹ã¨ã¢ã¯ã»ã·ããªãã£
fixed ã¾ã㯠sticky ãå«ãè¦ç´ ã®å
容ãã¹ã¯ãã¼ã«ããã¨ãããã©ã¼ãã³ã¹ãã¢ã¯ã»ã·ããªãã£ã®åé¡ãå¼ãèµ·ããå¯è½æ§ãããã¾ããã¦ã¼ã¶ã¼ãã¹ã¯ãã¼ã«ããéããã©ã¦ã¶ã¼ã¯ sticky ã fixed ã®ã³ã³ãã³ããæ°ããå ´æã«åæç»ããªããã°ãªãã¾ãããåæç»ããå¿
è¦ãããã³ã³ãã³ãããã©ã¦ã¶ã¼ã®æ§è½ãã端æ«ã®å¦çé度ã«ãã£ã¦ã¯ããã©ã¦ã¶ã¼ã¯ 60 fps ã§åæç»ã管çãããã¨ãã§ãã¾ããããã®ãããªç¶æ³ã¯ãåä½ã®ä¸å®å®ï¼ã¸ã£ã³ã¯ï¼ã«ã¤ãªããå¯è½æ§ããããããã«éè¦ãªãã¨ã¨ãã¦ãææãªäººã«ã¨ã£ã¦ã¯ã¢ã¯ã»ã·ããªãã£ã®åé¡ã¨ãªãã¾ããä¸ã¤ã®è§£æ±ºæ¹æ³ã¨ãã¦ãä½ç½®æå®è¦ç´ ã« will-change: transform ã追å ãã¦è¦ç´ ãç¬èªã®ã¬ã¤ã¤ã¼ã§æç»ãããããã«ããã¨ãåæç»ã®é度ãä¸ãããæ§è½åé¡ãã¢ã¯ã»ã·ããªãã£ãæ¹åãããã¨ãã§ãã¾ãã
å ¬å¼å®ç¾©
| åæå¤ | static |
|---|---|
| é©ç¨å¯¾è±¡ | ãã¹ã¦ã®è¦ç´ |
| ç¶æ¿ | ãªã |
| è¨ç®å¤ | æå®éã |
| ã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ | 颿£å¤ |
| éãåããã³ã³ããã¹ãã®çæ | ãã |
形弿æ³
position =
static |
relative |
absolute |
sticky |
fixed |
<running()>
<running()> =
running( <custom-ident> )
ä¾
>ç¸å¯¾ä½ç½®æå®
ç¸å¯¾ä½ç½®æå®ã®è¦ç´ ã¯ææ¸ä¸ã®é常ã®é ç½®ãããæå®ãããéã ããªãã»ãããã¾ãããã»ãã®è¦ç´ ã«ã¯ãªãã»ããã®å½±é¿ãä¸ãã¾ããã以ä¸ã®ä¾ã§ã¯ã "Two" ãé常ã®ä½ç½®ã«ç©ºéãå¾ã¦ããããã«ä»ã®è¦ç´ ãé ç½®ããããã¨ã«æ³¨æãã¦ãã ããã
HTML
<div class="box" id="one">One</div>
<div class="box" id="two">Two</div>
<div class="box" id="three">Three</div>
<div class="box" id="four">Four</div>
CSS
* {
box-sizing: border-box;
}
.box {
display: inline-block;
width: 100px;
height: 100px;
background: red;
color: white;
}
#two {
position: relative;
top: 20px;
left: 20px;
background: blue;
}
絶対ä½ç½®æå®
ç¸å¯¾ä½ç½®æå®ã®è¦ç´ ããææ¸ã®é常ã®ããã¼ã®ä¸ã«é
ç½®ããã¾ããããã«å¯¾ãã¦ã絶対ä½ç½®æå®ã®è¦ç´ ã¯ããã¼ããé¤å¤ããã¾ããã¤ã¾ããä»ã®è¦ç´ ã¯ãã®è¦ç´ ãåå¨ããªããã®ããã«é
ç½®ããã¾ãã絶対ä½ç½®æå®ã®è¦ç´ ã¯é
ç½®ãããç´è¿ã®ç¥å
ï¼ã¤ã¾ãã static ã§ã¯ãªãç´è¿ã®ç¥å
ï¼ã«å¯¾ãã¦ç¸å¯¾çã«é
ç½®ããã¾ããé
ç½®ãããç¥å
ããªãå ´åã¯ãåæå
å«ããã㯠(ICB)ãããªãã¡ææ¸ã®ã«ã¼ãè¦ç´ ã®å
å«ãããã¯ã«å¯¾ããç¸å¯¾çãªé
ç½®ã«ãªãã¾ãã
HTML
<h1>絶対ä½ç½®æå®</h1>
<p>
ããã¯åºæ¬çãªãããã¯ã¬ãã«è¦ç´ ã§ãã飿¥ãããããã¯ã¬ãã«è¦ç´ ã¯ããã®ä¸ã«æ°ããè¡ã«é
ç½®ãã¾ãã
</p>
<p class="positioned">
æ¢å®ã§ã¯ã親è¦ç´ ã®å¹
ã 100% 使ç¨ããåã³ã³ãã³ãã®é«ãã¨åãé«ãã«ãªãã¾ããã³ã³ãã³ãã®å¹
ã¨é«ãã®åè¨ã¯ãã³ã³ãã³ãã®é«ãï¼ããã£ã³ã°ï¼å¢çç·ã®å¹
/é«ãã¨ãªãã¾ãã
</p>
<p>
ããã¯ãã¼ã¸ã³ã«ãã£ã¦å¥åã®åå¨ã¨ãªã£ã¦ãã¾ãããã¼ã¸ã³ãç¸æ®ºããã¦ããããã両æ¹ã§ã¯ãªãã䏿¹ã®ãã¼ã¸ã³ã®å¹
ã¨ãªã£ã¦ãã¾ãã
</p>
<p>
ã¤ã³ã©ã¤ã³è¦ç´ ã¯ã<span>ãã®è¦ç´ </span>ã¨<span>ãã®è¦ç´ </span>ãäºãã«åãè¡ã«ä½ç½®ããåãè¡ã«ç©ºéãããå ´åã«ã¯é£æ¥ããããã¹ããã¼ããä½ç½®ãã¾ãããªã¼ãã¼ããã¼ããã¤ã³ã©ã¤ã³è¦ç´ ã¯ãå¯è½ãªå ´åã«ã¯æ°ããè¡ã«<span>ãã®ããã¹ããå«ãè¦ç´ ã®ããã«æãè¿ããã¾ã</span>ãã¾ãã¯ããã§ãªãå ´åã«ã¯æ°ããè¡ã«ç§»åãã¾ãããã®ç»åã®ããã«ãªãã¾ãã
<img src="https://mdn.github.io/shared-assets/images/examples/long.jpg" />
</p>
CSS
* {
box-sizing: border-box;
}
body {
width: 500px;
margin: 0 auto;
}
p {
background: aqua;
border: 3px solid blue;
padding: 10px;
margin: 10px;
}
span {
background: red;
border: 1px solid black;
}
.positioned {
position: absolute;
background: yellow;
inset-block-start: 30px;
inset-inline-start: 30px;
}
çµæ
åºå®ä½ç½®æå®
åºå®ä½ç½®æå®ã¯çµ¶å¯¾ä½ç½®æå®ã«ä¼¼ã¦ãã¾ãããè¦ç´ ã®å
å«ãããã¯ããã¥ã¼ãã¼ãã«ãã£ã¦å®ç¾©ãããåæå
å«ãããã¯ã§ããã¨ããç¹ãç°ãªããç¥å
ã®ä¸ã¤ã« transform, perspective, filter ã®ä½ããã®ããããã£ã none 以å¤ï¼åºå®ä½ç½®æå®å
å«ããã㯠ãåç
§ï¼ã«è¨å®ããã¦ããå ´åã¯ä¾å¤ã§ããã®å ´åã¯ç¥å
ãå
å«ãããã¯ã¨ãã¦ãµãã¾ãã¾ããããã¯ããããã¼ã¸ãã¹ã¯ãã¼ã«ãã¦ãåä½ç½®ã«çã¾ãç¶ãããããªãæµ®ããè¦ç´ ("floating" element) ãä½ãã®ã«ä½¿ããã¾ããä¸ã®ä¾ã§ã¯ããã¯ã¹ "One" ã¯ãã¼ã¸ã®ä¸ãã 80pxãå·¦ãã 10px ã®ä½ç½®ã«åºå®ããã¾ããã¹ã¯ãã¼ã«ãã¦ãããã¥ã¼ãã¼ãã«å¯¾ãã¦åãä½ç½®ã«çã¾ãç¶ãã¾ããã¾ãã will-change ããããã£ã« transform ãè¨å®ããã¨ãæ°ããå
å«ãããã¯ãè¨å®ããã¾ãã
HTML
<div class="outer">
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam congue tortor
eget pulvinar lobortis. Vestibulum ante ipsum primis in faucibus orci luctus
et ultrices posuere cubilia Curae; Nam ac dolor augue. Pellentesque mi mi,
laoreet et dolor sit amet, ultrices varius risus. Nam vitae iaculis elit.
Aliquam mollis interdum libero. Sed sodales placerat egestas. Vestibulum ut
arcu aliquam purus viverra dictum vel sit amet mi. Duis nisl mauris, aliquam
sit amet luctus eget, dapibus in enim. Sed velit augue, pretium a sem
aliquam, congue porttitor tortor. Sed tempor nisl a lorem consequat, id
maximus erat aliquet. Sed sagittis porta libero sed condimentum. Aliquam
finibus lectus nec ante congue rutrum. Curabitur quam quam, accumsan id
ultrices ultrices, tempor et tellus.
</p>
<p>
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Nam congue tortor
eget pulvinar lobortis. Vestibulum ante ipsum primis in faucibus orci luctus
et ultrices posuere cubilia Curae; Nam ac dolor augue. Pellentesque mi mi,
laoreet et dolor sit amet, ultrices varius risus. Nam vitae iaculis elit.
Aliquam mollis interdum libero. Sed sodales placerat egestas. Vestibulum ut
arcu aliquam purus viverra dictum vel sit amet mi. Duis nisl mauris, aliquam
sit amet luctus eget, dapibus in enim. Sed velit augue, pretium a sem
aliquam, congue porttitor tortor. Sed tempor nisl a lorem consequat, id
maximus erat aliquet. Sed sagittis porta libero sed condimentum. Aliquam
finibus lectus nec ante congue rutrum. Curabitur quam quam, accumsan id
ultrices ultrices, tempor et tellus.
</p>
<div class="box" id="one">One</div>
</div>
CSS
* {
box-sizing: border-box;
}
.box {
width: 100px;
height: 100px;
background: red;
color: white;
}
#one {
position: fixed;
top: 80px;
left: 10px;
background: blue;
}
.outer {
width: 500px;
height: 300px;
overflow: scroll;
padding-left: 150px;
}
çµæ
ç²çä½ç½®æå®
次㮠CSS ã«ã¼ã«ã¯ããã¥ã¼ãã¼ããã¹ã¯ãã¼ã«ãããã¾ã§ãid ã "one" ã§ããè¦ç´ ãç¸å¯¾çã«ä½ç½®æå®ããè¦ç´ ãä¸ãã 10 ãã¯ã»ã«ã®ä½ç½®ã«ããããã«ãã¾ãããã®é¾å¤ãè¶ ããã¨ãè¦ç´ ã¯ä¸ãã 10 ãã¯ã»ã«ã®ä½ç½®ã«åºå®ããã¾ãã
#one {
position: sticky;
top: 10px;
}
ç²çè¦åºãã®ãããªã¹ã
ç²çä½ç½®æå®ã¯ä¸è¬çã«ãã¢ã«ãã¡ãããé ãäºåé³é ã®ãªã¹ãã®è¦åºãã«ä½¿ç¨ããã¾ããè¦åºã A ã®é ç®ãã¹ã¯ãªã¼ã³å¤ã«ã¹ã¯ãã¼ã«ããã¾ã§ãè¦åºã B 㯠A ã®é ç®ã®å¾ãã«è¡¨ç¤ºããã¦ãã¾ããè¦åºã B ã¯ã³ã³ãã³ãã®æ®ãã®é¨åã¨ã¨ãã«ã¹ã¯ãªã¼ã³å¤ã«ç§»åããã®ã§ã¯ãªããè¦åºã B ã®ãã¹ã¦ã®é ç®ãã¹ã¯ãªã¼ã³å¤ã«ã¹ã¯ãã¼ã«ãã¦è¦åºã C ã«å«ã¾ããé¨åã«éããã¾ã§ããã¥ã¼ãã¼ãã®ä¸é¨ã«åºå®ããã¾ãã
ç²çä½ç½®æå®ãæ³å®ããã¨ããã«åä½ãããããã«ã¯ã top, right, bottom, left ã®ãã¡å°ãªãã¨ãä¸ã¤ã§ãããå¤ãæå®ããªããã°ãªãã¾ããããããå¤ãæå®ããªããã°ãç¸å¯¾ä½ç½®æå®ã¨ã®éãããªããªãã§ãããã
HTML
<dl>
<div>
<dt>A</dt>
<dd>Andrew W.K.</dd>
<dd>Apparat</dd>
<dd>Arcade Fire</dd>
<dd>At The Drive-In</dd>
<dd>Aziz Ansari</dd>
</div>
<div>
<dt>C</dt>
<dd>Chromeo</dd>
<dd>Common</dd>
<dd>Converge</dd>
<dd>Crystal Castles</dd>
<dd>Cursive</dd>
</div>
<div>
<dt>E</dt>
<dd>Explosions In The Sky</dd>
</div>
<div>
<dt>T</dt>
<dd>Ted Leo & The Pharmacists</dd>
<dd>T-Pain</dd>
<dd>Thrice</dd>
<dd>TV On The Radio</dd>
<dd>Two Gallants</dd>
</div>
</dl>
CSS
* {
box-sizing: border-box;
}
dl > div {
background: white;
padding-top: 24px;
}
dt {
background: #b8c1c8;
border-bottom: 1px solid #989ea4;
border-top: 1px solid #717d85;
color: white;
font:
bold 18px/21px "Helvetica",
"Arial",
sans-serif;
margin: 0;
padding: 2px 0 0 12px;
position: -webkit-sticky;
position: sticky;
top: -1px;
}
dd {
font:
bold 20px/45px "Helvetica",
"Arial",
sans-serif;
margin: 0;
padding-left: 12px;
white-space: nowrap;
}
dd + dd {
border-top: 1px solid #cccccc;
}
çµæ
ãã¹ã¦ã®å æ¥å¢çãæå®ããç²çä½ç½®
次ã®ä¾ã¯ããã¹ã¦ã®å æ¥å¢çããã¹ã¦è¨å®ããå ´åã®è¦ç´ ã®åä½ã示ãã¦ãã¾ããããã§ã¯ã2 ã¤ã®é»çã®çµµæåãæ®µè½å ã«ããã¾ããé»çã¯ç²çä½ç½®æå®ã使ç¨ãã¦ãããå æ¥å¢çã¯ä¸ãã 50pxãå³ãã 100pxãä¸ãã 50pxãå·¦ãã 50pxã¨æå®ããã¦ãã¾ãã親㮠div è¦ç´ ã®ç°è²ã®èæ¯ãå æ¥é åã示ãã¦ãã¾ãã
HTML
ã¹ã¯ãã¼ã«ãã¼ã使ç¨ãã¦ã以ä¸ã®ããã¹ãå
ã®æ£ããå ´æã«é»ç (ð¡) ãé
ç½®ãã¦ãã ããã
<div>
<p>
The representation of an idea by a light bulb(<span class="bulb">ð¡</span>)
is a commonly used metaphor that symbolizes the moment of inspiration or the
birth of a new idea. The association between a light bulb and an idea can be
traced back to the invention of the incandescent light bulb(<span
class="bulb"
>ð¡</span
>) by Thomas Edison in the late 19th century. The light bulb is a powerful
symbol because it represents illumination, clarity, and the sudden
brightening of one's thoughts or understanding. When someone has an idea, it
is often described as a light bulb turning on in their mind, signifying a
moment of insight or creativity. The image of a light bulb also suggests the
idea of energy, power, and the potential for growth and development.
</p>
</div>
CSS
.bulb {
position: sticky;
inset: 50px 100px;
}
div {
/* ã¤ã³ã»ããå¢çç·ã§å®ç¾©ãããé åãç°è²ã§å¡ãã¤ã¶ã */
background: linear-gradient(#99999999, #99999999) 100px 50px / 192px 100px
no-repeat;
}
çµæ
ã©ã¡ãã®é»çãæ£ããå ´æã«ç½®ãã¨ãç¸å¯¾ä½ç½®ãå æ¥é åå ã«æå®ããã¦ãããã¨ããããã¾ããå æ¥é åããç§»ãããã¨ããã®æ¹åã®å æ¥å¢çã«åºå®ï¼ç²çï¼ããã¾ãã
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Positioned Layout Module Level 3 > # position-property > |