place-self
Baseline
åºãå©ç¨å¯è½
*
ãã®æ©è½ã¯åºãå®è£ ããã¦ãããå¤ãã®ãã¼ã¸ã§ã³ã®ç«¯æ«ããã©ã¦ã¶ã¼ã§åä½ãã¾ãã2020å¹´1æä»¥éããã¹ã¦ã®ãã©ã¦ã¶ã¼ã§å©ç¨å¯è½ã§ãã
* ãã®æ©è½ã®ä¸é¨ã¯ã対å¿ã¬ãã«ãç°ãªãå ´åãããã¾ãã
place-self 㯠CSS ã®ä¸æ¬æå®ããããã£ã§ãã¢ã¤ãã ã®ãããã¯è»¸ããã³ã¤ã³ã©ã¤ã³è»¸ã«æ²¿ã£ãã¢ã¤ãã ã®é
ç½® (ããªãã¡ align-self ããã³ justify-self ããããã£) ãä¸åº¦ã«æå®ãããã¨ãã§ãã¾ãããã®ããããã£ã¯ããããã¯ã¬ãã«ã®ããã¯ã¹ã絶対ä½ç½®æå®ã®ããã¯ã¹ãã°ãªããã¢ã¤ãã ã«é©ç¨ããã¾ãã 2 çªç®ã®å¤ãè¨å®ããã¦ããªãå ´åãæåã®å¤ããã¡ãã«ã使ç¨ããã¾ãã
試ãã¦ã¿ã¾ããã
place-self: stretch center;
place-self: center start;
place-self: start end;
place-self: end center;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">One</div>
<div>Two</div>
<div>Three</div>
</div>
</section>
.example-container {
border: 1px solid #c5c5c5;
display: grid;
width: 220px;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 80px;
grid-gap: 10px;
}
.example-container > div {
background-color: rgb(0 0 255 / 0.2);
border: 3px solid blue;
}
æ§æè¦ç´ ã®ããããã£
æ ¹ã®ããããã£ã¯ä»¥ä¸ã® CSS ããããã£ã®ä¸æ¬æå®ã§ãã
æ§æ
/* ãã¼ã¯ã¼ãå¤ */
place-self: auto center;
place-self: normal start;
place-self: center normal;
place-self: start auto;
place-self: end normal;
place-self: self-start auto;
place-self: self-end normal;
place-self: flex-start auto;
place-self: flex-end normal;
place-self: anchor-center;
/* ãã¼ã¹ã©ã¤ã³ã«ããé
ç½® */
place-self: baseline normal;
place-self: first baseline auto;
place-self: last baseline normal;
place-self: stretch auto;
/* ã°ãã¼ãã«å¤ */
place-self: inherit;
place-self: initial;
place-self: revert;
place-self: revert-layer;
place-self: unset;
å¤
auto-
親ã®
align-itemsã®å¤ã§è¨ç®ãã¾ãã normal-
ãã®ãã¼ã¯ã¼ãã®å¹æã¯ãç¾å¨ã®ã¬ã¤ã¢ã¦ãã¢ã¼ãã«ä¾åãã¾ãã
- 絶対ä½ç½®ã®ã¬ã¤ã¢ã¦ãã§ã¯ããã®ãã¼ã¯ã¼ãã¯ç½®æã®çµ¶å¯¾ä½ç½®ããã¯ã¹ã«ã¯
startã®ããã«åä½ãããã®ä»ã®çµ¶å¯¾ä½ç½®ããã¯ã¹ã«ã¯stretchã®ããã«åä½ãã¾ãã - 絶対ä½ç½®æå®ã¬ã¤ã¢ã¦ãã®åºå®ä½ç½®æå®æã¯ããã®ãã¼ã¯ã¼ãã¯
stretchã¨åæ§ã«åä½ãã¾ãã - ãã¬ãã¯ã¹ã¢ã¤ãã ã§ã¯ããã®ãã¼ã¯ã¼ãã¯
stretchã¨åæ§ã«åä½ãã¾ãã - ã°ãªããã¢ã¤ãã ã§ã¯ããã®ãã¼ã¯ã¼ãã¯
stretchã®ãã¡ã®ä¸ã¤ã¨ä¼¼ãåä½ããã¾ãããã¢ã¹ãã¯ãæ¯ãå å¨çãªå¯¸æ³ãæã¤ããã¯ã¹ã¯startã®ããã«åä½ãã¾ãã - ãããã¯ã¬ãã«ããã¯ã¹ã¨è¡¨ã®ã»ã«ã§ã¯ãããããã£ã¯é©ç¨ããã¾ããã
- 絶対ä½ç½®ã®ã¬ã¤ã¢ã¦ãã§ã¯ããã®ãã¼ã¯ã¼ãã¯ç½®æã®çµ¶å¯¾ä½ç½®ããã¯ã¹ã«ã¯
self-start-
ã¢ã¤ãã ã¯äº¤å·®è»¸ã®éå§å´ã«å¯¾å¿ããé ç½®ã³ã³ããã¼ã®ç«¯ã«è©°ãã¦é ç½®ããã¾ãã
self-end-
ã¢ã¤ãã ã¯äº¤å·®è»¸ã®çµç«¯å´ã«å¯¾å¿ããé ç½®ã³ã³ããã¼ã®ç«¯ã«è©°ãã¦é ç½®ããã¾ãã
flex-start-
ãã®ãã¬ãã¯ã¹ã¢ã¤ãã ã®äº¤å·®è»¸ã®å é å´ãã¼ã¸ã³ããè¡ã®äº¤å·®è»¸ã®å é å´ã«è©°ãããã¾ãã
flex-end-
ãã®ãã¬ãã¯ã¹ã¢ã¤ãã ã®äº¤å·®è»¸ã®æ«å°¾å´ãã¼ã¸ã³ããè¡ã®äº¤å·®è»¸ã®æ«å°¾å´ã«è©°ãããã¾ãã
center-
ãã®ãã¬ãã¯ã¹ã¢ã¤ãã ã®ãã¼ã¸ã³ããã¯ã¹ããè¡ã®äº¤å·®è»¸æ¹åã®ä¸å¤®ã«é ç½®ããã¾ããã¢ã¤ãã ã®äº¤å·®è»¸æ¹åã®å¯¸æ³ããã¬ãã¯ã¹ã³ã³ããã¼ããã大ããå ´åã¯ã両æ¹åã«åçã«ã¯ã¿åºãã¾ãã
baseline,first baseline.last baseline-
first-baseline é ç½®ã¾ã㯠last-baseline é ç½®ã¸ã®é¢ä¸ãæå®ãã¾ããããã¯ã¹ã®æåã¾ãã¯æå¾ã®ãã¼ã¹ã©ã¤ã³ã»ããã®é ç½®ãã¼ã¹ã©ã¤ã³ãããã¼ã¹ã©ã¤ã³å ±æã°ã«ã¼ãå ã®ãã¹ã¦ã®ããã¯ã¹ã§å ±æãããæåã¾ãã¯æå¾ã®ãã¼ã¹ã©ã¤ã³ã»ããã§å¯¾å¿ãããã¼ã¹ã©ã¤ã³ã«æãã¾ãã
first baselineã®ä»£æ¿é ç½®ã¯startãlast baselineã®ä»£æ¿é ç½®ã¯endã§ãã stretch-
ã¢ã¤ãã ã®äº¤å·®è»¸æ¹åã®å¯¸æ³ã®åè¨å¤ããé ç½®ã³ã³ããã¼ã®å¯¸æ³ãããå°ãããã¢ã¤ãã ã®å¯¸æ³ã
autoã§ãã£ãå ´åãã¢ã¤ãã ã®å¯¸æ³ã¯max-height/max-width(ã¾ãã¯åçã®æ©è½) ã§èª²ãããå¶ç´ãå°éãã¤ã¤ãåçã®å¯¸æ³ (æ¯ä¾çã§ã¯ãªã) ã«æ¡å¤§ãããã®ã§ãautoãæå®ãããã¢ã¤ãã ãã¹ã¦ã®å¯¸æ³ã®åè¨ã¯ãã¡ããã©é ç½®ã³ã³ããã¼ã®äº¤å·®è»¸æ¹åãåããããã«ãªãã¾ãã anchor-center-
ã¢ã³ã«ã¼ä½ç½®æå®è¦ç´ ã®å ´åãé¢é£ä»ããããã¢ã³ã«ã¼è¦ç´ ã®ãããã¯ããã³ã¤ã³ã©ã¤ã³æ¹åã®ä¸å¿ã«ã¢ã¤ãã ãé ç½®ãã¾ãã
anchor-centerã使ç¨ãã¦ã¢ã³ã«ã¼ã®ä¸å¤®ã«é ç½®ãåç §ãã¦ãã ããã
å ¬å¼å®ç¾©
| åæå¤ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
|---|---|
| é©ç¨å¯¾è±¡ | block-level boxes, absolutely-positioned boxes, and grid items |
| ç¶æ¿ | ãªã |
| è¨ç®å¤ | 䏿¬æå®ã®æ¬¡ã®åããããã£ã¨ãã¦
|
| ã¢ãã¡ã¼ã·ã§ã³ã®ç¨®é¡ | 颿£å¤ |
形弿æ³
place-self =
<'align-self'> <'justify-self'>?
<align-self> =
auto |
<overflow-position>? [ normal | <self-position> ] |
stretch |
<baseline-position> |
anchor-center
<justify-self> =
auto |
<overflow-position>? [ normal | <self-position> | left | right ] |
stretch |
<baseline-position> |
anchor-center
<overflow-position> =
unsafe |
safe
<self-position> =
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
<baseline-position> =
[ first | last ]? &&
baseline
ä¾
>åºæ¬çãªãã¢
以ä¸ã®ä¾ã§ã¯ 2 x 2 ã®ã°ãªããã¬ã¤ã¢ã¦ããç¨æãã¾ãããæåã«ã°ãªããã³ã³ããã¼ã«ã¯ justify-items ããã³ align-items ã®å¤ã stretch â æ¢å®å¤ â ã«è¨å®ããã°ãªããã¢ã¤ãã ãã»ã«ã®å¹
å
¨ä½ã«åºããããã«ãã¦ãã¾ãã
2 çªç®ã3 çªç®ã4 çªç®ã®ã°ãªããã¢ã¤ãã ã¯ãå¥ã
㪠place-self ã®å¤ãæå®ããããããæ¢å®ã®é
ç½®ããªã¼ãã¼ã©ã¤ãããæ§åã表示ãã¾ãããããã®å¤ã¯ã°ãªããã¢ã¤ãã ã®å¹
ãé«ããå
容ç©ã®å¹
ãé«ãã«è¨å®ããã»ã«ãã¨ã«ãããã¯æ¹åã¨ã¤ã³ã©ã¤ã³æ¹åã®ä¸¡æ¹ã§ç°ãªãä½ç½®ã«é
ç½®ãã¦ãã¾ãã
HTML
<article class="container">
<span>First</span>
<span>Second</span>
<span>Third</span>
<span>Fourth</span>
</article>
CSS
html {
font-family: "Helvetica", "Arial", sans-serif;
letter-spacing: 1px;
}
article {
background-color: red;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 80px;
grid-gap: 10px;
margin: 20px;
width: 300px;
}
span:nth-child(2) {
place-self: start center;
}
span:nth-child(3) {
place-self: center start;
}
span:nth-child(4) {
place-self: end;
}
article span {
background-color: black;
color: white;
margin: 1px;
text-align: center;
}
article,
span {
padding: 10px;
border-radius: 7px;
}
çµæ
仿§æ¸
| 仿§æ¸ |
|---|
| CSS Box Alignment Module Level 3 > # place-self-property > |