Oh MyUtils

CSS Grid जनरेटर - विज़ुअल ग्रिड लेआउट बिल्डर ऑनलाइन

रियल-टाइम प्रीव्यू के साथ CSS Grid लेआउट विज़ुअली बनाएं। कॉलम, रो, गैप, अलाइनमेंट, ग्रिड एरिया और आइटम प्लेसमेंट परिभाषित करें — 100% क्लाइंट-साइड, सर्वर पर कोई डेटा नहीं भेजा जाता।

अक्सर पूछे जाने वाले प्रश्न

CSS Grid क्या है?

CSS Grid Layout एक द्वि-आयामी CSS लेआउट सिस्टम है जो पंक्तियों और कॉलमों को एक साथ परिभाषित करके जटिल पेज लेआउट बनाने की अनुमति देता है। Flexbox के विपरीत, CSS Grid क्षैतिज और ऊर्ध्वाधर लेआउट दोनों को एक साथ संभालता है।

मैं इस CSS Grid जनरेटर का उपयोग कैसे करूं?

1. कॉलम और रो ट्रैक आकार सेट करके ग्रिड संरचना परिभाषित करें। 2. गैप स्लाइडर से सेल अंतराल सेट करें। 3. अलाइनमेंट गुण कॉन्फ़िगर करें। 4. ग्रिड आइटम जोड़ें और उनकी स्थिति सेट करें। 5. प्रीसेट लेआउट आज़माएं। 6. जनरेटेड कोड कॉपी करें।

क्या मेरा डेटा सुरक्षित है?

हां, पूरी तरह से। यह टूल पूरी तरह से आपके ब्राउज़र में क्लाइंट-साइड JavaScript का उपयोग करके चलता है। कोई भी डेटा किसी सर्वर पर नहीं भेजा जाता।

CSS Grid और Flexbox में क्या अंतर है?

CSS Grid द्वि-आयामी है (पंक्तियां और कॉलम दोनों), जबकि Flexbox एक-आयामी है (पंक्ति या कॉलम)। पेज-स्तरीय लेआउट के लिए Grid और सरल रैखिक लेआउट के लिए Flexbox का उपयोग करें।

grid-template-areas क्या हैं?

grid-template-areas आपको संख्यात्मक लाइन नंबरों के बजाय नामित क्षेत्रों का उपयोग करके लेआउट परिभाषित करने देता है। अधिक पठनीय CSS के लिए 'header', 'sidebar', 'main' जैसे नाम क्षेत्रों को असाइन करें।

fr इकाई का क्या मतलब है?

fr (fractional) इकाई ग्रिड कंटेनर में उपलब्ध मुक्त स्थान के अंश को दर्शाती है। उदाहरण के लिए, 1fr 2fr 1fr तीन कॉलम बनाता है जहां बीच वाला दोगुना चौड़ा होता है।

grid-auto-flow कैसे काम करता है?

grid-auto-flow नियंत्रित करता है कि ऑटो-प्लेस्ड आइटम ग्रिड को कैसे भरते हैं। 'row' बाएं से दाएं, ऊपर से नीचे रखता है। 'column' ऊपर से नीचे, बाएं से दाएं रखता है। 'dense' अधिक कॉम्पैक्ट लेआउट के लिए अंतराल भरता है।

कोड उदाहरण

// CSS Grid Generator - JavaScript Implementation

function formatTrackSize(value, unit) {
  if (unit === 'auto') return 'auto';
  return `${value}${unit}`;
}

function generateGridCSS(options = {}) {
  const {
    display = 'grid',
    columns = [{ value: 1, unit: 'fr' }, { value: 1, unit: 'fr' }, { value: 1, unit: 'fr' }],
    rows = [{ value: 1, unit: 'fr' }, { value: 1, unit: 'fr' }, { value: 1, unit: 'fr' }],
    rowGap = 0,
    columnGap = 0,
    justifyItems = 'stretch',
    alignItems = 'stretch',
    justifyContent = 'start',
    alignContent = 'start',
    gridAutoFlow = 'row',
    areas = null,
  } = options;

  const rules = [`display: ${display}`];
  rules.push(`grid-template-columns: ${columns.map(t => formatTrackSize(t.value, t.unit)).join(' ')}`);
  rules.push(`grid-template-rows: ${rows.map(t => formatTrackSize(t.value, t.unit)).join(' ')}`);

  if (areas && areas.length > 0) {
    const areasStr = areas.map(row => `"${row.join(' ')}"`).join('\n  ');
    rules.push(`grid-template-areas:\n  ${areasStr}`);
  }

  if (rowGap > 0 || columnGap > 0) {
    if (rowGap === columnGap) {
      rules.push(`gap: ${rowGap}px`);
    } else {
      rules.push(`gap: ${rowGap}px ${columnGap}px`);
    }
  }

  if (justifyItems !== 'stretch') rules.push(`justify-items: ${justifyItems}`);
  if (alignItems !== 'stretch') rules.push(`align-items: ${alignItems}`);
  if (justifyContent !== 'start') rules.push(`justify-content: ${justifyContent}`);
  if (alignContent !== 'start') rules.push(`align-content: ${alignContent}`);
  if (gridAutoFlow !== 'row') rules.push(`grid-auto-flow: ${gridAutoFlow}`);

  return rules.map(r => `${r};`).join('\n');
}

// Usage
console.log(generateGridCSS({
  columns: [{ value: 1, unit: 'fr' }, { value: 2, unit: 'fr' }, { value: 1, unit: 'fr' }],
  rows: [{ value: 100, unit: 'px' }, { value: 1, unit: 'fr' }],
  rowGap: 16,
  columnGap: 16,
}));
// display: grid;
// grid-template-columns: 1fr 2fr 1fr;
// grid-template-rows: 100px 1fr;
// gap: 16px;

संबंधित उपकरण