place-items
åºçº¿
广æ³å¯ç¨
*
èª 2020å¹´1æ èµ·ï¼æ¤ç¹æ§å·²å¨ä¸»æµæµè§å¨ä¸å¾å°æ¯æï¼å¯å¨å¤§å¤æ°è®¾å¤åæµè§å¨çæ¬ä¸æ£å¸¸ä½¿ç¨ã
* æ¤ç¹æ§çæäºé¨åçæ¯æç¨åº¦å¯è½ææä¸åã
CSS ä¸ç place-items æ¯ä¸ä¸ªç®å屿§ ï¼å®å
è®¸ä½ å¨ç¸å
³çå¸å±ï¼å¦ç½æ ¼æå¼¹æ§çåï¼ä¸å¯ä»¥åæ¶æ²¿çå级åå
èæ¹å对é½å
ç´ ï¼ä¾å¦ï¼align-items å justify-items 屿§ï¼ãå¦ææªæä¾ç¬¬äºä¸ªå¼ï¼å第ä¸ä¸ªå¼ä½ä¸ºç¬¬äºä¸ªå¼çé»è®¤å¼ã
å°è¯ä¸ä¸
place-items: center stretch;
place-items: center start;
place-items: start end;
place-items: end center;
<section class="default-example" id="default-example">
<div class="example-container">
<div class="transition-all" id="example-element">
<div>One</div>
<div>Two</div>
<div>Three</div>
</div>
</div>
</section>
#example-element {
border: 1px solid #c5c5c5;
display: grid;
grid-template-columns: 1fr 1fr;
grid-auto-rows: 80px;
grid-gap: 10px;
width: 220px;
}
#example-element > div {
background-color: rgba(0, 0, 255, 0.2);
border: 3px solid blue;
}
ææå±æ§
è¯¥å±æ§æ¯ä»¥ä¸ä¸¤ä¸ª CSS 屿§çç®åï¼
è¯æ³
/* Keyword values */
place-items: auto center;
place-items: normal start;
/* Positional alignment */
place-items: center normal;
place-items: start auto;
place-items: end normal;
place-items: self-start auto;
place-items: self-end normal;
place-items: flex-start auto;
place-items: flex-end normal;
place-items: left auto;
place-items: right normal;
/* Baseline alignment */
place-items: baseline normal;
place-items: first baseline auto;
place-items: last baseline normal;
place-items: stretch auto;
/* Global values */
place-items: inherit;
place-items: initial;
place-items: unset;
å¼
auto-
autoå®é çå¼ç»§æ¿ç¶èªå ç´ çjustify-itemså¼ï¼é¤é该å ç´ æ²¡æç¶å ç´ ææ¯ç¨äºç»å¯¹å®ä½ãå¨è¿äºç¤ºä¾ä¸ï¼auto表示normalã normal-
normalçææåå³äºæä»¬ä½¿ç¨åªç§å¸å±æ¹å¼ï¼- å¨å级å¸å±ä¸ï¼
normalåstart䏿 ·ã - å¨ç»å¯¹å®ä½å¸å±ä¸ï¼å
³é®åå¨è¢«æ¿æ¢çç»å¯¹å®ä½å
ç´ ä¸çè¡ä¸ºç±»ä¼¼äº
startï¼å¨ææå ¶ä»ç»å¯¹å®ä½çå ç´ ä¸è¡¨ç°ç±»ä¼¼stretchã - å¨è¡¨æ ¼åå æ ¼å¸å±ä¸ï¼æ¤å ³é®å没ææä¹ï¼å ä¸ºè¯¥å±æ§è¢«å¿½ç¥ã
- å¨ flexbox å¸å±ä¸ï¼æ¤å ³é®å没ææä¹ï¼å ä¸ºè¯¥å±æ§è¢«å¿½ç¥ã
- å¨ grid å¸å±ä¸ï¼æ¤å
³é®åå
stretchçè¡ä¸ºç¸ä¼¼ï¼ä½æ¯å ·æå®½é«æ¯ååºæå°ºå¯¸çå ç´ è¡ä¸ºåstartç¸ä¼¼ã
- å¨å级å¸å±ä¸ï¼
start-
å¨éå½ç轴线ä¸ï¼å ç´ åæ²¿ç对é½å®¹å¨çèµ·å§è¾¹ç¼å¯¹é½ã
end-
å¨éå½ç轴线ä¸ï¼å ç´ åæ²¿ç对é½å®¹å¨çç»æè¾¹ç¼å¯¹é½ã
flex-start-
坹齿¹å¼åå³äº flex 容å¨çå¼å§æ¹åãï¼æ°´å¹³ååç´ä¸¤ä¸ªæ¹åï¼ è¿åªå¯¹ flex å¸å±å ç´ çæï¼å¯¹äºä¸æ¯ flex 容å¨çåå ç´ ï¼å®è¢«è§ä¸º
startã flex-end-
坹齿¹å¼åå³äº flex 容å¨çç»ææ¹åãï¼æ°´å¹³ååç´ä¸¤ä¸ªæ¹åï¼ è¿åªå¯¹ flex å¸å±å ç´ çæï¼å¯¹äºä¸æ¯ flex 容å¨çåå ç´ ï¼å®è¢«è§ä¸º endã
self-start-
沿ç轴线ç头é¨å¯¹é½ã
self-end-
沿ç轴线çå°¾é¨å¯¹é½ã
center-
沿ç对é½å®¹å¨çä¸å¿å¯¹é½ã
left-
沿ç对é½å®¹å¨ç左侧对é½ï¼å¦æå±æ§çè½´ä¸ä¸å èè½´å¹³è¡ï¼å该å¼çè¡ä¸ºå
start类似ã right-
沿ç对é½å®¹å¨çå³ä¾§å¯¹é½ï¼å¦æå±æ§çè½´ä¸ä¸å èè½´å¹³è¡ï¼å该å¼çè¡ä¸ºå
start类似ã baseline first baselinelast baseline-
æå®åä¸ç¬¬ä¸ä¸ªææåä¸ä¸ªåºçº¿å¯¹é½ï¼å ç´ ç第ä¸ä¸ªææåä¸ä¸ªåºçº¿éç对é½åºçº¿ä¸åºçº¿å ±äº«ç»ä¸æææ¡å ±äº«ç第ä¸ä¸ªææåä¸ä¸ªåºçº¿éä¸ç¸åºçåºçº¿å¯¹é½ã
first baselineçåé坹齿¹å¼ä¸ºstartï¼last baselineå为endã stretch-
妿å项å èµ·æ¥ç尺寸å°äºå¯¹é½å®¹å¨ç尺寸ï¼å任使ªå°ºå¯¸ä¸º
autoç项å°å¢å åçç大å°ï¼ä¸æ¯ææ¯ä¾ï¼ï¼ä½ä¹ä¼åå°max-height/max-widthï¼æçåçåè½ï¼çéå¶ï¼å æ¤ææé¡¹å好è½å¡«æ»¡å¯¹é½å®¹å¨ã
å½¢å¼å®ä¹
| åå§å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
|---|---|
| éç¨å ç´ | ææå ç´ |
| æ¯å¦æ¯ç»§æ¿å±æ§ | å¦ |
| 计ç®å¼ | 该ç®åæå¯¹åºçæ¯ä¸ªå±æ§ï¼
|
| å¨ç»ç±»å | 离æ£å¼ |
å½¢å¼è¯æ³
place-items =
<'align-items'> <'justify-items'>?
<align-items> =
normal |
stretch |
<baseline-position> |
<overflow-position>? <self-position>
<justify-items> =
normal |
stretch |
<baseline-position> |
<overflow-position>? [ <self-position> | left | right ] |
legacy |
legacy && [ left | right | center ]
<baseline-position> =
[ first | last ]? &&
baseline
<overflow-position> =
unsafe |
safe
<self-position> =
center |
start |
end |
self-start |
self-end |
flex-start |
flex-end
示ä¾
>å¨å¼¹æ§å®¹å¨ä¸æåå ç´
CSS
#container {
height: 200px;
width: 240px;
place-items: center; /* You can change this value by selecting another option in the list */
background-color: #8c8c8c;
}
.flex {
display: flex;
flex-wrap: wrap;
}
.grid {
display: grid;
grid-template-columns: repeat(auto-fill, 50px);
}
ç»æ
è§è
| è§è |
|---|
| CSS Box Alignment Module Level 3> # place-items-property> |
æµè§å¨å ¼å®¹æ§
åè§
- CSS Flexbox Guide: Basic Concepts of Flexbox
- CSS Flexbox Guide: Aligning items in a flex container
- CSS Grid Guide: Box alignment in CSS Grid layouts
- CSS Box Alignment
- The
align-itemsproperty - The
align-selfproperty - The
justify-itemsproperty - The
justify-selfproperty