DIST.38 「CSSな夜」で発表した内容です。 https://dist.connpass.com/event/266728/
Twitter https://twitter.com/tonkotsuboy_com
$44(SJEɾ'MFYCPYͷ࠷ۙͷਐԽͱϛϥΠϚωʔϑΥϫʔυࣛૉࡐ࡞ڠྗɿদԼֆས
View Slide
ࣛ!UPOLPUTVCPZ@DPNϚωʔϑΥϫʔυϏδωεΧϯύχʔ ܦཧࡒϓϩμΫτຊ෦ϓϩμΫτ։ൃ෦෭෦
ࣥච͠·ͨ͠
দԼֆསຊͷૉࡐ࡞ڠྗmatsu_eri
$44(SJEͱʮߦྻʯΛͬͨϨΠΞτͷ͜ͱ
ΤϦΞ໊Λࢦఆͯ͠ஔ.container {display: grid;grid-template:"main-visual logo" 70%"main-visual title" 30% /50% 50%;}ߦྻͷߦྻΛͭ͘ΓɺͦΕͧΕ໊લΛαΠζΛઃఆ͢Δͱ͍͏ࢦఆ
ΤϦΞ໊Λࢦఆͯ͠ஔ.container {display: grid;grid-template:"main-visual logo" 70%"main-visual title" 30% /50% 50%;}.main-visual {grid-area: main-visual;}.logo {grid-area: logo;}.title {grid-area: title;}
ߦྻΛ܁Γฦͨ͠Γɺ伱ؒΛͭ͘Δ.container {display: grid;grid-template:repeat(3, 100px) /repeat(3, 100px);gap: 24px;}ߦྻͷQYͷαΠζͷࢦఆɺߦྻؒͷ伱ؒΛQYʹ͢Δࢦఆ
ߦྻΛ܁Γฦͨ͠Γɺ伱ؒΛͭ͘Δ.container {display: grid;grid-template:repeat(3, 100px) /repeat(3, 100px);gap: 24px;}
ߦɾྻͷࣗಈมߋ.container {grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));}QYҎ্GSҎԼͰɺͰ͖Δ͚ͩଟ͘ͷྻΛ࡞͍ͬͯͩ͘͞ͱ͍͏ࢦఆ
ෑ͖٧Ί.container {grid-auto-flow: dense;}伱͕ؒ͋ͬͨΒͰ͖Δ͚ͩෑ͖٧Ί͍ͯͩ͘͞ͱ͍͏ࢦఆ
ߦɾྻͷࣗಈมߋɺෑ͖٧Ί.container {display: grid;grid-template-columns:repeat(auto-fill, minmax(300px, 1fr));grid-auto-rows: 200px;grid-auto-flow: dense;}.item.featured {grid-column: span 2;grid-row: span 2;}
࠷ۙ͑ΔΑ͏ʹͳͬͨ৽ػೳw࠷ߦͰ্Լࠨӈἧ͑w'MFYCPYͷHBQw$44(SJEͰΞχϝʔγϣϯ
ߦͰ্Լࠨӈதἧ͕͑Ͱ͖ΔΑ͏ʹͳͬͨ01
͏ػձͷଟ্͍Լࠨӈதԝἧ͑
ੲͷΓ͔ͨʢ4ʙ7ߦʣ.container {position: relative;}.container .box {position: absolute;top: 50%;left: 50%;margin-top: -100px;margin-left: -100px;}
FlexboxͰ3ߦ.container {display: flex;justify-content: center;align-items: center;}
CSS GridΛ͑2ߦ.container {display: grid;place-content: center;}
Demo
place-content: center;(SJEࣗମͷஔΛ্Լࠨӈதԝἧ͑ʹ͢Δ
place-items: center;(SJEͷηϧͷΞΠςϜͷஔΛ্Լࠨӈதԝἧ͑ʹ͢Δ
place-content20201݄͔ΒશϒϥβରԠIUUQTDBOJVTFDPNNEODTT@QSPQFSUJFT@QMBDFDPOUFOU݄&EHF˞$ISPNJVN&EHF
'MFYCPYͰHBQ͕͑ΔΑ͏ʹͳͬͨ02
ԣฒͼϦϯΫͷ伱ؒΛࢦఆ͍ͨ͠
ੲɿཁૉؒʹmarginΛࢦఆ͍ͯͨ͠.container {display: flex;}.container > a {margin-left: 20px;margin-right: 20px;}.container > a:first-of-type {margin-left: 0;}.container > a:last-of-type {margin-right: 0;}
ݱFlexboxͰgap͕͑Δ.container {display: flex;gap: 40px;}
20214݄͔ΒશϒϥβରԠIUUQTDBOJVTFDPNflFYCPYHBQ݄4BGBSJ
ߦɾྻͷΞχϝʔγϣϯ͕Ͱ͖ΔΑ͏ʹͳͬͨ03
φϏήʔγϣϯΛΞχϝʔγϣϯͤ͞Δ
CSS GridʹΞχϝʔγϣϯΛࢦఆ͢Δ.container {display: grid;transition: 300ms all;grid-template-columns: 40px 1fr;}.container.open {grid-template-columns: 200px 1fr;}
Ξχϝʔγϣϯ202210݄͔ΒશϒϥβରԠIUUQTDBOJVTFDPNNEODTT@QSPQFSUJFT@HSJEUFNQMBUFDPMVNOT@BOJNBUJPO݄$ISPNF
ࠓޙ͑ΔΑ͏ʹͳΔ৽ػೳwߦྻͷೖΕࢠwੵΈϨΠΞτ
ߦྻͷೖΕࢠ͕ՄೳʹͳΔ04
֤ߦͰཁૉ͝ͱͷߴ͞Λἧ͍͑ͨ
$44(SJEΛೖΕࢠʹͯ͠ղܾ͢Δ
8ߦ×3ྻͷʮʯߦྻΛ࡞Δ
ʮࢠʯߦྻΛ࡞Γɺͷ4ߦΛ༻͢Δ
$44Ͱදݱ͢Δͱʜ/* 親⾏列 */.container {display: grid;}/* ⼦⾏列 */.container .item {display: grid;grid-template-rows: subgrid;grid-row: span 4;}
subgridSafariɾFirefoxͰରԠࡁΈIUUQTDBOJVTFDPNDTTTVCHSJE
$ISPNFɾ&EHFݱࡏ։ൃதIUUQTCVHTDISPNJVNPSHQDISPNJVNJTTVFTEFUBJM JE
ੵΈϨΠΞτ05
pinterestΈ͍ͨͳϨΠΞτΛ࡞Γ͍ͨ
ݱঢ়ͷCSSͰٕज़తʹՄೳ.container {/* カラム数成り⾏き、基本的に300pxの横幅 */columns: auto 300px;/* 列間の隙間 */column-gap: 24px;}.item {/* ⾏間の隙間 */margin-bottom: 24px;}ը૾ΛԣํʹฒΒΕͳ͍ɺ伱ؒΛͱࢠʹࢦఆ͢ΔͳͲ੍͕ଟ͍
কདྷతʹɺNBTPOSZΛ͏.container {grid-template-rows: masonry;grid-template-columns:repeat(auto-fill, 24px);gap: 40px;}ௐதॎํʹԣํʹฒΒΕΔɻ伱ؒࢦఆHBQͰՄೳ
Firefoxͷϑϥά͖ͷΈͰରԠIUUQTDBOJVTFDPNNEODTT@QSPQFSUJFT@HSJEUFNQMBUFSPXT@NBTPOSZ
FirefoxͷϑϥάΛ༗ޮԽ͢Δํ๏BCPVUDPOfiHʹΞΫηε
·ͱΊ
࠷ۙ͑ΔΑ͏ʹͳͬͨͷw ࠷ߦͰ্Լࠨӈἧ͑w 'MFYCPYͷHBQw $44(SJEͰΞχϝʔγϣϯࠓޙ͑ΔΑ͏ʹͳΔͷw ߦྻͷೖΕࢠw ੵΈϨΠΞτ
$44(SJE'MFYCPYΛΘͳ͍Ҋ݅ͳ͍ɻ৽͍͠ใΛΩϟονΞοϓ͠ɺϥΫʹָ͘͠։ൃ͠Α͏
Thank y !@tonkotsuboy_com@matsu_eri5XJUUFSͰ࠷৽ϑϩϯτΤϯυٕज़Λൃ৴͍ͯ͠·͢