CSS ग्रिड
उदाहरणे आणि कोड स्निपेट्ससह CSS ग्रिडवर तयार केलेली आमची वैकल्पिक मांडणी प्रणाली कशी सक्षम करायची, वापरायची आणि सानुकूलित कशी करायची ते शिका.
बूटस्ट्रॅपची डीफॉल्ट ग्रिड सिस्टीम लाखो लोकांनी प्रयत्न केलेल्या आणि तपासलेल्या CSS लेआउट तंत्रांच्या दशकाहून अधिक पराकाष्ठा दर्शवते. परंतु, आम्ही नवीन CSS ग्रिड सारख्या ब्राउझरमध्ये पाहत असलेल्या अनेक आधुनिक CSS वैशिष्ट्ये आणि तंत्रांशिवाय देखील ते तयार केले गेले.
हे कसे कार्य करते
बूटस्ट्रॅप 5 सह, आम्ही CSS ग्रिडवर तयार केलेली स्वतंत्र ग्रीड प्रणाली सक्षम करण्याचा पर्याय जोडला आहे, परंतु बूटस्ट्रॅप ट्विस्टसह. तुम्हाला अजूनही असे वर्ग मिळतात ज्यात तुम्ही प्रतिसादात्मक मांडणी तयार करण्यासाठी अर्ज करू शकता, परंतु हुड अंतर्गत वेगळ्या दृष्टिकोनासह.
-
CSS ग्रिड निवडले आहे. सेट करून डीफॉल्ट ग्रिड सिस्टीम अक्षम करा आणि सेट
$enable-grid-classes: false
करून CSS ग्रिड सक्षम करा$enable-cssgrid: true
. मग, तुमचा Sass पुन्हा कंपाइल करा. -
ची उदाहरणे
.row
सह पुनर्स्थित करा.grid
..grid
वर्ग सेट करतोdisplay: grid
आणि तयार करतो जेgrid-template
तुम्ही तुमच्या HTML सह तयार करता. -
.col-*
वर्गांना वर्गांसह बदला.g-col-*
. कारण आमचे CSS ग्रिड स्तंभgrid-column
ऐवजी गुणधर्म वापरतातwidth
. -
स्तंभ आणि गटर आकार CSS व्हेरिएबल्सद्वारे सेट केले जातात. हे पालकांवर सेट करा
.grid
आणि तुम्हाला हवे तसे सानुकूलित करा, इनलाइन किंवा स्टाईलशीटमध्ये,--bs-columns
आणि सह--bs-gap
.
भविष्यात, बूटस्ट्रॅप बहुधा हायब्रिड सोल्यूशनमध्ये बदलेल कारण gap
मालमत्तेने फ्लेक्सबॉक्ससाठी जवळजवळ पूर्ण ब्राउझर समर्थन प्राप्त केले आहे.
मुख्य फरक
डीफॉल्ट ग्रिड प्रणालीच्या तुलनेत:
-
फ्लेक्स युटिलिटिजचा CSS ग्रिड कॉलमवर त्याच प्रकारे परिणाम होत नाही.
-
गटरांची जागा गॅप्स घेते. गुणधर्म आमच्या डीफॉल्ट ग्रिड सिस्टममधून
gap
क्षैतिज बदलते आणि सारखे कार्य करते .padding
margin
-
त्यामुळे, s च्या विपरीत
.row
,.grid
s मध्ये कोणतेही ऋण मार्जिन नसतात आणि ग्रिड गटर बदलण्यासाठी मार्जिन युटिलिटिज वापरता येत नाहीत. डीफॉल्टनुसार ग्रिड अंतर क्षैतिज आणि अनुलंब लागू केले जातात. अधिक तपशीलांसाठी सानुकूलित विभाग पहा. -
इनलाइन आणि सानुकूल शैली सुधारक वर्गांसाठी बदली म्हणून पाहिल्या पाहिजेत (उदा.,
style="--bs-columns: 3;"
विclass="row-cols-3"
). -
नेस्टिंग सारखेच कार्य करते, परंतु नेस्टेडच्या प्रत्येक उदाहरणावर तुम्हाला तुमची स्तंभ संख्या रीसेट करण्याची आवश्यकता असू शकते
.grid
. तपशीलांसाठी घरटी विभाग पहा.
उदाहरणे
तीन स्तंभ
.g-col-4
वर्गांचा वापर करून सर्व व्ह्यूपोर्ट आणि उपकरणांमध्ये तीन समान-रुंदीचे स्तंभ तयार केले जाऊ शकतात . व्ह्यूपोर्ट आकारानुसार लेआउट बदलण्यासाठी प्रतिसाद देणारे वर्ग जोडा .
<div class="grid">
<div class="g-col-4">.g-col-4</div>
<div class="g-col-4">.g-col-4</div>
<div class="g-col-4">.g-col-4</div>
</div>
प्रतिसाद देणारा
व्ह्यूपोर्टवर तुमचा लेआउट समायोजित करण्यासाठी प्रतिसाद देणारे वर्ग वापरा. येथे आपण सर्वात अरुंद व्ह्यूपोर्ट्सवर दोन कॉलम्सपासून सुरुवात करतो आणि नंतर मध्यम व्ह्यूपोर्ट आणि त्यावरील तीन कॉलम्सपर्यंत वाढतो.
<div class="grid">
<div class="g-col-6 g-col-md-4">.g-col-6 .g-col-md-4</div>
<div class="g-col-6 g-col-md-4">.g-col-6 .g-col-md-4</div>
<div class="g-col-6 g-col-md-4">.g-col-6 .g-col-md-4</div>
</div>
सर्व व्ह्यूपोर्टवर या दोन स्तंभ लेआउटशी तुलना करा.
<div class="grid">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
गुंडाळणे
क्षैतिजरित्या अधिक जागा नसताना ग्रिड आयटम आपोआप पुढील ओळीत गुंडाळले जातात. लक्षात घ्या की gap
ग्रिड आयटममधील क्षैतिज आणि अनुलंब अंतरांवर लागू होते.
<div class="grid">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
सुरू होते
आमच्या डीफॉल्ट ग्रिडचे ऑफसेट वर्ग पुनर्स्थित करणे हे स्टार्ट क्लासेसचे उद्दिष्ट आहे, परंतु ते पूर्णपणे सारखे नाहीत. CSS ग्रिड शैलींद्वारे एक ग्रिड टेम्पलेट तयार करते जे ब्राउझरला "या स्तंभावर प्रारंभ" आणि "या स्तंभावर समाप्त" करण्यास सांगतात. ते गुणधर्म आहेत grid-column-start
आणि grid-column-end
. स्टार्ट क्लासेस पूर्वीच्या वर्गासाठी लघुलेख आहेत. आकारानुसार स्तंभ वर्गांसह त्यांची जोडा करा आणि तुम्हाला आवश्यक असलेले स्तंभ संरेखित करा. या गुणधर्मांसाठी अवैध मूल्य असल्याने 1
वर्ग सुरू करा .0
<div class="grid">
<div class="g-col-3 g-start-2">.g-col-3 .g-start-2</div>
<div class="g-col-4 g-start-6">.g-col-4 .g-start-6</div>
</div>
स्वयं स्तंभ
जेव्हा ग्रिड आयटमवर (a ची तात्काळ मुले) कोणतेही वर्ग नसतात , तेव्हा .grid
प्रत्येक ग्रिड आयटमचा आकार आपोआप एका स्तंभात केला जाईल.
<div class="grid">
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
</div>
हे वर्तन ग्रिड स्तंभ वर्गांमध्ये मिसळले जाऊ शकते.
<div class="grid">
<div class="g-col-6">.g-col-6</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
<div>1</div>
</div>
घरटी
आमच्या डीफॉल्ट ग्रिड सिस्टीम प्रमाणेच, आमची CSS ग्रिड .grid
s च्या सहज नेस्टिंगला अनुमती देते. तथापि, डीफॉल्टच्या विपरीत, या ग्रिडला पंक्ती, स्तंभ आणि अंतरांमधील बदल वारसा मिळतात. खालील उदाहरणाचा विचार करा:
- आम्ही स्थानिक CSS व्हेरिएबलसह स्तंभांची डीफॉल्ट संख्या ओव्हरराइड करतो:
--bs-columns: 3
. - पहिल्या स्वयं-स्तंभामध्ये, स्तंभ संख्या अनुवांशिक आहे आणि प्रत्येक स्तंभ उपलब्ध रुंदीच्या एक तृतीयांश आहे.
- दुसऱ्या ऑटो-कॉलममध्ये, आम्ही नेस्टेडवरील कॉलम काउंट
.grid
12 (आमचे डीफॉल्ट) वर रीसेट केले आहे. - तिसऱ्या स्वयं-स्तंभामध्ये कोणतीही नेस्टेड सामग्री नाही.
व्यवहारात हे आमच्या डीफॉल्ट ग्रिड सिस्टीमच्या तुलनेत अधिक जटिल आणि सानुकूल मांडणीसाठी अनुमती देते.
<div class="grid" style="--bs-columns: 3;">
<div>
First auto-column
<div class="grid">
<div>Auto-column</div>
<div>Auto-column</div>
</div>
</div>
<div>
Second auto-column
<div class="grid" style="--bs-columns: 12;">
<div class="g-col-6">6 of 12</div>
<div class="g-col-4">4 of 12</div>
<div class="g-col-2">2 of 12</div>
</div>
</div>
<div>Third auto-column</div>
</div>
सानुकूल करणे
स्थानिक CSS व्हेरिएबल्ससह स्तंभांची संख्या, पंक्तींची संख्या आणि अंतरांची रुंदी सानुकूलित करा.
चल | फॉलबॅक मूल्य | वर्णन |
---|---|---|
--bs-rows |
1 |
तुमच्या ग्रिड टेम्प्लेटमधील पंक्तींची संख्या |
--bs-columns |
12 |
तुमच्या ग्रिड टेम्प्लेटमधील स्तंभांची संख्या |
--bs-gap |
1.5rem |
स्तंभांमधील अंतराचा आकार (अनुलंब आणि क्षैतिज) |
या CSS व्हेरिएबल्सचे कोणतेही डीफॉल्ट मूल्य नाही; त्याऐवजी, ते फॉलबॅक मूल्ये लागू करतात जी स्थानिक उदाहरण प्रदान करेपर्यंत वापरली जातात. उदाहरणार्थ, आम्ही var(--bs-rows, 1)
आमच्या CSS ग्रिड पंक्तींसाठी वापरतो, ज्याकडे दुर्लक्ष केले जाते --bs-rows
कारण ते अद्याप कुठेही सेट केलेले नाही. एकदा ते झाले की, .grid
उदाहरण फॉलबॅक मूल्याऐवजी ते मूल्य वापरेल 1
.
ग्रिड वर्ग नाहीत
चे तात्काळ मुलांचे घटक हे ग्रिड आयटम आहेत, त्यामुळे स्पष्टपणे वर्ग .grid
न जोडता त्यांचा आकार दिला जाईल ..g-col
<div class="grid" style="--bs-columns: 3;">
<div>Auto-column</div>
<div>Auto-column</div>
<div>Auto-column</div>
</div>
स्तंभ आणि अंतर
स्तंभांची संख्या आणि अंतर समायोजित करा.
<div class="grid" style="--bs-columns: 4; --bs-gap: 5rem;">
<div class="g-col-2">.g-col-2</div>
<div class="g-col-2">.g-col-2</div>
</div>
<div class="grid" style="--bs-columns: 10; --bs-gap: 1rem;">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-4">.g-col-4</div>
</div>
पंक्ती जोडत आहे
अधिक पंक्ती जोडणे आणि स्तंभांचे स्थान बदलणे:
<div class="grid" style="--bs-rows: 3; --bs-columns: 3;">
<div>Auto-column</div>
<div class="g-start-2" style="grid-row: 2">Auto-column</div>
<div class="g-start-3" style="grid-row: 3">Auto-column</div>
</div>
अंतर
फक्त बदल करून अनुलंब अंतर बदला row-gap
. लक्षात ठेवा की आम्ही s gap
वर वापरतो .grid
, परंतु row-gap
आणि column-gap
आवश्यकतेनुसार सुधारित केले जाऊ शकते.
<div class="grid" style="row-gap: 0;">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
त्यामुळे, तुमच्याजवळ वेगवेगळे अनुलंब आणि क्षैतिज gap
s असू शकतात, जे एकल मूल्य (सर्व बाजूंनी) किंवा मूल्यांची जोडी (उभ्या आणि क्षैतिज) घेऊ शकतात. हे साठी इनलाइन शैलीसह gap
किंवा आमच्या --bs-gap
CSS व्हेरिएबलसह लागू केले जाऊ शकते.
<div class="grid" style="--bs-gap: .25rem 1rem;">
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
<div class="g-col-6">.g-col-6</div>
</div>
सस
CSS ग्रिडची एक मर्यादा म्हणजे आमचे डीफॉल्ट वर्ग अजूनही दोन Sass व्हेरिएबल्सद्वारे व्युत्पन्न केले जातात $grid-columns
आणि $grid-gutter-width
. हे आमच्या संकलित CSS मध्ये व्युत्पन्न केलेल्या वर्गांची संख्या प्रभावीपणे पूर्वनिर्धारित करते. तुमच्याकडे येथे दोन पर्याय आहेत:
- ते डीफॉल्ट Sass व्हेरिएबल्स सुधारित करा आणि तुमचे CSS पुन्हा कंपाइल करा.
- प्रदान केलेले वर्ग वाढवण्यासाठी इनलाइन किंवा सानुकूल शैली वापरा.
उदाहरणार्थ, तुम्ही स्तंभ संख्या वाढवू शकता आणि अंतर आकार बदलू शकता आणि नंतर इनलाइन शैली आणि पूर्वनिर्धारित CSS ग्रिड स्तंभ वर्ग (उदा. .g-col-4
) यांच्या मिश्रणाने तुमच्या “स्तंभांचा” आकार वाढवू शकता.
<div class="grid" style="--bs-columns: 18; --bs-gap: .5rem;">
<div style="grid-column: span 14;">14 columns</div>
<div class="g-col-4">.g-col-4</div>
</div>